JSP环境搭建~备忘

 JSP开发环境搭建:
        首先说明一下,我是新手,之前都没接触过java,几天之内,就要接受JDK,JRE,TOMCAT,ECLIPSE,LOMBOZ,MYECLIPSE,连接池等很多概念。其实这些概念一个个出现是一环扣一环的。首先要用java,必然要用到JDK这么一个java的开发包和JRE这样一个运行环境;但又要用JSP开发我的服务器登录网页,就又要用到TOMCAT服务器;后来,我发现只是用文本来编辑代码,很难找出代码中的错误,别人告诉我eclipse很好用;可我又很贪心,还想要编辑我的JSP代码,那就要在eclipse里安装插件了,lomboz和myeclipse是一个选择。网页开发,数据库又比不可少,于是连接池也就出现了,这还只是起步阶段,相信越到后面我会遇到越来越多新的概念和工具。
       下面介绍的是整个JSP开发环境搭建过程,以及这几天来一直困扰我的一个又一个接踵而至的问题,希望对首要初次接触java,jsp的新手有点帮助。

一、JDK
1 JDK概念
        JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境。JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。JDK包含的基本组件包括:
      ·javac – 编译器,将源程序转成字节码
      ·jar – 打包工具,将相关的类文件打包成一个文件
      ·javadoc – 文档生成器,从源码注释中提取文档
      ·jdb – debugger,查错工具
       JDK中还包括完整的JRE(Java Runtime Environment,Java运行环境),也被称为private runtime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。
    JDK一般有三种版本:
      SE(J2SE),standard edition,标准版,是我们通常用的一个版本
      EE(J2EE),enterpsise edtion,企业版,使用这种JDK开发J2EE应用程序,
      ME(J2ME),micro edtion,主要用于移动设备、嵌入式设备上的java应用程序

    详细介绍请见:http://www.itisedu.com/phrase/200604181646475.html 这里的资料很有用,新手值得一看。

2 JDK下载安装
   我用的是jdk1.6.0_05,下载网址:http://java.sun.com/javase/downloads/?intcmp=1281
   详细下载安装过程请参见:
                      
    下载过程:http://www.java2000.net/viewthread.jsp?tid=385
    安装过程:http://www.java2000.net/viewthread.jsp?tid=386

3 JDK环境变量设置

   右击“我的电脑”的“属性”,点击“高级-环境变量-”在“新建”里面设置:

   变量名:CLASSPATH
   变量值: .;C:/Program Files/Java/jdk1.6.0_05/lib/dt.jar;C:/Program Files/Java/jdk1.6.0_05/lib/tools.jar;

   变量名:JAVA_HOME
   变量值: C:/Program Files/Java/jdk1.6.0_05;

   变量名:PATH
   变量值: C:/Program Files/Java/jdk1.6.0_05/bin;
  
   详细图解过程见:http://www.java2000.net/viewthread.jsp?tid=387
                   但这这个图解过程的第五步,我没有在最后加上版主说要注意的那个点,照样可以运行。。。


4 JDK安装过程遇到的问题
    相信新手在安装完后准备编译自己的第一个java程序的时候,一定也像我一下遇到如下问题:
 
  (1)javac不是内部命令和外部命令
  (2)javac编译通过后,用java 命令运行第一个helloworld程序后 又出现NoClassFileDefFound的错误

        在出现第一个问题的时候,我百度,google上搜到了很多解决办法,有一种办法是直接在DOS里用set 命令设置环境变量,哎~~设置后编译的确能够通过,但是却会出现第二个问题,不能执行我刚才所编译的文件。。。
       反正我又重装JDK,又试遍了网上说的各种稀奇古怪的办法,还是不行,真是郁闷了
       最后的最后,我发现问题就是出在我的环境变量的设置上,变量值的最后忘记加分号了。所以这些小细节一定一定要注意了,比如CLASSPATH的变量值前一定要加——.;


二、Tomcat
1.Tomcat 概念
        Tomcat 服务器是一个免费的开放源代码的Web 应用服务器。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。

2.Tomcat的下载
       Tomcat 5.5 的下载地址为 http://tomcat.apache.org/download-55.cgi
       我们选择zip压缩的格式,下载后直接解压到我们的本地目录,点击文件夹下进入 bin 子目录,双击[startup.bat] 就可以启动Tomcat,无需安装 。启动Tomcat后,在IE地址栏里输入http://localhost:8080/,如果能显示一只猫的网页,就表明Tomcat安装成功。
        具体的图解过程见网址:http://www.java2000.net/viewthread.jsp?tid=601

2.Tomcat安装过程中出现的问题
  1.Tomcat启动时一闪而过
        我一开始用的时候是用的安装版的Tomcat,版本也比较低,而且很不稳定,经常就自己非法关掉了,重启又启动不了,在DOS里查看使用端口(查看端口命令:netstatu -na),发现8080端口还在使用,每次要重启一下机器,才可再启动我的Tomcat,郁闷至极啊。
        后来,听了版主的劝告,重新下了免安装的Tomcat 5.5.26版本,这下是稳定了,但也出现了一闪而过的现象。从版主的文章上了解到,这个现象就是两个原因:
    a) JDK目录没有找到,请参考 修改Tomcat的JDK目录      http://www.java2000.net/viewthread.jsp?tid=406
    b) 端口被占用, 请参考 Tomcat 5.5 修改服务器的侦听端口
     http://www.java2000.net/viewthread.jsp?tid=602
    我的是修改了JDK目录后一切都运行正常了,真是开心啊。


三、数据库连接池
       这一小节应该放到下面来讲的,但我想先在我的tomcat下试试用连接池连接数据库。
      我用的数据库是sqlserver2005,(为什么我用的东西都与众不同的呢,当初数据库遇到问题的时候,在网上搜索,铺天盖地的都是sqlserver2000,mysql,orcal的数据库连接问题,sqlserver2005的还真是少之又少,得出一个结论,什么都可以赶新潮,用软件就不要太赶新潮了,特别是对我们这些新手来说,遇到问题就惨了!)好了,说了很多废话,回归正题。


 1. 首先要把sqlserver2005的JDBC驱动程序sqljdbc拷贝到Tomcat安装目录的/common/lib下和你自己网站的/WEB-INF/lib下
    sqlserver2005区别于sqlserver2000的是,sqlserver2005只有一个sqljdbc.jar包,而2000有三个包。


 2. 在Tomcat安装目录下/conf/Catalina/localhost文件夹中建立一个和你网站文件夹名字一样的XML文件。例如:MyWeb.xml。内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <Context path="/MyWeb" docBase="D:/MyWeb" reloadable="true">
    <Resource
     name="jdbc/mysql"
     auth="Container"
     type="javax.sql.DataSource"
     driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"      
     url="jdbc:sqlserver://localhost:1433;DatabaseName=EdocServer_db"      
     username="sa"
     password="123456"
     maxActive="20"
     maxIdle="10"      
     maxWait="-1"
   /> 
   </Context>
   这里讲到driverClassName和url的写法,sqlserver2005与sqlserver2000也是不同的,
   sqlserver2000写法如下:
   driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"      
   url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=EdocServer_db"
   咋看好像相似啊,睁大眼睛自己找了。。。


   <Context path="/MyWeb" docBase="D:/MyWeb" reloadable="true">
   path="/MyWeb" 就是虚拟目录的名称
   docBase="D:/MyWeb"为物理路径
   path是虚拟目录,访问的时候用127.0.0.1:8080/MyWeb/*.jsp访问网页;
   docBase是网页实际存放位置的根目录(我的放在D:/MyWeb),映射为path虚拟目录;
   reloadable="true"表示你修改了jsp文件后不需要重启就可以实现显示的同步。
   其他,各个参数的意思大家自己去找了,我就不说了。

3. 最后,在你自己网站的/WEB-INF/web.xml文件中,添加一下代码
  <resource-ref>    
  <description>DB Connection</description>    
  <res-ref-name>jdbc/mysql</res-ref-name>    
  <res-type>javax.sql.DataSource</res-type>    
  <res-auth>Container</res-auth>    
  </resource-ref>
  OK了,我的数据库连接池就配置完成了。

4.测试代码
  我在D:/MyWeb下创建了一个index.jsp文件代码如下:
  <%@page contentType="text/html" pageEncoding="UTF-8"%>
  <%@page import="javax.naming.*,javax.sql.*,java.sql.*"%>
  <pre>
<%
  System.out.println("CLASSPATH....");
  System.out.println(System.getProperty("java.class.path"));
  Context initCtx = new InitialContext();
  Context envCtx = (Context) initCtx.lookup("java:comp/env");
  DataSource ds = (DataSource) envCtx.lookup("jdbc/mysql");
  Connection con = null;
  ResultSet rs = null;
  try {
    con = ds.getConnection();
    DatabaseMetaData dm = null;
    if (con != null) {
      dm = con.getMetaData();
      out.println("Driver Information");
      out.println("/tDriver Name: " + dm.getDriverName());
      out.println("/tDriver Version: " + dm.getDriverVersion());
      out.println("/nDatabase Information ");
      out.println("/tDatabase Name: " + dm.getDatabaseProductName());
      out.println("/tDatabase Version: " + dm.getDatabaseProductVersion());
      out.println("Avalilable Catalogs ");
      rs = dm.getCatalogs();
      while (rs.next()) {
        System.out.println("/tcatalog: " + rs.getString(1));
      }
    } else {
      out.println("Error: No active Connection");
    }
  } catch (Exception ex) {
    ex.printStackTrace();
  } finally {
    if (rs != null) {
      try {
        rs.close();
        rs = null;
      } catch (Exception ex) {}
    }
    if (con != null) {
      try {
        con.close();
        con = null;
      } catch (Exception ex) {}
    }
  }
%>
  </pre>
  再在地址栏里输入:http://localhost:8080/MyWeb/,ok运行成功,大功告成。
 
5. 数据库连接池的遇到的问题
       其实连接池问题才是我这几天遇到的最大的麻烦了,各种各样的问题都被我遇到过的,绝望到我都想放弃用这个东西了,幸好有版主手把手的教我怎么怎么配置,怎么怎么一步一步来,最后才在tomcat的环境下连接成功。
下面说下我出现的各种问题吧:


1.Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
 出现这个问题主要是没有把sqljdbc.jar包放到Tomcat安装目录的/common/lib下


2.Cannot create JDBC driver of class '' for connect URL 'null'
     这就应该是/WEB-INF/web.xml的配置问题
     其实这个问题我也没有搞清楚到底是怎么回事,我当初是配置了web.xml文件的,但也出现了这种问题,在csdn上问了好久,也有好多人出谋划策,可就是解决不了,足足被困扰了一个多星期,形容当时的心情,应该是郁闷的都想跳楼了~~~~
     版主要我新下了一个用他的话说“干净的”tomcat,再一步一步跟我说,不要配置那个server.xml,要配置MyWeb,要配置web.xml,结果就行了。有点开心也有点郁闷,郁闷的是为什么不行,为什么又就行了呢???这个过程的转变我还没理清楚。


3.Cannot create PoolableConnectionFactory (无法打开登录 'EdocServer_db' 中请求的数据库。登录失败)
       这个问题,唉~~~~ 其实都怪我自己啊,不知道什么时候把我创建的数据库给删了。在我打开企业管理器的时候才发现,我的数据库没了,当然重新创建了一个数据库就又可以运行了。


4.Name jdbc is not bound in this Context
     这个问题是我把程序移植到eclipse里的时候出现的问题,应该也是配置文件的问题,但到现在我还没有解决,
 
     eclipse的安装配置下一篇再写吧,这一篇就先到这里了。
     唉~革命尚未成功啊,我还需努力~~~~~


  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值