原文转蝲自:(x)
Tomcat7已经发布多时QTomcat7增加了对Servlet 3.0,JSP 2.2和JSP-EL 2?的支持、支持web application内存泄露的检和防护{很多新功能。本片教E主要介l如何配|Tomcat7?/p>
一、Y件下?br /> 二、Y件安装和配置 public class Test{ 注意W二个命令没?java后缀。如果看?#8220;Hello Leyond”Q则表明jdk环境变量配置成功Q没有的话,查自q配置情况?/p> 2. Tomcat7安装和配|?/p> 三、新建webApp 操作如下Q?br /> <?xml version="1.0" encoding="ISO-8859-1"?> 4. 在myapp下新Z个测试的jsp面Q文件名为index.jspQ文件内容如? 5. 启动Tomcat,在浏览器输入http://localhost:8080/myapp/index.jsp看到当前旉的话说明成功了?/p> 四、新建Servlet package test; public class HelloWorld extends HttpServlet{ 目前C:\itdevelop\Tomcat7\webapps\myapp的目录结构如下:(x) ./index.jsp 然后在浏览器中输?a href="http://localhost:8080/myapp/HelloWorld" style="text-decoration: none; color: #006b77; ">http://localhost:8080/myapp/HelloWorld,于是Server众望所归的报错?Error 404–Not Found 怎么回事呢?我们q需要配|Servlet的之行环境。打开WEB-INF目录下的web.xmlQ在<web-app></web-app>d下面q段E序Q?/p> <servlet> <servlet-mapping>
d完毕Q确定即可。接下来单测试环境变量是否配|正:(x)
}
以上代码拷贝保存成Test.java文g。然后命令行H口(xp:在运行输入cmd,vista和win7直接在搜索框中输入cmd)QCD到文件所在的目录Q然后键入下列命令:(x)
javac Test.java
java Test
<web-app version="3.0"
</web-app>
<html>
</html>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
}
./WEB-INF/web.xml
./WEB-INF/classes/test/HelloWorld.class (~译HelloWorld.java生成?
原文转自Q?/p>
<display-name>Sample Application</display-name> <description> <!-- <!-- <!-- <!-- <!--配置session session用来讑֮HttpSession的生命周期。单位(U)--> <!--配置Wel0come0文g清单--> <!-- <!-- <!-- web-resource-name 标识受保护的WEB资源 <!--配置对安全验证角色的引用-->
<?xml version="1.0" encoding="GB2312"?> <!--
Web.xml依次定议了如下元素:(x)
<web-app>
<display-name></display-name> 定义了WEB应用的名?nbsp;
<description></description> 声明WEB应用的描qC?nbsp;
<filter></filter>
<filter-mapping></filter-mapping>
<servlet></servlet>
<servlet-mapping></servlet-mapping>
<session-config></session-config>
<welcome-file-list></welcome-file-list>
<taglib></taglib>
<resource-ref></resource-ref>
<security-constraint></security-constraint>
<login-config></login-config>
</web-app>
在web.xml中元素定义的先后序不能颠倒,否则Tomcat服务器可能会(x)抛出SAXParseException.
-->
<!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>
This is a Sample Application
</description>
filter 配置Servletqo?nbsp;
filter-name 定义qo器的名字。当有多个过滤器Ӟ不能同名
filter-class 指定实现q一qo的类Q这个类负责具体的过滤事?nbsp;
-->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.SampleFilter</filter-class>
</filter>
filter-mapping 讑֮qo器负责过滤的URL
filter-name qo器名。这里的名字一定要和filter中的qo器名匚w
url-pattern 指定qo器负责过滤的URL
-->
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
servlet 配置Servlet.
servlet-name 定义Servlet的名?nbsp;
servlet-class 指定实现q个servlet的类
init-param 定义Servlet的初始化参数和参数|可有多个init-param。在servletcM通过getInitParamenter(String name)Ҏ(gu)讉K初始化参?nbsp;
load-on-startup 指定当Web应用启动Ӟ装蝲Servlet的次序?nbsp;
当gؓ(f)正数或零Ӟ(x)Servlet容器先加载数值小的servletQ再依次加蝲其他数值大的servlet.
当gؓ(f)负或未定义:(x)Servlet容器在Web客户首次讉Kq个servlet时加载它
-->
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>mypack.SampleServlet</servlet-class>
<init-param>
<param-name>initParam1</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
配置servlet映射Q下面代码ؓ(f)SampleServlet指定的相对URL?/sample":
servlet-name 指定servlet的名字,q里的名字应该和<Servlet>元素中定义的名字匚w?nbsp;
url-pattern 指定讉Kq个servlet的URL。只需l出相对路径?nbsp;
-->
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/sample</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
配置Tag Library
taglib-uri 讑֮Tag Library的唯一标识W,在Web应用中将Ҏ(gu)q一标识W来引用Tag Library
taglib-location 指定和Tag Library对应的TLD文g的位|?nbsp;
-->
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
配置资源引用
description Ҏ(gu)引用的资源的说明
res-ref-name 指定所引用资源的JNDI名字
res-type 指定所引用资源的类名字
res-auth 指定理所引用资源的Manager,它有两个可选|(x)
ContainerQ由容器来创建和理resource
Application:同W(xu)EB应用来创建和理Resource
-->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sampleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
配置安全U束Q以下代码指定当用户讉K该WEB应用下的所有资源时Q必d备guest角色Q?nbsp;
web-resource-collection 声明受保护的WEB资源
auth-constraint 声明可以讉K受保护资源的角色Q可以包含多?lt;role-name>子元?/p>
url-pattern 指定受保护的URL路径
-->
<Security-constraint>
<web-resource-collection>
<web-resource-name>sample appliction</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>guest</role-name>
</auth-constraint>
</Security-constraint>
<!--
配置安全验证d界面Q指定当WEB客户讉K受保护的WEB资源Ӟpȝ弹出的登录对话框的类型?nbsp;
auth-method 指定验证Ҏ(gu)Q它有三个可选|(x)BASIC(基本验证)、DIGEST(摘要验证)、FORM(表单验证)
realm-name 讑֮安全域的名称
form-login-config 当验证方法ؓ(f)FORMӞ配置验证|页和出错网?nbsp;
form-login-page 当验证方法ؓ(f)FORMӞ讑֮验证|页
form-error-page 当验证方法ؓ(f)FORMӞ讑֮出错|页
-->
<login-config>
<auth-method>FORM</auth-method>
<realm-name>
Tomcat Server Configuration form-Based Authentication Area
</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>
The role that is required to log into the sample application
</description>
<role-name>guest</role-name>
</security-role>
<?xml version="1.0" encoding="GB2312"?> <!--
Web.xml依次定议了如下元素:(x)
<web-app>
<display-name></display-name> 定义了WEB应用的名?nbsp;
<description></description> 声明WEB应用的描qC?nbsp;
<filter></filter>
<filter-mapping></filter-mapping>
<servlet></servlet>
<servlet-mapping></servlet-mapping>
<session-config></session-config>
<welcome-file-list></welcome-file-list>
<taglib></taglib>
<resource-ref></resource-ref>
<security-constraint></security-constraint>
<login-config></login-config>
</web-app>
在web.xml中元素定义的先后序不能颠倒,否则Tomcat服务器可能会(x)抛出SAXParseException.
-->
<!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>Sample Application</display-name>
<description>
This is a Sample Application
</description>
<!--
filter 配置Servletqo?nbsp;
filter-name 定义qo器的名字。当有多个过滤器Ӟ不能同名
filter-class 指定实现q一qo的类Q这个类负责具体的过滤事?nbsp;
-->
<filter>
<filter-name>SampleFilter</filter-name>
<filter-class>mypack.SampleFilter</filter-class>
</filter>
<!--
filter-mapping 讑֮qo器负责过滤的URL
filter-name qo器名。这里的名字一定要和filter中的qo器名匚w
url-pattern 指定qo器负责过滤的URL
-->
<filter-mapping>
<filter-name>SampleFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!--
servlet 配置Servlet.
servlet-name 定义Servlet的名?nbsp;
servlet-class 指定实现q个servlet的类
init-param 定义Servlet的初始化参数和参数|可有多个init-param。在servletcM通过getInitParamenter(String name)Ҏ(gu)讉K初始化参?nbsp;
load-on-startup 指定当Web应用启动Ӟ装蝲Servlet的次序?nbsp;
当gؓ(f)正数或零Ӟ(x)Servlet容器先加载数值小的servletQ再依次加蝲其他数值大的servlet.
当gؓ(f)负或未定义:(x)Servlet容器在Web客户首次讉Kq个servlet时加载它
-->
<servlet>
<servlet-name>SampleServlet</servlet-name>
<servlet-class>mypack.SampleServlet</servlet-class>
<init-param>
<param-name>initParam1</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!--
配置servlet映射Q下面代码ؓ(f)SampleServlet指定的相对URL?/sample":
servlet-name 指定servlet的名字,q里的名字应该和<Servlet>元素中定义的名字匚w?nbsp;
url-pattern 指定讉Kq个servlet的URL。只需l出相对路径?nbsp;
-->
<servlet-mapping>
<servlet-name>SampleServlet</servlet-name>
<url-pattern>/sample</url-pattern>
</servlet-mapping>
<!--配置session session用来讑֮HttpSession的生命周期。单位(U)-->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!--配置Wel0come0文g清单-->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
</welcome-file-list>
<!--
配置Tag Library
taglib-uri 讑֮Tag Library的唯一标识W,在Web应用中将Ҏ(gu)q一标识W来引用Tag Library
taglib-location 指定和Tag Library对应的TLD文g的位|?nbsp;
-->
<taglib>
<taglib-uri>/mytaglib</taglib-uri>
<taglib-location>/WEB-INF/mytaglib.tld</taglib-location>
</taglib>
<!--
配置资源引用
description Ҏ(gu)引用的资源的说明
res-ref-name 指定所引用资源的JNDI名字
res-type 指定所引用资源的类名字
res-auth 指定理所引用资源的Manager,它有两个可选|(x)
ContainerQ由容器来创建和理resource
Application:同W(xu)EB应用来创建和理Resource
-->
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/sampleDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<!--
配置安全U束Q以下代码指定当用户讉K该WEB应用下的所有资源时Q必d备guest角色Q?nbsp;
web-resource-collection 声明受保护的WEB资源
auth-constraint 声明可以讉K受保护资源的角色Q可以包含多?lt;role-name>子元?/p>
web-resource-name 标识受保护的WEB资源
url-pattern 指定受保护的URL路径
-->
<Security-constraint>
<web-resource-collection>
<web-resource-name>sample appliction</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>guest</role-name>
</auth-constraint>
</Security-constraint>
<!--
配置安全验证d界面Q指定当WEB客户讉K受保护的WEB资源Ӟpȝ弹出的登录对话框的类型?nbsp;
auth-method 指定验证Ҏ(gu)Q它有三个可选|(x)BASIC(基本验证)、DIGEST(摘要验证)、FORM(表单验证)
realm-name 讑֮安全域的名称
form-login-config 当验证方法ؓ(f)FORMӞ配置验证|页和出错网?nbsp;
form-login-page 当验证方法ؓ(f)FORMӞ讑֮验证|页
form-error-page 当验证方法ؓ(f)FORMӞ讑֮出错|页
-->
<login-config>
<auth-method>FORM</auth-method>
<realm-name>
Tomcat Server Configuration form-Based Authentication Area
</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
<!--配置对安全验证角色的引用-->
<security-role>
<description>
The role that is required to log into the sample application
</description>
<role-name>guest</role-name>
</security-role>
</web-app>