由于项目需要,搭建一个tomcat用jsp来读取数据库的内容。以前可从来没有折腾过这东西,不管了有文档在手。

    jdk1.6+jre6.0,似乎jdk是不用的,但这两个东西早就在我的电脑里了。windows7家庭普通版。下载tomcat7的instller(exe)文件,安装方便点。安装到D:\Apch\tomcat7,使用默认的8080端口访问:localhost:8080,出现tomcat的欢迎界面,安装成功。

    接下来让它可以访问数据库sql server2008。先到ms网站下载sqlserver的驱动jdbc2.0,运行安装(其实就是自解压)到某一文件夹,取出里面的sqljdbc4.jar放到D:\Apch\tomcat7\lib里,重启tomcat(方法是打开tomcat monitor,选择stop service,在start service)。新建D:Apch\tomcat7\webapps\myapp\test.jsp,编写一下测试代码:

  1. <%@ page contentType="textml; charset=gb2312" language="java"  import="java.sql.*"%> 
  2. <html> 
  3. <body> 
  4. <center> 
  5. <
  6.   String url = "jdbc:sqlserver://localhost:49172;DatabaseName=TT"
  7.   String user = "tomcat"
  8.   Connection conn = null
  9.  try{ 
  10.   String password = "pswd"
  11.   Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
  12.   conn = DriverManager.getConnection(url, user, password); 
  13.   Statement stmt = conn.createStatement(); 
  14.   String sql="SELECT * FROM tt "
  15.   ResultSet rs=stmt.executeQuery(sql); 
  16.  
  17.   while (rs.next()) { 
  18.   test1=rs.getString("hello");   
  19.   test2=rs.getString("world");   
  20.   out.print(test1 + "     "); 
  21.   out.print(test2 + "     "); 
  22.   out.println(""); 
  23.   } 
  24.   rs.close(); 
  25.   stmt.close(); 
  26. }catch(Exception e){ 
  27.    ystem.out.println(e.getMessage()); 
  28.  }finally{ 
  29.   if(conn!=null){ 
  30.    conn.close(); 
  31.   } 
  32. %> 
  33. </center> 
  34. </body> 
  35. <html> 

关于代码的说明:
 

本机安装了sqlserver2008,设置好了用sql 的lab数据库的身份验证登陆,登陆名为tomcat,密码是pswd。

lab数据库有一个表tt,tt有两个属性“hello”,“world“。

 重启tomcat,访问localhost:8080/myapp/test.jsp,出现数据库中数据,设置成功。

 p.s.这样子只是做到了临时连接数据库,每次访问都会进行一次数据库连接,效率低下,且访问速度会比较慢。当访问量很大的时候,sql server负载过重。解决这个问题的办法就是配置连接池。具体方法,在之后的文章中再写吧。

p.s.万事开头难,这里写出来只有这么一点点东西,但是看文档配置起来花的时间却是这里的几倍。希望后来的人能得到一点启发,少走弯路吧。

p.s.看到很多文章包括文档中都写了,配置各种xml的内容,其实我一直都没配过这些xml,tomcat一样的能运行起来,不知道为什么。难道是tomcat7进行了自动配置?不过要配置多个tomcat实例,是必须在\conf\server.xml中加上一个service元素的,目前没这个需要,所以没有配置过。具体如何配置xml等需要的时候在学习吧。学习本就应该如此,当需要时再去学,否则现在学一大堆,浪费了大量时间,可能十年八年都没用,到时候技术又过期了,白学了。