// Map -> JSON
JSONObject jsonMap = JSONObject.fromObject(map);

// List -> Map -> JSON
JSONArray listJson = JSONArray.fromObject(list);

// XML String -> JSON
String xml = "
ddakker100
ab
"; JSONObject json = (JSONObject) new XMLSerializer().read(xml); System.out.println(json); JSONObject header = (JSONObject) json.get("header"); System.out.println("header: " + header); System.out.println(((JSONObject)json.get("header")).get("name")); JSONArray list = (JSONArray) json.get("list"); System.out.println("list: " + list); System.out.println("list: " + list.size()); for( int i=0; i<list.size(); i++ ){ System.out.println("list[" + i + "]: " + list.getJSONObject(i).get("friend")); }

eur-kr에서 올라올 경우
new String(request.getParameter("value1").getBytes("8859_1"),"euc-kr")

utf-8에서 올라올 경우 ajax, flex
new String(request.getParameter("value1").getBytes("8859_1"),"utf-8")
Tomcat server.xml

	

Context web.xml

		DB Connection
		jdbc/mysqlConn
		javax.sql.DataSource
		Container
	


source
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/mysqlConn");  // 설정정보의 name과 동일하게 셋팅
            
// 커넥션 얻기
Connection con = ds.getConnection();

단건 Action과 다건 Action 에 대해서 테스트 해보았다.

다건 Action의 경우 인터넷에서 구한 것과 WebWork 자체에서 제공하는 것 모두 테스트 해보았다.
(Struts 의 DispatchActionSupport 유사한 기능)

WebWork에서 제공하는 MultiAction의 경우 함수가 추가될때마다 설정을 추가해줘야 하는 불편함이 있는 것 같다.
또한 Struts 와 다르게 get,set를 이용한 파라미터 사용 방법은 단일 Action일때는 편리하나 MultiAction 일경우 함수 공통으로 모두 만들어줘야 하므로 특정 함수에서 사용하는 파라미터를 찾기 위해서는 난감한  것 같다.

[xwork.xml]

    
    
        
        
        
        
			/test.jsp
			/error.jsp
        
        
        
        
			/test.jsp
			/error.jsp
        
        
                
        
			/test.jsp
			/error.jsp
                
        
			/test.jsp
			/error.jsp
        
    

     
          Request Encoding
          org.springframework.web.filter.CharacterEncodingFilter
          
               encoding
               UTF-8
          
     
     
          Request Encoding
          dispatcher
     
[소스상에서 Transaction 처리]
public class DemoServiceImpl extends JdbcDaoSupport implements DemoService {

	private TransactionTemplate txTemplate;
	
	public void setTransactionManager(PlatformTransactionManager txManager) {
		this.txTemplate = new TransactionTemplate(txManager);
		this.txTemplate.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRED);
	}
	
	public int selectTest() throws Exception{
		// Transaction Handling
		txTemplate.execute(new TransactionCallbackWithoutResult() {
			public void doInTransactionWithoutResult(TransactionStatus status) {
				int cnt = getJdbcTemplate().update("insert into ddakker_test(SEQ, TXT)values(?,?)", new Object[]{"4","txt4"});
			    System.out.println("insert cnt: " + cnt);
			    int cnt2 = getJdbcTemplate().update("insert into ddakker_test(SEQ, TXT1)values(?,?)", new Object[]{"5","txt5"});
			    System.out.println("insert cnt2: " + cnt2);				
			}			
		});
	    
		List  list; 
	    Object params[] = {3};	    
	    list = getJdbcTemplate().queryForList("select seq, txt from ddakker_test where seq = ?", params);
	    
	    System.out.println("list1: " + list.size());
	    Iterator i = list.iterator();
	    System.out.println("i : " + i);
	    while(i.hasNext()){
	    	Map map = (Map) i.next();
	    	System.out.println("map" + map);
	    }
	    
		return 0;
	}
}
	
		
	

	
		
		
	

[설정파일에서 Transaction 처리]
public class Demo2Servicelmpl extends JdbcDaoSupport implements Demo2Service {
	
	public int selectTest() throws Exception {		
		int cnt = getJdbcTemplate().update("insert into ddakker_test(SEQ, TXT)values(?,?)", new Object[]{"4","txt4"});
	    System.out.println("insert cnt: " + cnt);
	    int cnt2 = getJdbcTemplate().update("insert into ddakker_test(SEQ, TXT1)values(?,?)", new Object[]{"5","txt5"});
	    System.out.println("insert cnt2: " + cnt2);
	    
		List  list; 
	    Object params[] = {3};	    
	    list = getJdbcTemplate().queryForList("select seq, txt from ddakker_test where seq = ?", params);
	    
	    System.out.println("list1: " + list.size());
	    Iterator i = list.iterator();
	    System.out.println("i : " + i);
	    while(i.hasNext()){
	    	Map map = (Map) i.next();
	    	System.out.println("map" + map);
	    }
	    
		return 0;
	}

}
	
		
	
	
	
		
		
		
		
			
				PROPAGATION_REQUIRED,-Exception
				PROPAGATION_SUPPORTS
			
		
	

[설정파일에서 Transaction 처리(AspectJ 를 이용한 한방 처리)]
	
	
		
	
	
	
		
		
	
    
		
			
		
	
		
	
		
	
JDK 1.5
package util;
public class Util {
	public static String toJS(String str) {
		return str.replace("\\", "\\\\")
		          .replace("\'", "\\\'")
		          .replace("\"", "\\\"")
		          .replace("\r\n", "\\n")
		          .replace("\n", "\\n");
	}
}
JDK 1.4
package util;
public class Util {
	public static String toJS(String str) {
		return str.replace("\\\\", "\\\\\\\\")
		          .replace("'", "\\\\'")
		          .replace("\"", "\\\\"")
		          .replace("\r\n", "\\\\n")
		          .replace("\n", "\\\\n");
	}
}

[출처] 최범균의 Ajax~ 에서~
 
StackTraceElement [] elements = new Throwable().getStackTrace();
for(int i = 0 ; i < elements.length ; i++){
	String clz = elements[i].getClassName();
	String method = elements[i].getMethodName();
	System.out.println(i+"번째 호출된 Stack : "+clz+"."+method);
}


[MSSQL]

// 2000 버전(삼총사버전)
Class.forName("com.microsoft.jdbc.sqlserver.jdbc.SQLServerDriver");
// 2005 버전(sqljdbc.jar)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

String dbURL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=project";
String dbUser = "sa";
String dbPassword = "pwd";

Connection conn = null;
try {
    conn = DriverManager.getConnection(dbURL, dbUser, dbPassword);
} catch (SQLException e) {
    e.printStackTrace();
    out.println("e: " + e);
}




JAR설명


 

sqljdbc.jar 클래스 라이브러리는 JDBC 3.0을 지원합니다.

sqljdbc.jar 클래스 라이브러리에는 JRE(Java Runtime Environment) 버전 5.0이 필요합니다. JRE 6.0에서 sqljdbc.jar을 사용하면 데이터베이스에 연결할 때 예외가 발생합니다.

ms378422.note(ko-kr,SQL.105).gif참고:
JDBC 드라이버는 JRE 1.4를 지원하지 않습니다. JDBC 드라이버를 사용하려면 JRE 1.4를 JRE 5.0 이상으로 업그레이드해야 합니다. 응용 프로그램이 JDK 5.0 이상과 호환되지 않아 다시 컴파일해야 하는 경우도 있습니다. 자세한 내용은 Sun Microsystems 웹 사이트의 설명서를 참조하십시오.


 

sqljdbc4.jar 클래스 라이브러리는 JDBC 4.0을 지원합니다. 이 라이브러리에는 sqljdbc.jar의 모든 기능과 함께 새로운 JDBC 4.0 메서드가 포함되어 있습니다.

sqljdbc4.jar 클래스 라이브러리에는 JRE(Java Runtime Environment) 버전 6.0 이상이 필요합니다. JRE 1.4 또는 5.0에서 sqljdbc4.jar을 사용하면 예외가 발생합니다.

ms378422.note(ko-kr,SQL.105).gif참고:
응용 프로그램을 JRE 6.0에서 실행해야 하는 경우에는 JDBC 4.0 기능을 사용하지 않더라도 sqljdbc4.jar을 사용하십시오.

 

[struts web.xml 참조하기]

 

ServletConfig config = this.getServlet();
String configStr = config.getInitParameter("config");  
System.out.println("configStr: " + configStr);


+ Recent posts