锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
涓銆佸垵綰цВ鍐蟲柟娉?/STRONG>
閫氳繃涓鐣绱㈠悗錛岃澶氫漢閲囩敤浜嗗涓嬪姙娉曪紝棣栧厛瀵瑰彇寰楀瓧絎︿覆鎸夌収 iso8859-1 榪涜瑙g爜杞崲錛岀劧鍚庡啀鎸夌収 gb2312 榪涜緙栫爜錛屾渶鍚庡緱鍒版紜殑鍐呭銆傜ず渚嬩唬鐮佸涓嬶細
String para = new String( request.getParameter("para").getBytes("iso8859-1"), "gb2312");
鍏蜂綋鐨勫師鍥犳槸鍥犱負緹庡浗浜哄湪鍐?tomcat 鏃墮粯璁や嬌鐢?iso8859-1 榪涜緙栫爜閫犳垚鐨勩?BR>
鐒惰岋紝鍦ㄦ垜浠殑 servlet 鍜?jsp 欏甸潰涓湁澶ч噺鐨勫弬鏁伴渶瑕佽繘琛屼紶閫掞紝榪欐牱杞崲鐨勮瘽浼氬甫鏉ュぇ閲忕殑杞崲浠g爜錛岄潪甯鎬笉渚褲?BR>
浜屻佸叆闂ㄧ駭瑙e喅鏂規硶
鍚庢潵錛屽ぇ瀹跺紑濮嬪啓涓涓繃婊ゅ櫒錛屽湪鍙栧緱瀹㈡埛绔紶榪囨潵鐨勫弬鏁頒箣鍓嶏紝閫氳繃榪囨護鍣ㄩ鍏堝皢鍙栧緱鐨勫弬鏁扮紪鐮佽瀹氫負 gb2312 錛岀劧鍚庡氨鍙互鐩存帴浣跨敤 getParameter 鍙栧緱姝g‘鐨勫弬鏁頒簡銆傝繖涓繃婊ゅ櫒鍦?tomcat 鐨勭ず渚嬩唬鐮?
jsp-examples 涓湁璇︾粏鐨勪嬌鐢ㄧず渚? 鍏朵腑榪囨護鍣ㄥ湪 web.xml 涓殑璁懼畾濡備笅錛岀ず渚嬩腑浣跨敤鐨勬槸鏃ユ枃鐨勭紪鐮侊紝鎴戜滑鍙淇敼涓?gb2312 鍗沖彲
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>EUC_JP</param-value>
</init-param>
</filter>
榪囨護鍣ㄧ殑浠g爜濡備笅錛?BR>public class SetCharacterEncodingFilter implements Filter {
// 緙栫爜鐨勫瓧絎︿覆
protected String encoding = null;
// 榪囨護鍣ㄧ殑閰嶇疆
protected FilterConfig filterConfig = null;
// 鏄惁蹇界暐瀹㈡埛绔殑緙栫爜
protected boolean ignore = true;
// 閿姣佽繃婊ゅ櫒
public void destroy() {
this.encoding = null;
this.filterConfig = null;
}
// 榪囨護鏂規硶
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
// 濡傛灉浣跨敤榪囨護鍣紝蹇界暐瀹㈡埛绔殑緙栫爜錛岄偅涔堜嬌鐢ㄩ氳繃榪囨護鍣ㄨ瀹氱紪鐮?BR> if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}
// 浼犻佺粰涓嬩竴涓繃婊ゅ櫒
chain.doFilter(request, response);
}
// 鍒濆鍖栬繃婊ゅ櫒
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
this.encoding = filterConfig.getInitParameter("encoding");
String value = filterConfig.getInitParameter("ignore");
if (value == null)
this.ignore = true;
else if (value.equalsIgnoreCase("true"))
this.ignore = true;
else if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;
}
// 榪斿洖榪囨護鍣ㄨ瀹氱殑緙栫爜
protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
鐒惰屽湪 tomcat5 涓紝鍗充嬌浣跨敤榪囨護鍣紝浠嶇劧鍙兘鍙栧緱涔辯爜錛屽師鍥犱綍鍦ㄥ憿錛?BR>
涓夈侀珮綰цВ鍐蟲柟娉?/STRONG>
榪欐槸鍥犱負錛?FONT face="Courier New">鍦?tomcat4 鍜?tomcat5 涓鍙傛暟鐨勫鐞嗘槸涓嶄竴鏍風殑錛屽湪 tomcat4 涓?get 涓?post 鐨勭紪鐮佹槸涓鏍風殑錛屾墍浠ュ彧瑕佸湪榪囨護鍣ㄤ腑閫氳繃 request.setCharacterEncoding 璁懼畾涓嬈″氨鍙互瑙e喅 get 涓?post 鐨勯棶棰樸傜劧鑰岋紝鍦?tomcat5 涓紝get 涓?post 鐨勫鐞嗘槸鍒嗗紑榪涜鐨?/FONT>
鍦?tomcat 5 涓紝涓轟簡瑙e喅緙栫爜闂錛宼omcat 鐨勪綔鑰呬綔浜嗗緢澶氬姫鍔涳紝鍏蜂綋琛ㄧ幇涓哄湪 tomcat 鐨勯厤緗枃浠?server.xml 涓 Connector 鍏冪礌澧炲姞浜嗗涓嬬殑閰嶇疆鍙傛暟錛屼笓闂ㄧ敤鏉ュ緙栫爜榪涜鐩存帴鐨勯厤緗?BR>
URIEncoding 鐢ㄦ潵璁懼畾閫氳繃 URI 浼犻掔殑鍐呭浣跨敤鐨勭紪鐮侊紝tomcat 灝嗕嬌鐢ㄨ繖閲屾寚瀹氱殑緙栫爜瀵瑰鎴風浼犻佺殑鍐呭榪涜緙栫爜銆?BR>
浠涔堟槸 URI 鍛紵
java doc 鐨勮鏄庝腑濡備笅璇存槑錛歎RI 鏄粺涓璧勬簮鏍囪瘑絎?/I>錛岃?URL 鏄粺涓璧勬簮瀹氫綅絎?/I>銆傚洜姝わ紝絎肩粺鍦拌錛屾瘡涓?URL 閮芥槸 URI錛屼絾涓嶄竴瀹氭瘡涓?URI 閮芥槸 URL銆傝繖鏄洜涓?URI 榪樺寘鎷竴涓瓙綾伙紝鍗崇粺涓璧勬簮鍚嶇О (URN)錛屽畠鍛藉悕璧勬簮浣嗕笉鎸囧畾濡備綍瀹氫綅璧勬簮銆?BR>
涔熷氨鏄錛?FONT style="BACKGROUND-COLOR: #ffff00">鎴戜滑閫氳繃 get 鏂規硶鎻愪氦鐨勫弬鏁板疄闄呬笂閮芥槸閫氳繃 uri 鎻愪氦鐨勶紝閮界敱榪欎釜鍙傛暟綆$悊錛屽鏋滄病鏈夎瀹氳繖涓弬鏁幫紝鍒?tomcat 灝嗕嬌鐢ㄩ粯璁ょ殑 iso8859-1 瀵瑰鎴風鐨勫唴瀹硅繘琛岀紪鐮併?BR>
useBodyEncodingForURI 浣跨敤涓?Body 涓鏍風殑緙栫爜鏉ュ鐞?URI, 榪欎釜璁懼畾鏄負浜嗕笌 tomcat4淇濇寔鍏煎錛屽師鏉ュ湪 tomcat4 鍜?tomcat5 涓槦鍙傛暟鐨勫鐞嗘槸涓嶄竴鏍風殑錛屽湪 tomcat4 涓?get 涓?post 鐨勭紪鐮佹槸涓鏍風殑錛屾墍浠ュ彧瑕佸湪榪囨護鍣ㄤ腑閫氳繃 request.setCharacterEncoding 璁懼畾涓嬈″氨鍙互瑙e喅 get 涓?post 鐨勯棶棰樸傜劧鑰岋紝鍦?tomcat5 涓紝get 涓?post 鐨勫鐞嗘槸鍒嗗紑榪涜鐨勶紝瀵?get 鐨勫鐞嗛氳繃 鍓嶉潰鐨?URIEncoding 榪涜澶勭悊錛屽 post 鐨勫唴瀹逛緷鐒墮氳繃 request.setCharacterEncoding 澶勭悊錛屼負浜嗕繚鎸佸吋瀹癸紝灝辨湁浜嗚繖涓瀹氥?BR>
灝?useBodyEncodingForURI 璁懼畾涓虹湡鍚庯紝灝卞彲浠ラ氳繃 request.setCharacterEncoding 鐩存帴瑙e喅 get 鍜?post 涓殑涔辯爜闂銆?BR>
榪欐牱錛屾垜浠彲浠ラ氳繃鍦?server.xml 涓瀹?URIEncoding 鏉ヨВ鍐?get 鏂規硶涓殑鍙傛暟闂錛屼嬌鐢ㄨ繃婊ゅ櫒鏉ヨВ鍐?post 鏂規硶涓殑闂銆?BR>
鎴栬呬篃鍙互閫氳繃鍦?server.xml 涓瀹?useBodyEncodingForURI 涓?true 錛岄厤鍚堣繃婊ゅ櫒鏉ヨВ鍐崇紪鐮佺殑闂銆?BR>
鍦ㄨ繖閲岋紝鎴戝己鐑堝緩璁湪緗戠珯鐨勫垱浣滆繃紼嬩腑錛屽叏紼嬩嬌鐢?utf-8 緙栫爜鏉ュ交搴曡В鍐充貢鐮侀棶棰樸?BR>
鍏蜂綋鎿嶄綔濡備笅錛?BR>1銆侀〉闈㈠唴瀹逛嬌鐢?utf-8 鏍煎紡淇濆瓨錛屽湪欏甸潰涓姞鍏?<mete http-equiv="contentType" content="text/html;charst=utf-8">
2銆佹湇鍔″櫒绔殑 server.xml 涓瀹?useBodyEncodingForURI = true
3銆佷嬌鐢ㄨ繃婊ゅ櫒錛岃繃婊ゅ櫒璁懼畾緙栫爜涓?utf-8
聽聽聽聽聽聽 ResultSet
聽
鏂規硶 | 鎻忚堪 |
registerDriver(Driver driver) | 鍦?/span> DriverManager 涓敞鍐?/span> JDBC 椹卞姩紼嬪簭 |
getConnection(String url,String user,String pwd) | 寤虹珛鍜屾暟鎹簱鐨勮繛鎺ワ紝榪斿洖 Connection 瀵硅薄 |
setLoginTimeOut(int seconds) | 璁懼畾絳夊緟鏁版嵁搴撹繛鎺ョ殑鏈闀挎椂闂?/span> |
setLogWriter(PrintWriter out) | 璁懼畾杈撳叆鏁版嵁搴撴棩鑷崇殑 PrintWriter 瀵硅薄 |
鏂規硶 | 鎻忚堪 |
getMetaData() | 榪斿洖鏁版嵁搴撶殑 MetaData 鏁版嵁銆?/span> MetaData 鏁版嵁鍖呭惈浜嗘暟鎹簱鐨勭浉鍏充俊鎭紝渚嬪褰撳墠鏁版嵁搴撹繛鎺ョ殑鐢ㄦ埛鍚嶃佷嬌鐢ㄧ殑 JDBC 椹卞姩紼嬪簭銆佹暟鎹簱鍏佽鐨勬渶澶ц繛鎺ユ暟銆佹暟鎹簱鐨勭増鏈瓑絳夈?/span> |
createStatement() | 鍒涘緩騫惰繑鍥?/span> Statement 瀵硅薄 |
PrepareStatement(String sql) | 鍒涘緩騫惰繑鍥?/span> prepareStatement 瀵硅薄 |
鏂規硶 | 鎻忚堪 |
setAutoCommit(boolen autoCommit) | 璁劇疆鏄惁鑷姩鎻愪氦浜嬪姟錛岄粯璁や負鑷姩鎻愪氦 銆?/span> |
commit() | 鎻愪氦浜嬪姟 |
rollback() | 鎾ら攢浜嬪姟 |
try{
conn.SetautoCommit(false);
stmt = conn.createstatement();
stmt.executeUpdate(鈥渄elete form table1 where col1=1鈥?; stmt.eecuteUpdate(鈥渄elete from table2 where col2=1鈥?;
conn.comm.it();
}catch(Exception e){
聽聽聽聽聽聽 e.printStackTrace;
try{
聽聽聽聽聽聽 聽聽聽聽聽聽 conn.rollback();
} catch(Exception e1){
聽聽聽聽聽聽 e1.printStackTrace;
}
}
|
<%@ page import=鈥漥ava.util.*鈥?gt;
<%@ page import=鈥漥ava.sql.*鈥?gt;
<%
try{
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
//
鍔犺澆
oracle
椹卞姩紼嬪簭
Class.forName(鈥渙racle.jdbc.driver.OracleDriver.鈥?;
//
娉ㄥ唽
oracle
椹卞姩紼嬪簭
DriverManager.regidterDriver(new oracle.jdbc.driver.OracleDriver());
//
寤虹珛鏁版嵁搴撹繛鎺?/span>
conn=DriverManager.getConnection(鈥渏dbc:oracle:thin:@your db ip:your db port:sid鈥?dbuser,dbpassword);
stmt = conn.createStatement();
rs = stmt.executeQuery(鈥渟elect * from tablename鈥?;
while(rs.next){
聽聽聽聽聽聽 out.print(rs.getstring(鈥渃olname鈥?);
}
}catch(Exception e){
}
finally{
rs.close();
stmt.close();
conn.close();
}
%>
|
<Resource name="jdbc/ JNDI
鍚嶅瓧
"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 auth="Container"
聽聽聽聽聽聽聽聽聽聽聽聽聽聽 type="javax.sql.DataSource"/>
聽<ResourceParams name="jdbc/JNDI
鍚嶅瓧
">
聽聽聽 <parameter>
聽聽聽聽聽<name>factory</name>
聽聽聽聽聽 <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
聽聽聽 </parameter>
聽聽聽 <parameter>
聽聽聽聽聽 <name>maxActive</name>
聽聽聽聽聽 <value>100</value>
聽聽聽 </parameter>
聽聽聽 <parameter>
聽聽聽聽聽 <name>maxIdle</name>
聽聽聽聽聽 <value>30</value>
聽聽聽 </parameter>
聽
聽聽聽 <parameter>
聽聽聽聽聽 <name>maxWait</name>
聽聽聽聽聽 <value>10000</value>
聽聽聽 </parameter>
聽
聽聽聽 <parameter>
聽聽聽聽 <name>username</name>
聽聽聽聽 <value>
鐢ㄦ埛鍚?/span>
</value>
聽聽聽 </parameter>
聽聽聽 <parameter>
聽聽聽聽 <name>password</name>
聽聽聽聽 <value>
瀵嗙爜
</value>
聽聽聽 </parameter>
聽
聽聽聽 <parameter>
聽聽聽聽聽聽 <name>driverClassName</name>
聽聽聽聽聽聽 <value>oracle.jdbc.driver.OracleDriver</value>
聽聽聽 </parameter>
聽
聽聽聽 <parameter>
聽聽 聽聽聽<name>url</name>
聽聽聽聽聽 <value>jdbc:oracle:thin:@ip:
绔彛
:sid </value>
聽聽聽 </parameter>
聽</ResourceParams>
|
灞炴?/span> | 鎻忚堪 |
name | 鎸囧畾 Resource 鐨?/span> JNDI 鐨勫悕瀛?/span> |
auth | 鎸囧畾綆$悊 Resource 鐨?/span> Manager 錛岀敱涓や釜鍙夊鹼細 Container 鍜?/span> Application 銆?/span> Container 琛ㄧず鐢卞鍣ㄦ潵鍒涘緩鍜岀鐞?/span> Resource 錛?/span> Application 琛ㄧず鐢?/span> WEB 搴旂敤鏉ュ垱寤哄拰綆$悊 Resource 銆傚鏋滃湪 web application deployment descriptor 涓嬌鐢?/span> <resource-ref> 錛岃繖涓睘鎬ф槸蹇呴渶鐨勶紝濡傛灉浣跨敤 <resource-env-ref> 錛岃繖涓睘鎬ф槸鍙夌殑銆?/span> |
type | 鎸囧畾 Resource 鎵灞炵殑 java 綾誨悕 |
灞炴?/span> | 鎻忚堪 |
name | 鎸囧畾 ResourceParams 鐨?/span> JNDI 鐨勫悕瀛楋紝蹇呴』鍜?/span> Resource 鐨?/span> name 淇濇寔涓鑷?/span> |
factory | 鎸囧畾鐢熸垚 DataSource 瀵硅薄鐨?/span> factory 鐨勭被鍚?/span> |
maxActive | 鎸囧畾鏁版嵁搴撹繛鎺ユ睜涓浜庢椿鍔ㄧ姸鎬佺殑鏁版嵁搴撹繛鎺ユ渶澶ф暟鐩紝 0 琛ㄧず涓嶅彈闄愬埗 |
maxIdle | 鎸囧畾鏁版嵁搴撹繛鎺ユ睜涓?/span> 澶勪簬 絀洪棽鐘舵佺殑鏁版嵁搴撹繛鎺ョ殑鏈澶ф暟鐩紝 0 琛ㄧず涓嶅彈闄愬埗 |
maxWait | 鎸囧畾鏁版嵁搴撹繛鎺ユ睜涓殑鏁版嵁搴撹繛鎺ュ浜庣┖闂茬姸鎬佺殑鏈闀挎椂闂達紙鍗曚綅涓烘縐掞級錛岃秴榪囪繖涓浜嬩歡錛屽皢浼氭姏鍑哄紓甯搞?/span> -1 琛ㄧず鍙互鏃犻檺鏈熺瓑寰呫?/span> |
username | 鎸囧畾榪炴帴鏁版嵁搴撶殑鐢ㄦ埛鍚?/span> |
password | 鎸囧畾榪炴帴鏁版嵁搴撶殑瀵嗙爜 |
driverClassName | 鎸囧畾榪炴帴鏁版嵁搴撶殑 JDBC 椹卞姩紼嬪簭 |
url | 鎸囧畾榪炴帴鏁版嵁搴撶殑 URL |
<resource-ref>
聽聽聽聽 <descryiption>DB Connection</descryiption>
<res-ref-name>jdbc/JNDI
鍚嶅瓧
</ res-ref-name>
<res-type>javax.sql.DataSource </ res- type>
<res-auth>Container </ res- auth>
</resource-ref>
|
灞炴?/span> | 鎻忚堪 |
description | 瀵規墍寮曠敤鐨勮祫婧愮殑璇存槑 |
res-ref-name | 鎸囧畾鎵寮曠敤璧勬簮鐨?/span> JNDI 鍚嶅瓧錛屼笌 <Resource> 鍏冪礌涓殑 name 灞炴т繚鎸佷竴鑷?/span> |
res-type | 鎸囧畾鎵寮曠敤璧勬簮鐨勭被鍚嶅瓧錛屼笌 <Resource> 鍏冪礌涓殑 type 灞炴т繚鎸佷竴鑷?/span> |
res-auth | 鎸囧畾鎵寮曠敤璧勬簮鐨?/span> Manager 錛屼笌 <Resource> 鍏冪礌涓殑 auth 灞炴т繚鎸佷竴鑷?/span> |
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
聽<head>
聽</head>
<body>
<%
Context initContext = new InitialContext();
Context envContext = (Context) initContext.lookup("java:/comp/env");
DataSource db = (DataSource)envContext.lookup("jdbc/javablogorl");
// javablogorl
涓?/span>
<Resource>
鍏冪礌涓?/span>
name
灞炴х殑鍊?/span>
Connection conn = db.getConnection( );聽
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM blog_systemadmin");
while(rs.next()){
聽聽聽聽聽聽 out.print(rs.getString("admin_name")+" ");
聽聽聽聽聽聽 out.print(rs.getString("admin_password")+"<br>");
}
rs.close();
stmt.close();
conn.close();
%>聽
聽</body>
</html>
|
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=674822