当前位置: 首页 > 图文教程 > 网络编程 > JSP > J2SDK和TOMCAT的安装及配置

JSP
我认为JSP有问题(上)
我认为JSP有问题(下)
jsp“抓”网页代码的程序
关于在bean里面打印html的利弊看法
bean里面如何打印到html页面
jdbc3中的RowSet 接口规范
Apusic Application Server1.0中jsp源代码泄漏漏洞
Unify的eWave ServletExec拒绝服务漏洞
通过提交超长的GET请求导致IBM HTTP Server远程溢出
在HTTP请求中添加特殊字符导致暴露JSP源代码文件
Resin 1.2 重要源代码暴露漏洞
多中WEB服务器的通用JSp源代码暴露漏洞
Tomcat 暴露JSP文件内容
IBM WebSphere Application Server 暴露JSP文件内容
JRun 2.3.x 范例文件暴露站点安全信息
BEA WebLogic 暴露源代码漏洞
IBM WebSphere Application Server 3.0.2 存在暴露源代码漏洞
Tomcat 3.1 存在暴露网站路径问题
Sun Java Web Server 能让攻击者远程执行任意命令
Netscape 修复 JAVA 安全漏洞

JSP 中的 J2SDK和TOMCAT的安装及配置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-03   浏览: 51 ::
收藏到网摘: n/a

经常看到jsp的初学者问tomcat下如何配置jsp、servlet的问题,于是总结了一下如何tomcat下配置jsp、servlet,希望对那些初学者有所帮助。 
第一步:下载j2sdk和tomcat:到sun官方站点
    最新的jdk为1.5,tomcat为5.5,建议jdk1.4以上,tomcat4.0以上
第二步:安装和配置你的j2sdk和tomcat:执行j2sdk和tomcat的安装程序,然后设置按照路径进行安装即可。
1.安装j2sdk以后,需要配置一下环境变量,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的j2sdk安装在c:\j2sdk1.4.2): 
JAVA_HOME=c:\j2sdk1.4.2 
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径) 
path=%JAVA_HOME%\bin 

 接着可以写一个简单的java程序来测试J2SDK是否已安装成功: 
public class Test{ 
public static void main(String args[]){ 
System.out.println("This is a test program."); 


将上面的这段程序保存为文件名为Test.java的文件。 
然后打开命令提示符窗口,cd到你的Test.java所在目录,然后键入下面的命令  
javac Test.java 
java Test  
此时如果看到打印出来This is a test program.的话说明安装成功了,如果没有打印出这句话,你需要仔细检查一下你的配置情况。 

2.安装Tomcat后,在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量(假定你的tomcat安装在c:\tomcat): 
CATALINA_HOME:c:\tomcat
CATALINA_BASE:c:\tomcat
TOMCAT_HOME: C:\Tomcat
然后修改环境变量中的classpath,把tomat安装目录下的common\lib下的servlet.jar追加到classpath中去,修改后的classpath如下: 
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib\servlet.jar; 
接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。 
第三步:建立自己的jsp app目录 
1.到Tomcat的安装目录的webapps目录,可以看到ROOT,examples, tomcat-docs之类Tomcat自带的的目录; 
2.在webapps目录下新建一个目录,起名叫myapp; 
3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的; 
4.WEB-INF下新建一个文件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> 
<display-name>My Web Application</display-name> 
<description> 
A application for test. 
</description> 
</web-app> 
5.在myapp下新建一个测试的jsp页面,文件名为index.jsp,文件内容如下: 
<html><body><center> 
Now time is: <%=new java.util.Date()%> 
</center></body></html> 
6.重启Tomcat 
7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。 
第四步:建立自己的Servlet: 
写入你的第一个Servlet
import java.io.*;
 import javax.servlet.*;
 import javax.servlet.http.*;
 public class HelloWorld extends HttpServlet
  {
    public void doGet(HttpServletRequest request,HttpServletResponse response)th
rows ServletException,IOException
   {
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter();
    out.println("<html><head><title>");
    out.println("This is my first Servlet");
    out.println("</title></head><body>");
    out.println("<h1>Hello,World!</h1>");
    out.println("</body></html>");
   
   }
   }
   然后照样用javac HelloWorld.java来编译这个文件,如果出现无法import javax.servl
et.*
   那么就是应该把C:\Tomcat\common\lib里面的servlet.jar文件拷贝到C:\JDK\jre\lib\e
xt中,再次编译,就没有问题了!
   然后在Tomcat目录里面的C:\Tomcat\webapps\ROOT里面按如下的文件结构:
   ROOT\index.html
   ROOT\welcom.jsp
   ROOT\WEB-INF\lib\MyServlet.jar(如果你的servlet的.class打成了.jar文件,则放在
lib下面)
   ROOT\WEB-INF\classes\HelloWorld.class(把上面生成的HelloWorld.class文件放在这个
里面)
 然后在浏览器中输入http://localhost:8080/servlet/HelloWorld,于是Server众望所归的报错了:Error 404--Not Found 
 怎么回事呢?
 Servlet必须使用C:\Tomcat\webapps\ROOT\WEB-INF这个目录下面的web.xml文件进行注册,
用EP打开这个web.xml文件,

把下面这段程序
 servlet>
  .....  
 </servlet>

<servlet-mapping>
   ......
 </servlet-mapping>
替换成
<servlet>
       <servlet-name>HelloWorld</servlet-name>
    <servlet-class>HelloWorld</servlet-class>
   </servlet>
   <servlet-mapping>
       <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
   </servlet-mapping>
如果没有的话,就直接加那段代码

为什么呢?
 因为 这样的结构
   <servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>
表示指定包含的servlet类.
而以下的结构
   <servlet-mapping>
       <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/servlet/HelloWorld</url-pattern>
   </servlet-mapping>
   表示指定HelloServlet应当映射到哪一种URL模式。
   在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/servlet/HelloWorld,那么偌大一个Hello,World!等
着你呢,恭喜你
   摆平了:)