• Struts+ibatis-学习总结二


    1封装json

    在Action中以传统方式输出JSON数据


    这一点跟传统的Servlet的处理方式基本上一模一样,代码如下

    Java代码  收藏代码
    1.  
    public void doAction() throws IOException{
    		HttpServletResponse response=ServletActionContext.getResponse();
    		//以下代码从JSON.java中拷过来的
    		response.setContentType("text/html");
    		PrintWriter out;
    		out = response.getWriter();
    		//将要被返回到客户端的对象
    		User user=new User();
    		user.setId("123");
    		user.setName("JSONActionGeneral");
    		user.setPassword("JSON");
    		user.setSay("Hello , i am a action to print a json!");
    		JSONObject json=new JSONObject();
    		json.accumulate("success", true);
    		json.accumulate("user", user);
    		out.println(json.toString());
    //		因为JSON数据在传递过程中是以普通字符串形式传递的,所以我们也可以手动拼接符合JSON语法规范的字符串输出到客户端
    //		以下这两句的作用与38-46行代码的作用是一样的,将向客户端返回一个User对象,和一个success字段
    //		String jsonString="{"user":{"id":"123","name":"JSONActionGeneral","say":"Hello , i am a action to print a json!","password":"JSON"},"success":true}";
    //		out.println(jsonString);
    		out.flush();
    		out.close();
    	}

    struts.xml中的配置:

    Java代码  收藏代码
    1.  
    <package name="default" extends="struts-default" namespace="/">
    	<action name="testJSONFromActionByGeneral" class="cn.ysh.studio.struts2.json.demo.action.UserAction" method="doAction">
    	</action>
    </package>

    注意:这个action没有result,且doAction方法没有返回值!

    在Action中以Struts2的方式输出JSON数据

    本着“不重复发明轮子”的原则,我们将转换JSON数据的工作交给Struts2来做,那么相对于在Action中以传统方式输出JSON不同的是,Action是需要将注意力放在业务处理上,而无需关心处理结果是如何被转换成JSON被返回客户端的——这些 工作通过简单的配置,Struts2会帮我们做的更好。

    Java代码  收藏代码
    1.  
    public String testByAction() {
    		// dataMap中的数据将会被Struts2转换成JSON字符串,所以这里要先清空其中的数据
    		dataMap.clear();
    		User user = new User();
    		user.setId("123");
    		user.setName("JSONActionStruts2");
    		user.setPassword("123");
    		user.setSay("Hello world !");
    		dataMap.put("user", user);
    		// 放入一个是否操作成功的标识
    		dataMap.put("success", true);
    		// 返回结果
    		return SUCCESS;
    	}

    struts.xml中action的配置:

    Java代码  收藏代码
    1.  
    <package name="json" extends="json-default" namespace="/test">
    		<action name="testByAction"
    			class="cn.ysh.studio.struts2.json.demo.action.UserAction" method="testByAction">
    			<result type="json">
    				<!-- 这里指定将被Struts2序列化的属性,该属性在action中必须有对应的getter方法 -->
    				<param name="root">dataMap</param>
    			</result>
    		</action>
    </package>

    凡是使用Struts2序列化对象到JSON的action,所在的package必须继承自json-default,注意,这里唯一的result,没有指定name属性。

    2 sql server分页查询

    SELECT A.*
    FROM(select *, ROW_NUMBER() over(order by ID) as rows from MyHz.dbo.NCParameterMod)A where A.rows>=5;

    3自增长的id重新排列

    数据库中把ID自增长重置成1:

    一般做法:(太麻烦)

    复制表数据->删除原表、新建一张表->粘贴;

    新方法一

    数据库中:新建查询->复制、粘贴一下代码->修改表名,执行即可(先把表数据清空)

     DBCC CHECKIDENT ('表名', RESEED, 0)

    新方法二

    TRUNCATE TABLE 表名

    来源:http://blog.csdn.net/u013816709/article/details/26245907

     SQLSERVER的最大连接数

    如何查看SQLServer的最大连接数?相信很多人对个很有兴趣,一下就给出两种方法:

    1. 查询服务器属性

      

    默认服务设置为0(表示不受限制)。

    2. SQL查看最大连接数

      

    这里的32767就是服务器的最大连接数了。

    如果你想自己设置服务器的最大连接数,可以使用以下SQL

    1
    2
    exec sp_configure 'show advanced options', 1
    exec sp_configure 'user connections', 500

     参考:http://www.cnblogs.com/rainnight/archive/2013/12/18/3480122.html

    异常处理

     异常又分为 局部异常处理 和 全局异常处理

    在struts.xml中声明捕捉异常,使其转成自定义错误提示界面

    局部异常处理,定义在action标签内:

    struts.xml

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE struts PUBLIC  
    3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
    5.       
    6. <struts>  
    7.       
    8.    <package name="struts2" extends="struts-default">      
    9.        
    10.       <!-- name="login" 这个名字可以自己定义 要和 提交表单的那个action名字一致 -->  
    11.        
    12.       <action name="login" class="com.struts2.LoginAction">  
    13.               
    14.             <!-- 局部 异常处理 -->  
    15.             <exception-mapping result="myexception1"  
    16.                exception="com.exception.MyException">             
    17.             </exception-mapping>  
    18.             <!-- 异常跳转的界面 -->  
    19.             <result name="myexception1">/error.jsp</result>  
    20.                
    21.                
    22.             <!-- name="success"   
    23.                                   这个名字要和LoginAction.java 的 execute() 方法的返回值一致   
    24.             -->  
    25.             <result name="success">/result.jsp</result>  
    26.               
    27.       </action>  
    28.      
    29.    </package>   
    30.   
    31. </struts>  
     
     
    全局异常处理,定义在action标签外:

    struts.xml

    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE struts PUBLIC  
    3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
    4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
    5.       
    6. <struts>  
    7.       
    8.    <package name="struts2" extends="struts-default">  
    9.         
    10.       <!-- 全局 异常处理 -->  
    11.       <global-results>  
    12.           <result name="myexception1">/error.jsp</result>  
    13.       </global-results>  
    14.         
    15.       <global-exception-mappings>  
    16.           <exception-mapping result="myexception1"  
    17.                exception="com.exception.MyException">             
    18.           </exception-mapping>  
    19.       </global-exception-mappings>  
    20.        
    21.       <!-- name="login" 这个名字可以自己定义 要和 提交表单的那个action名字一致 -->  
    22.        
    23.       <action name="login" class="com.struts2.LoginAction">  
    24.               
    25.                
    26.             <!-- name="success"   
    27.                                   这个名字要和LoginAction.java 的 execute() 方法的返回值一致   
    28.             -->  
    29.             <result name="success">/result.jsp</result>  
    30.               
    31.       </action>  
    32.      
    33.    </package>   
    34.   
    35. </struts>  
    
    

    4.错误页面error.jsp,

    1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
    2. <%@ taglib prefix="s"  uri="/struts-tags"%>    
    3. <html>  
    4.   <body>  
    5.     <!-- 这个exception 是 exception="com.exception.MyException" -->  
    6.     <s:property value="exception.message"/>  
    7.   </body>  
    8. </html>  
    </struts>

     自定义一个异常,该异常继承Exception父类

    1. package com.exception ;  
    2.   
    3. //自定义异常  
    4. public class MyException extends Exception {  
    5.       
    6.     private String message;  
    7.       
    8.     public MyException(String message)  
    9.     {  
    10.         super(message);  
    11.         this.message = message ;  
    12.     }  
    13.   
    14.     public String getMessage() {  
    15.         return message;  
    16.     }  
    17.   
    18.     public void setMessage(String message) {  
    19.         this.message = message;  
    20.     }  
    21.       
    22.   
    23. }  

    来源:http://blog.csdn.net/hzc543806053/article/details/7493268

    打印日志、sql语句

    配置log4j.properties文件,copy如下代码:

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n


    log4j.logger.com.ibatis=debug
    log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
    log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
    log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug
    log4j.logger.Java.sql.Connection=debug
    log4j.logger.java.sql.Statement=debug
    log4j.logger.java.sql.PreparedStatement=debug,stdout

    记得加入jar包,common-logging.jar ;    log4j.jar,

     修改项目名称

    右键-重命名       这并不能修改发布的项目名称,需要继续以下操作:

    最后保存即可

  • 相关阅读:
    TableEx 控件 v1.0 [原创][免费][开源]
    js刷新页面
    SimpleAjax 开发包 v3.1 (简单的Ajax)
    oracle中的''空字符串和null居然是等价的
    HTTP 错误大全
    Ext2.0 form使用实例
    isqlweb (Web版 SQL Server 管理器)
    关于软件版本
    我的第一个C++程序——方块游戏 v1.0
    轻松实现UltraWebGrid中的分页控制
  • 原文地址:https://www.cnblogs.com/manmanlu/p/6878707.html
Copyright © 2020-2023  润新知