Tomcat 6.0配置

来源:互联网 发布:javascript href 跳转 编辑:程序博客网 时间:2024/05/30 04:56
第一步:下载j2sdktomcat:到sun官方站点
最新的jdk1.6.04tomcat为6.0,建议jdk1.4以上,tomcat4.0以上
第二步:安装和配置你的j2sdktomcat:执行j2sdktomcat的安装程序,然后设置按照路径进行安装即可。
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是否已安装成功:

publicclass 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_HOMEc:\tomcat
CATALINA_BASEc:\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-api.jar;
接着可以启动tomcat,在IE中访问http://localhost:8080,如果看到tomcat的欢迎页面的话说明安装成功了。
第三步:建立自己的jsp app目录
1.Tomcat的安装目录的webapps目录,可以看到ROOTexamples, tomcat-docs之类Tomcat自带的的目录;
2.webapps目录下新建一个目录,起名叫myapp
3.myapp下新建一个目录WEB-INF,注意,目录名称是区分大小写的;
4.WEB-INF下新建一个文件web.xml,内容如下:

<?xmlversion="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:
在你新建的Application myapp/WEB-INF/classes/test目录下新建HelloWorld.java

package test;

importjava.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorldextends HttpServlet
{
public void doGet(HttpServletRequestrequest,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.servlet.* ,操作如下:

编译:javac Servlet.java 出现

软件包 javax.servlet 不存在

软件包javax.servlet.http 不存在 等错误

由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置。

解决“软件包 javax.servlet不存在”错误的方法:

1. 搜索servlet-api.jar

所在文件夹:C:\Tomcat5.5\common\lib

2. 将环境变量CLASSPATH的值设置为:

.;C:\Tomcat5.5\common\lib\servlet-api.jar

3除了设置classpath以及servlet-api.jar外,还有一点!!!

把COMMON/LIB下的SERVLET-API.JAR 拷贝到JDK/jre\lib\ext下


然后在Tomcat目录里面的C:\Tomcat\webapps\myapp里面按如下的文件结构:
myapp\index.jsp
myapp\WEB-INF\classes\test\HelloWorld.class(把上面生成的HelloWorld.class文件放在这个
里面) ,

为什么要test这个目录?参考Java中关于package的总结

package xx.bb.aa;

  说明这个.java编译单元中的所有类都放到xx.bb.aa这个package里面。而对应的,必须把这个.java文件放在xx目录下bb目录下的aa目录里面。如果一个.java文件没有任何package语句,那么这个.java里面的所有类都在package的"/"下面,也称之为default package。可以看出你一般从任何java教科书上写的第一个hello world程序的那个类是在defaultpackage里面的。有了package语句,情况就复杂一点了。这个编译单元.java必须放在package名对应的目录之下。而生成的class文件也要放在对应的目录结构之下才能正常运作。


然后在浏览器中输入http://localhost:8080/myapp/HelloWorld,于是Server众望所归的报错了:Error 404--Not Found
怎么回事呢?
Servlet必须使用C:\Tomcat\webapps\myapp\WEB-INF这个目录下面的web.xml文件进行注册,
用EditPlus打开这个web.xml文件,
在<web-app></web-app>添加下面这段程序:

<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

为什么呢?
因为 这样的结构
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>test.HelloWorld</servlet-class>//类的路径
</servlet>
表示指定包含的servlet类.
而以下的结构
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
表示指定HelloServlet应当映射到哪一种URL模式。

在修改web.xml完毕过后,重新启动Server,然后再输入http://localhost:8080/myapp/HelloWorld,,那么偌大一个Hello,World!等
着你呢,恭喜你!

tomcat 大小写敏感!

若写成 http://localhost:8080/myapp/helloworld , 就会报错,找不到!

 

今天遇到个客户,强力要求我们软件开发人员把Tomcat设置成为URL地址大小写不敏感。 

经过在网上查资料,有一个办法可以做到。就是在context.xml文件中对元素 
Context定义设置caseSensitive="false"属性。 

但是为了保险起见,我又到Tomcat官方网站去查元素Context定义的官方资料。官方资料的原文参考http://tomcat.apache.org/tomcat-6.0-doc/config/context.html。

caseSensitive 

Deprecated. This option will be removed in Tomcat 7 onwards where the default of true will always be used.

If the value of this flag is false, all case sensitivity checks will be disabled. If not specified, the default value of the flag is true.

NOTE: This flag MUST NOT be set to false on the Windows platform (or any other OS which does not have a case sensitive filesystem), as it will disable case sensitivity checks, allowing JSP source code disclosure, among other security problems.

翻译过来就是: 
caseSensitive已经过时。该选项将在Tomcat7中被删除,默认值只能一直为true。 

如果这个标志值被设置为false,所有大小写检查将被禁用。如果没有特别指定,默认值的标志是true。 

注意:这个标志禁止在Windows平台上(或者其他任何不区分文件大小写的操作系统)设为false,因为它会禁用大小写检查,允许JSP源代码泄漏,以及其他安全问题。

搞了半天,如果你是商用系统而且运行在Windows平台上,一定要说服用户URL地址必须大小写敏感,否则会造成一系列安全问题,造成不必要的经济损失。 

第五步:建立自己java Bean

1. 在你新建的Applicationmyapp/WEB-INF/classes/test目录下新建TestBean.java

package test;
public class TestBean
{
private String name =null;
public TestBean(String nameInit){
this.name= nameInit;
}
public void setName(String newName){
this.name=newName;
}
public String getName(){
return this.name;
}
}

然后照样用javac TestBean.java来编译这个文件。

2.然后在你新建的应用程序目录myapp下新建一个新的jsp文件:testBean.jsp

<%@ pageimport="test.TestBean"%>
<html>
<head>
<title>Test Bean</title>
</head>
<body>
<center>
<%
TestBean testBean = new TestBean("Http://www.baidu.cn");
%>
Java Bean Test: <br>
The  address is <%=testBean.getName()%>
</center>
</body>
</html>

好了,确定各个文件的位置:

myapp\index.jsp
myapp\testBean.jsp
myapp\WEB-INF\web.xml
myapp\WEB-INF\classes\test\HelloWorld.class
myapp\WEB-INF\classes\test\TestBean.class

3.重启Tomcat如果需要的话,在浏览器输入:http://localhost:8080/myapp/testBean.jsp就会看到:

Java Bean Test: 
The address is Http://www.baidu.cn

 

这样就完成了整个Tomcat下的jsp、servlet和javabean的配置。

第六步:配置虚拟目录

打开 Tomcat6.0\conf\server.xml 文件,在 <Host> 和 </Host> 之间加入

<Context path="/myapp" docBase="D:\myapp" debug="0" reloadable="true" crossContext="true"/>

1、【官方文档】本人不推荐。在tomcat\conf下server.xml中找到<Host name="localhost"  appBase="webapps"            unpackWARs="true" autoDeploy="true"            xmlValidation="false" xmlNamespaceAware="false"></Host>在其中添加:<Context path="" docBase="换成你的路径" reloadable="true"></Context>这的docBase要改成你的项目目录。2、 不修改server.xml【推荐使用此方法】在tomcat文件夹的conf"catalina"localhost(对于Tomcat6版本及其以上,需要自己创建catalina和localhost这两个文件夹)下新建一个xml文件。内容为<?xml version="1.0" encoding="UTF-8"?> <Context     docBase="换成你的路径"     reloadable="true"> </Context> 文件名改成你自己的譬如http://localhost:8080/bbs ,文件名就为bbs.xml 其他配置:打开 Tomcat6.0"conf"web.xml 文件,找到:<init-param><param-name>listings</param-name><param-value>false</param-value></init-param>把false设成true保存,重启Tomcat,让tomcat6支持文件列表显示
原创粉丝点击