DBMNG数据库管理与应用

书籍是全世界的营养品。生活里没有书籍,就好像没有阳光;智慧里没有书籍,就好像鸟儿没有翅膀。
当前位置:首页 > 经验分享 > Java开发

用TOMCAT作简单的jspweb开发

开发环境配置
所在的部门做的是VB + Oralce的erp开发,Java方面的知识已经忘得差不多了,最近部门的项目不是很紧,准备写点东西,在win操作系统下,从环境配置开始,一点一点进行java方面的web开发。希望能对大家有点帮助。
        许多人做java的web开发还是在windows操作系统下,而要做开发的第一步,就是配置开发环境。Java的开发环境,基本的就是java虚拟机和web服务器,当然,数据库服务器环境也是比较重要的一个环节,但是由于开发时所用的数据库有很多,比如Oracle,MySQL,SQLServer,Access等等,而且对于web开发者来说,只要数据库的服务存在,提供了数据库链接的基本信息(url,username,password,driverClass),利用JDK或者第三方提供的JDBC驱动类的包,很容易链接到数据库。所以现在所说的java web开发环境,主要针对java虚拟机和web服务器来说。而在开发过程中,许多开发者喜欢用的web服务器是tomcat,所以就简单讲讲JDK和TOMCAT的安装配置。
        而开发所用的IDE,只能用我经常用的Eclipse为例了。
        JDK的安装,版本选择。
        JDK有很多版本,J2SE 1.3.1 ,1.4.2 ,1.5 ,1.6。。。下载JDK安装文件,请到sun公司的网站进行下载。
比如,现在JDK1.6的下载页面为http://java.sun.com/javase/downloads/index.jsp
而以前的版本的下载页面为http://java.sun.com/javase/downloads/previous.jsp
这里选择1.4.2版本的JDK。
注:
        开发过程中,JDK版本的选择,如果是由你决定,那么可以根据个人的喜欢下载相应的版本就可以了。同时要注意所选择的web服务器对JDK版本的要求。如果项目统一要求,或者以前已经有了开发好的项目,那么就用指定的版本的JDK。毕竟,不同版本的JDK中类和包的结构可能存在一些差别。
        这里,选择1.4.2版本的JDK。
        在下载页面,(http://java.sun.com/j2se/1.4.2/download.html)可以看到提供了JDK,JRE以及JDK文档的下载。JRE是给操作系统提供Java运行环境,比如IE中的Applet程序的运行支持。开发者要用JDK,JDK安装后,自带JRE。
        PS>建议下栽JDK安装文件的同时下栽JDK文档,这是开发过程中最好的帮手,可以查到各种类,方法的说明和参数,以及可能抛出的异常等基本信息。如果要做Java WEB开发,这个帮助文档是不应该缺少的。
        安装JDK以及JDK版本的管理。
        JDK有不同的版本,开发过程中不同的项目使用的JDK版本可能不同。所以建议安装的时候把JDK安装到某个目录下,并给每个JDK的文件夹用JDK版本命名,同时建议不要安装在系统盘上,安装到别的盘下,避免重装系统等情况下对JDK有影响。(重装系统后原有的JDK能否使用没有确认。)比如,我的JDK都安装在E盘JDK目录下,已有的JDK是1.6版本的和1.3.1_12版本,现在安装的时候,就在同级目录下建了1.4.2_13版本的目录。

设定好安装目录后,开始进行安装,安装目录只是个人喜好,对JDK没有影响。安装完成后,重启,设定生效。重启后,在开始-运行-进入cmd窗口,输入 java –version,正常的情况下会打印出你JDK的版本信息。表明安装成功。

PS>安装了多个版本的JDK,如何更改当前系统使用的JDK?
比如我的机器现在有的JDK分别为1.3.1_12,1.4.2_13,1.6三个版本。
安装的目录分别为:
        1.3.1_12                      C:\jdk1.3.1_12
        1.4.2_13                              E:\JDK\j2sdk1.4.2_13
        1.6                              E:\JDK\jdk1.6
如果我要用1.3.1_12版本的JDK,只要在“我的电脑”点右键进入系统属性界面,详细设定窗口点击环境变量,在系统环境变量中找到path的参数,在参数前输入你的JDK目录\bin;确定后,再打开一个新的cmd窗口,输入java –version,版本信息是不是变了?比如,我想用1.3.1_12版本的JDK,加上C:\jdk1.3.1_12\bin;后,再次查看版本信息,就变成如下的信息了。


注意要打开一个新的cmd窗口,原来的cmd窗口打印不出新的版本信息。

PS>有时候安装了某个程序或者服务后,会发现JDK版本被更改。比较常见的是Oracle9i安装后,发现JDK的版本信息变成了1.3.1的,这是因为安装Oracle过程中,Oracle自己安装了JDK。安装Oracle后,在“我的电脑”点右键进入系统属性界面,详细设定窗口点击环境变量,在系统环境变量中找到path的参数,在这里察看Oracle设定的参数,会发现几个Oracle安装目录下的jre参数,一般有1.3.1,1.1.8,这2个版本,把他们删掉后你自己的JDK就可以正常使用了。

TOMCAT的下栽及安装。
Tomcat要到http://tomcat.apache.org/网站上下载。可以选择不同的版本,选择的时候注意其对JDK版本的要求,如果tomcat对JDK版本有要求的时候,下栽目录会有提示。
在这里选择tomcat4.0.6,exe用的tomcat进行下栽安装。
安装的文件有zip的exe的等。2者都可以,个人感觉zip的解压了就可以用,要方便些。
解压完了,打开tomcat的目录,可以看到以下几个接触比较多的文件夹。Bin,common,里,conf,webapps,work。
Bin:这个文件夹下放着tomcat的批处理文件,tomcat的开始和关闭的批处理文件都在这里。Startup.bat,shutdown.bat
Common,lib:tomcat提供的jar包在这2个文件夹下,开发项目时设定classpath的时候,可以到这里找要用的jar包。
Conf:tomcat的配置文件,其中server.xml可能经常会用到,可以在里面进行配置新的应用,加载数据源等各种配置。
Webapps:正常情况下,用户自己配置的应用是放在这里的。当然,这不是绝对的,可以在刚才说的server.xml里进行设定,那么你的程序放在哪里都可以了。
Work:这个目录还是比较有用的,开发过程中写好的jsp文件,在tomcat中初次运行的时候,会被tomcat解释成java文件并编译成class文件放在这里。有时候jsp文件出异常的时候,报错的文件不是用户自己写的文件,而是和jsp文件名有些相似的java文件,那就到这里来找。
现在,到bin目录下点击startup.bat来启动tomcat服务。如果按照我上面介绍的步骤,可以发现tomcat启动不了。

这是因为有些参数我们还没有设定。
打开startup.bat文件。(rem是注释,就不需要去管了,摘出来会被运行的语句)
@echo off
if "%OS%" == "Windows_NT" setlocal
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=.
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
set CATALINA_HOME=..
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome

set EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat

if exist "%EXECUTABLE%" goto okExec
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end
:okExec

set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

:end
这种语言并不熟悉,不过可以大致看它的意思。在确定操作系统为windows后,判断CATALINA_HOME变量是否定义,如果没有定义,将当前的tomcat目录作为tomcat服务器的目录。如果定义的话,将定义的CATALINA_HOME作为tomcat服务器的目录。
执行catalina.bat批处理,在这个批处理里,我们看到这句话,JAVA_HOME       Must point at your Java Development Kit installation.,这个表明要运行tomcat,我们必须设定JAVA_HOME为某个安装了的JDK。所以,在“我的电脑”点右键进入系统属性界面,详细设定窗口点击环境变量,在系统环境变量中设定JAVA_HOME为自己的JDK目录。

设定完成后,再次点击startup.bat,正常情况下,应该看到如下界面。

表明tomcat服务已经正常启动。这时候打开IE,输入http://localhost:8080/,可以看到tomcat正常启动的画面。


这时候,tomcat安装已经正常完了。
PS>tomcat的默认端口是8080,这个可以在server.xml中进行配置,以后再作介绍。有时候如果别的服务占用了8080的端口,可以去更改tomcat的端口,来让tomcat可以正常运行。

安装好的tomcat的主页面中,有一些链接的信息还是有些用处的。
JSP,Servlet,WebDAV Examples这些,提供了一些简单的jsp和servlet,让你了解tomcat下web开发的一些最基本的方式。
Tomcat Documentation中提供了关于当前版本的Tomcat的各种资料,有些很详细,有些比较潦草。不过看看还是很有帮助的。
如果有兴趣,看看server.xml,web.xml那里边有许多被注释掉的sample。可以了解tomcat的各种配置等信息。

IDE:
我用的IDE是Eclipse,Eclipse的安装比较简单,暂时就不提了。

环境配置好了,我们不妨写出第一个jsp文件,来看看在tomcat下能否正常运行。
文件名:HelloWorld.jsp
文件内容:

  1. <%
  2. String str = "Hello World";
  3. out.print(str);
  4. %>
复制代码

很简单,定义一个字符串,将这个字符串打印出来。
把这个文件拷贝到tomcat下的webapps/examples/文件夹下。
然后在IE中输入以下地址
http://localhost:8080/examples/HelloWorld.jsp
正常的情况下将会看到打印出的字符串。


OK,第一个jsp程序成功运行。
之所以作这样一个页面,是要带出2个小问题点。
一,        JSP以及Java是严格区分大小写的,以前没做过jsp开发的朋友要注意这点。
比如,你输入http://localhost:8080/examples/helloworld.jsp,将无法访问到这个页面。
二,        成功运行后,我们到work目录下去找这个文件,在work\Standalone\localhost\examples目录下,可以看到一个HelloWorld$jsp.java和HelloWorld$jsp.class,这就是tomcat把我们写的jsp文件生成java文件,然后在编译成class文件。Tomcat运行的时候直接调用这个class文件。
打开,看一下源码。

  1. package org.apache.jsp;

  2. import javax.servlet.*;
  3. import javax.servlet.http.*;
  4. import javax.servlet.jsp.*;
  5. import org.apache.jasper.runtime.*;


  6. public class HelloWorld$jsp extends HttpJspBase {


  7.     static {
  8.     }
  9.     public HelloWorld$jsp( ) {
  10.     }

  11.     private static boolean _jspx_inited = false;

  12.     public final void _jspx_init() throws org.apache.jasper.runtime.JspException {
  13.     }

  14.     public void _jspService(HttpServletRequest request, HttpServletResponse  response)
  15.         throws java.io.IOException, ServletException {

  16.         JspFactory _jspxFactory = null;
  17.         PageContext pageContext = null;
  18.         HttpSession session = null;
  19.         ServletContext application = null;
  20.         ServletConfig config = null;
  21.         JspWriter out = null;
  22.         Object page = this;
  23.         String  _value = null;
  24.         try {

  25.             if (_jspx_inited == false) {
  26.                 synchronized (this) {
  27.                     if (_jspx_inited == false) {
  28.                         _jspx_init();
  29.                         _jspx_inited = true;
  30.                     }
  31.                 }
  32.             }
  33.             _jspxFactory = JspFactory.getDefaultFactory();
  34.             response.setContentType("text/html;ISO-8859-1");
  35.             pageContext = _jspxFactory.getPageContext(this, request, response,
  36.                                     "", true, 8192, true);

  37.             application = pageContext.getServletContext();
  38.             config = pageContext.getServletConfig();
  39.             session = pageContext.getSession();
  40.             out = pageContext.getOut();

  41.             // begin [file="/HelloWorld.jsp";from=(0,2);to=(3,0)]
  42.                 
  43.                 String str = "Hello World";
  44.                 out.print(str);
  45.             // end

  46.         } catch (Throwable t) {
  47.             if (out != null && out.getBufferSize() != 0)
  48.                 out.clearBuffer();
  49.             if (pageContext != null) pageContext.handlePageException(t);
  50.         } finally {
  51.             if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);
  52.         }
  53.     }
  54. }
复制代码

有意思吧。做java开发,可以有点这样的想法,所有的程序,最终都可以看作给java虚拟机运行的一堆类文件。Jsp,开发中要用到的jar包,甚至是tomcat本身,所以,开发中出现问题的时候,其实就是你用错误的方法操作了一堆别人提供的类,所以,1,要知道游戏规则(语法规范),2,要知道你在跟谁玩,并且要了解跟你玩的对象(开发过程中要用到的各种资源),这2点都知道的话,出了问题也很容易找出来了。
本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号