1、在TOMCAT里配置數據源,在<host></host>之間加上下面的代碼,具體的參數根據自己情況修改
???<Context path="" docBase="E:\WEB_CODE\DEMO\WEB" debug="0">
???
???<Logger className="org.apache.catalina.logger.FileLogger"
???????????????????? prefix="localhost_xzm_log." suffix=".txt"
??????? ?? timestamp="true"/>
????????? <Environment name="maxExemptions" type="java.lang.Integer"
????????????????????? value="15"/>
????????? <Parameter name="context.param.name" value="context.param.value"
???????????????????? override="false"/>?????????
?????????
????????? <Resource name="jdbc/tzwdb" auth="Container"
??????????????????? type="oracle.jdbc.pool.OracleDataSource"/>
????????? <ResourceParams name="jdbc/tzwdb">
??????????? <parameter><name>factory</name><value>oracle.jdbc.pool.OracleDataSourceFactory</value></parameter>???????????
??????????? <parameter><name>driverClassName</name><value>oracle.jdbc.driver.OracleDriver</value></parameter>
??????????? <parameter><name>url</name><value>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</value></parameter>
??????????? <parameter><name>username</name><value>demo</value></parameter>
??????????? <parameter><name>password</name><value>demo</value></parameter>
??????????? <parameter><name>serverName</name><value>127.0.0.1</value></parameter>???????????
??????????? <parameter><name>databaseName</name><value>ORCL</value></parameter>???????????
??????????? <parameter><name>portNumber</name><value>1521</value></parameter>
??????????? <parameter><name>maxActive</name><value>30</value></parameter>
??????????? <parameter><name>maxIdle</name><value>10</value></parameter>
??????????? <parameter><name>maxWait</name><value>500</value></parameter>???????????
??????????? <parameter><name>description</name><value>oracle</value></parameter>???????????
????????? </ResourceParams>
???????????
????????? <Resource name="mail/Session" auth="Container"
??????????????????? type="javax.mail.Session"/>
????????? <ResourceParams name="mail/session">
??????????? <parameter>
????????????? <name>mail.smtp.host</name>
????????????? <value>localhost</value>
??????????? </parameter>
????????? </ResourceParams>
???
???</Context>
2、連接數據庫
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
/**
?* @author :?蕭秋水
?*
?* @contact me :
cnyanhai@hotmail.com
?*
?*/
public class DBManager {
??? static Logger logger = Logger.getLogger(DBManager.class.getClass());
??? private Context initCtx = null;
??? private Context ctx = null;
??? private DataSource ds = null;
??? private long timeout = 5000;
??? private Statement theStatement = null;
??? private PreparedStatement thePstmt = null;
??? private static final String userName = "tzw";
??? private static final String password = "ywsoft";
??? /***************************************************************************
???? *
???? * 初試化initCtx
???? *
???? * 取得數據源對象
???? *?
???? **************************************************************************/
??? public DBManager() {
??????? try {
??????????? initCtx = new InitialContext();
??????????? //init context,read config web.xml
??????????? if (initCtx == null) {
??????????????? throw new Exception("Initial Failed!");
??????????? }
??????????? ctx = (Context) initCtx.lookup("java:comp/env");
??????????? //find "jdbc/tzwdb" object this configruation in the SERVER.XML of
??????????? // Tomcat
??????????? if (ctx != null) {
??????????????? ds = (DataSource) ctx.lookup("jdbc/tzwdb");
??????????? }
??????????? if (ds == null) {
??????????????? throw new Exception("Look up DataSource Failed!");
??????????? }
??????? } catch (Exception e) {
??????????? logger.error("Look up DataSource error! -- " + e.getMessage());
??????? }
??? }
??? /***************************************************************************
???? *
???? * get Connection
???? *
???? * @return Connection
???? *?
???? **************************************************************************/
??? public synchronized Connection getConnection() {
??????? //get connection and set to delay time
??????? long startTime = new java.util.Date().getTime();
??????? Connection con = null;
??????? while (con == null) {
??????????? con = newConnection();
??????????? if (con != null) {
??????????????? logger.info("Create New Connection!");
??????????????? break;
??????????? }
??????????? try {
??????????????? logger.info("Connection timeout,Please wait " + timeout + "ms");
??????????????? wait(timeout);
??????????? } catch (InterruptedException e) {
??????????????? logger.warn("Connection timeout! -- " + e.getMessage());
??????????? }
??????????? if ((new java.util.Date().getTime() - startTime) >= timeout) {
??????????????? logger.warn("Connection timeout!");
??????????????? break;
??????????? }
??????? }
??????? return con;
??? }
??? private Connection newConnection() {
??????? Connection con = null;
??????? try {
??????????? con = ds.getConnection(userName, password);
??????????? if (con == null) {
??????????????? throw new Exception("Create Connection Failed!");
??????????? }
??????? } catch (Exception e) {
??????????? logger.warn("Create Connection Failed! -- " + e.getMessage());
??????? }
??????? return con;
??? }
??? /***************************************************************************
???? *
???? * release the connection
???? *?
???? **************************************************************************/
??? public synchronized void freeConnection(Connection conn, PreparedStatement pstmt) {
??????? try {
??????????? //close PreparedStatement
??????????? if (pstmt != null) {
??????????????? pstmt.close();
??????????????? pstmt = null;
??????????? }
??????? } catch (Exception e) {
??????????? logger.warn("release stmt,pstmt error! -- " + e.getMessage());
??????? }
??????? try {
??????????? //close Connection
??????????? if (conn != null) {
??????????????? conn.close();
??????????????? conn = null;
??????????? }
??????? } catch (SQLException e) {
??????????? logger.warn("release conn error! -- " + e.getMessage());
??????? }
??? }
}
???
方法一:new String(request.getParameter("test").getBytes("iso-8859-1"),"GBK")
方法二:
1、
在jsp中加入下面兩行
<%@ page contentType="text/html; charset=GBK" language="java" %>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
2、
在TOMCAT中找到SetCharacterEncodingFilter.java,他們位于D:\Tomcat5.0.27\webapps\jsp-examples\WEB-INF\classes\filters,加到你的工程文件里去,并修改包名。
3、
配置WEB.XML,在web.xml里加入這一段
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>utils.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4、修改server.xml中兩個部分
<Connector port="8090"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding='GB2312'/>
<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"
port="8009" minProcessors="5" maxProcessors="75"
enableLookups="true" redirectPort="8443"
acceptCount="10" debug="0" connectionTimeout="0"
useURIValidationHack="false" protocol="AJP/1.3"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
URIEncoding='GB2312'/>