zoukankan      html  css  js  c++  java
  • Jdk + jdbc + tomcat 综合配置

    JDBC数据库连接  
      系统配置:windowsXp/本地sqlserver2000+SP3/JDK5.0/TOMCAT5.58/sqlserver2000 driver for JDBC

      第一步:----安装J2SDK:

      到SUN官方站点(http://java.sun.com/j2se,英文网站)下载J2SDK的安装文件。目前的最高版本是JDK 5.0 Update 2。

      安装时有两个选择安装路径的页面,第一个安装路径可以随便选我们就放在C:\JDK5.0下好了。第二个就用默认路径,别动它。

      安装完毕后,要设置环境变量

      我的电脑---属性---高级---环境变量;

      在下面的框框---系统变量(S)里新建两个系统变量。

      一个JAVA_HOME

      在变量名中输入:JAVA_HOME(注意大写),在变量值中输入:C:\JDK5.0

      一个CLASSPATH

      在变量名中输入:CLASSPATH(注意大写),在变量值中输入:D:\JDK5.0\bin;.;D:\JDK5.0\lib;D:\JDK5.0\lib\dt.jar;D:\JDK5.0\lib\tools.jar;

      新建两个系统变量后,还要在原来就有的一个系统变量PATH的变量值最前面加C:\JDK5.0\bin;

      这样JDK就安装好了,我们可以新建个D:\下新建个记事本,在里面敲入下面这段代码用来检验JDK是否安装成功。


      public class test{
       public static void main(String args[]){

        System.out.println("this is a test program.");
       }
      }


      敲完保存,更改文件名为test.java

      注意1:最好自己敲下键盘,在网页上直接复制可能会出现语法错误。

      注意2:第一句中public class test的test要跟java文件的文件名一摸一样,大小写也要相同,否则错误。

      开始——运行  输入cmd进入DOS命令提示符窗口

      在窗口中输入“D:”回车

      输入“javac test.java”回车

      输入“java test”回车

      如果显示出“this is a test program.”则表示JDK安装成功。

      第二步:----安装Tomcat:

      到tomcat官方站点http://jakarta.apache.org/site/downloads/index.html,点Tomcat Downloads里的Tomcat5,目前最新版本是5.5.9。

      安装在C:\Tomcat5.5下

      TOMCAT5.5以上版本在JDK1.5以上版本安装成功的前提下,无需在系统变量里做任何更改。

      安装完毕后,你可以在系统栏里看到一个TOMCAT的服务器。

      用IE打开Tomcat Downloads里的Tomcat5,http://localhost:8080页面,若能看到tomcat的默认JSP页面,则说明TOMCAT安装成功!


      第三步:----安装JSP访问SQL Server 2000的驱动程序JDBC:

      JDBC下载在微软的官方页(http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=86212D54-8488-481D-B46B-AF29BB18E1E5)下载。

      下载安装后的默认路径是C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC

      其核心的三个文件是C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib路径下的三个.JAR压缩文件

      第一步我们在环境变量中新建的系统变量CLASS_PATH的变量值中追加

      C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;

      接着将msbase.jar、mssqlserver.jar、msutil.jar拷至C:\Tomcat 5.5\common\lib

      然后重新启动TOMCAT服务器!

      用一段代码来测试数据库连接成功与否。

    <%@    page    contentType="text/html;charset=gb2312"%>                 
    <%@    page    import="java.sql.*"%>         
    <html>                 
    <body>                 
    <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();                 
    String    url="jdbc:microsoft:sqlserver://127.0.0.1:4133;DatabaseName=pubs";       //pubs为SQLSERVER2000的默认数据库         
    String    user="sa";
    //把sa替换成你的SQLSERVER2000用户名         
    String    password="sa";
    //把sa替换成你的SQLSERVER2000密码         
    Connection    conn=    DriverManager.getConnection(url,user,password);                 
    Statement    stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);                 
    String    sql="select    *    from    titles";
    //titles为SQLSERVER2000的默认数据库pubs中的默认表                 
    ResultSet    rs=stmt.executeQuery(sql);                 
    while(rs.next())    {%>                 
    您的第一个字段内容为:<%=rs.getString(1)%>                 
    您的第二个字段内容为:<%=rs.getString(2)%>                 
    <%}%>                 
    <%out.print("数据库操作成功,恭喜你");%>                 
    <%rs.close();                 
    stmt.close();                 
    conn.close();                 
    %>                 
    </body>                 
    </html>

      注:网上有的代码“<%=rs.getString(2)%>  ”中有分号,正确代码的应该去掉分号。

    Tomcat数据缓冲池连接
      第三步:----配置Tomcat

      在Tomcat 5.5\conf\server.xml的<GlobalNamingResources>中添加:

      <Resource name="JDBC for MySQL" type="javax.sql.DataSource" password="sa" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" username="sa" url="jdbc:microsoft:sqlserver://127.0.0.1:4133;DatabaseName=pubs" maxActive="4"/>

      或通过Tomcat Administration登陆其管理界面,并由Resources->Data Sources->Create New Data Source创建新的数据源。

    Property Value
    JNDI Name:  JDBC for MySQL
    Data Source URL:  jdbc:microsoft:sqlserver://127.0.0.1:4133;DatabaseName=pubs
    JDBC Driver Class:  com.microsoft.jdbc.sqlserver.SQLServerDriver
    User Name:  sa
    Password:  sa
    Max. Active Connections:  4
    Max. Idle Connections:  2
    Max. Wait for Connection:  5000
    Validation Query:   
     

      接着单击Save按钮保存,并单击Commit Changes将更改更新至Tomcat服务器。

      在Tomcat 5.5\webapps\[项目名称]\WEB-INF\web.xml或Tomcat 5.5\conf\web.xml的<web-app>中添加:

      <resource-ref>
         <description>MySQL Connection Pool</description>
         <res-ref-name>JDBC for MySQL</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
       </resource-ref>

      在Tomcat 5.5\webapps\[项目名称]\META-INF\context.xml或Tomcat 5.5\conf\context.xml的<Context>中添加:

      <ResourceLink name="JDBC for MySQL" global="JDBC for MySQL" type="javax.sql.DataSource"/>

      第四步:----测试

      重启Tomcat服务器,写一个test.jsp:

    <%@ page import="java.sql.*"%>
    <%@ page import="javax.sql.*"%>
    <%@ page import="javax.naming.*"%>
    <%@ page session="false" %>
    <%@page contentType="text/html;charset=gb2312"%>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>Test of SQL Server connection pool</title>
    </head>
    <body>
    <%
    out.print("Start
    ");
    try{
    Context initCtx = new InitialContext();
    Context ctx = (Context) initCtx.lookup("java:comp/env");
    Object obj = (Object) ctx.lookup("JDBC for MySQL");
    javax.sql.DataSource ds = (javax.sql.DataSource)obj;
    Connection conn = ds.getConnection();
    out.print("SQL Server connection pool runs perfectly!");%>


    <%
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    String sql="select * from titles";
    //titles为SQLSERVER2000的默认数据库pubs中的默认表
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next()) {%>


    您的第一个字段内容为:<%=rs.getString(1)%>


    您的第二个字段内容为:<%=rs.getString(2)%>


    <%}%>


    <%out.print("数据库操作成功,恭喜你");%>
    <%rs.close();
    stmt.close();

    conn.close();
    }
    catch(Exception ex){
    out.print(ex.getMessage());
    ex.printStackTrace();
    }
    %>
    </body>
    </html>

    Log4j日志管理
    1、首先将log4j-1.2.9.jar包含入类路径中。

    2、Log4J必须在应用的其它代码执行前完成初始化。其初始化内容如下:

    import java.io.*;
    import javax.servlet.*;
    import org.apache.log4j.*;
    public class Log4JInit extends HttpServlet {
    public void init() throws ServletException {
    String prefix = getServletContext().getInitParameter("SERVLET_ROOT_PATH");
    String file = getServletConfig().getInitParameter("LOG4J_FILE");
    // 从Servlet参数读取log4j的配置文件
    if (file != null) {
    PropertyConfigurator.configure(prefix + file);
    }
    }
    public void doGet(HttpServletRequest request,HttpServletResponse response)throws
    IOException, ServletException {}
    public void doPost(HttpServletRequest request,HttpServletResponse response)throws
    IOException, ServletException {}
    }

    3、web.xml内容配置如下:具体的文件放在 路径:\webapps\[项目名称]\WEB-INF\web.xml或Tomcat 5.5\conf\web.xml

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>

    <servlet>
    <servlet-name>globalparameter</servlet-name>
    <servlet-class>edu.common.GlobalParameter</servlet-class>
    <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
    <servlet-name>globalparameter</servlet-name>
    <url-pattern>/globalparameter</url-pattern>
    </servlet-mapping>

    <context-param>
    <param-name>SERVLET_ROOT_PATH</param-name>
    <param-value>C:/Java/Tomcat 5.5/webapps/ROOT/WEB-INF/classes</param-value>
    </context-param>

    <context-param>
    <param-name>LOG4J_FILE</param-name>
    <param-value>/log4j.properties</param-value>
    </context-param>

    ........

    </web-app>

    注意:上面的load-on-startup应设为1,以便在Web容器启动时即装入该Servlet。log4j.properties文件放在根的properties子目录中,也可以把它放在其它目录中。应该把.properties文件集中存放,这样方便管理。

    4、log4j.properties的配置,具体的路径在\webapps\项目名称\WEB-INF\log4j.properties

    在配置文件中即log4j.properties中这样设置:

    # 其中,Log4j提供的appender有以下几种:
    # org.apache.log4j.ConsoleAppender(控制台),
    # org.apache.log4j.FileAppender(文件),
    # org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
    # org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
    # org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

    # 配置日志信息的格式(布局),其语法为:
    # log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
    # log4j.appender.appenderName.layout.option1 = value1
    # log4j.appender.appenderName.layout.option = valueN
    # 其中,Log4j提供的layout有以下几种:
    # org.apache.log4j.HTMLLayout(以HTML表格形式布局),
    # org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
    # org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
    # org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

    #设置成根目录,所有包括debug以上级别的信息都打印出来到日志文件中
    log4j.rootLogger=debug, stdout

    #设置为debug,表示只能打印出debug级别的信息
    log4j.logger.debug=debug, R

    #设置成info,表示只能打印出info级别的信息
    log4j.logger.info=info,s

    #设置成error,表示只能打印出error级别的信息
    log4j.logger.error = error,k

    #输出debug级别以上的信息到控制台
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=(%F:%L) - %m%d%n

    #打印debug级别的信息到debug.log
    log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.R.File=c:/debug.log
    log4j.appender.R.Append = true
    log4j.appender.R.DatePattern='.'yyyy-MM-dd'.txt'
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%d [%F:%L] - %m \r\n

    #打印info级别的信息到info.log
    log4j.appender.s=org.apache.log4j.RollingFileAppender
    log4j.appender.s.File= c:/info.log
    log4j.appender.s.Append = true
    # Control the maximum log file size
    log4j.appender.s.MaxFileSize=100KB
    # Archive log files (one backup file here)
    log4j.appender.s.MaxBackupIndex=1
    log4j.appender.s.layout=org.apache.log4j.PatternLayout
    log4j.appender.s.layout.ConversionPattern=%p %t %c - %m%d%n

    #打印error级别的信息到error.log中
    log4j.appender.k=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.k.File=C:/error.log
    log4j.appender.k.Append = true
    log4j.appender.k.DatePattern='.'yyyy-MM-dd'.txt'
    log4j.appender.k.layout=org.apache.log4j.PatternLayout
    log4j.appender.k.layout.ConversionPattern=%d [%F:%L] - %m \r\n

    5、在class类中的的设置如下:

    static Logger debugLog=Logger.getLogger("debug")
    static Logger infoLog=Logger.getLogger("info")
    static Logger errorLog=Logger.getLogger("error")

    这样不同级别的log信息就可以打在不同的log文件中例如:

    debugLog.debug("就打印到上面的debuginfo中");
    InfoLog.info("就打印到上面的infoLog中");

    屏蔽tomcat目录列表功能
    缺省情况下,如果你访问tomcat下的一个web应用,那么如果你输入的是一个目录名,而且该目录下没有一个可用的welcome文件,那么tomcat会将该目录下的所有文件列出来,如果你想屏蔽这个缺省行为,那么可以修改conf/web.xml文件,将其中的:

    <servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
    </init-param>
    <init-param>
    <param-name>listings</param-name>
    <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    修改为:
    <servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
    </init-param>
    <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
  • 相关阅读:
    献给初学者:谈谈如何学习Linux操作系统
    Spring MVC 教程,快速入门,深入分析
    缓存、缓存算法和缓存框架简介
    计算机科学中最重要的32个算法
    12岁的少年教你用Python做小游戏
    当你输入一个网址的时候,实际会发生什么?
    java程序员从笨鸟到菜鸟之(七)一—java数据库操作
    java中的类修饰符、成员变量修饰符、方法修饰符。
    Java内存分配全面浅析
    Java知多少(19)访问修饰符(访问控制符)
  • 原文地址:https://www.cnblogs.com/hellofengying/p/358128.html
Copyright © 2011-2022 走看看