web.xml

一、web 应用相关

Copy
<!-- Web 应用图标:指出 IDE 和 GUI 工具用来表示 Web 应用的小图标和大图标 --> <icon> <small-icon>/images/app_small.gif</small-icon> <large-icon>/images/app_large.gif</large-icon> </icon> <!-- Web 应用名称:提供 GUI 工具可能会用来标记这个 WEB 应用的名称 --> <display-name>MyWebApplication</display-name> <!-- Web 应用描述:声明 WEB 应用的说明性文本 --> <description></description>

二、上下文参数

声明应用范围内的初始化参数。

Copy
<context-param> <!-- 日志配置路径 --> <param-name>log4jConfigLocation</param-name> <param-value>classpath:config/log4j.properties</param-value> </context-param> <context-param> <!-- 日志页面刷新间隔 --> <param-name>log4jRefreshInterval</param-name> <param-value>6000</param-value> </context-param> <context-param> <!-- Spring 配置文件路径。默认的路径是 /WEB-INF/applicationContext.xml --> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/spring-context.xml</param-value> </context-param>

三、过滤器配置

将一个名字与一个实现 javaxs.servlet.Filter 接口的类相关联。

Copy
<filter> <filter-name>setCharacterEncoding</filter-name> <filter-class>com.test.SetCharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GB2312</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

四、监听器配置

指出事件监听程序类。

事件监听程序在建立、修改和删除会话或 servlet 环境时收到通知。

Copy
<listener> <!-- ContextLoaderListener 的作用是启动 Web 容器时,自动装配ApplicationContext.xml 的配置信息。 https://www.cnblogs.com/muyuchengguang/p/9570842.html --> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <!-- 自定义实现了 ServletContextListener 接口的监听类。 ServletContextListener 接口能够监听 ServletContext 对象的生命周期, 因为每个 web 应用仅有一个 ServletContext 对象,所以实际上该接口监听的是整个 web 应用。 --> <listener-class>com.listener.MyServletContextListener</listener-class> </listener>

五、Servlet 配置

服务器一般为 servlet 提供一个缺省的 URL:http://host/webAppPrefix/servlet/ServletName。但通常会更改这个 URL 以便 servlet 可以访问初始化参数或更容易处理相对 URL。

在更改缺省 URL 时,使用 servlet-mapping 元素。

Copy
<!-- 声明一个 servlet 的数据 --> <servlet> <!-- 指定 servlet 的名称 --> <servlet-name>snoop</servlet-name> <!-- 执行 servlet 的类名称 --> <servlet-class>SnoopServlet</servlet-class> <!-- 定义参数,可以有多个 init-param。 在 servlet 类中通过 getInitParameter(String name) 方法访问初始化参数 --> <init-param> <param-name>foo</param-name> <param-value>bar</param-value> </init-param> <!-- 指定当 Web 应用启动时,装载 Servlet 的次序。 1. 值为整数或 0 时,Servlet 容器先加载数值小的 servlet,再依次加载其他数值大的 servelt; 2. 值为负数或未定义时,Servlet 容器将在 Web 客户首次访问这个 servlet 时加载它。 --> <load-on-startup>1</load-on-startup> <run-as> <description>Security role for anonymous access</description> <role-name>tomcat</role-name> </run-as> </servlet> <!-- 用来定义 servlet 所对应的 URL --> <servlet-mapping> <!-- 指定 servlet 的名称 --> <servlet-name>snoop</servlet-name> <!-- 指定 servlet 所对应的 URL --> <url-pattern>/snoop</url-pattern> </servlet-mapping>

六、会话超时配置

如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。

可通过使用 HttpSession 的 setMaxInactiveInterval 方法明确设置单个会话对象的超时值,或者可利用 session-config 元素指定缺省超时值。

单位为分钟。

Copy
<session-config> <session-timeout>120</session-timeout> </session-config>

七、MIME 类型配置

如果 Web 应用具有想到特殊的文件,希望能保证给他们分配特定的 MIME 类型,则 mime-mapping 元素提供这种保证。

Copy
<mime-mapping> <extension>htm</extension> <mime-type>text/html</mime-type> </mime-mapping>

八、指定欢迎文件页配置

指示服务器在收到引用一个目录名而不是文件名的 URL 时,使用哪个文件。

Copy
<welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> </welcome-file-list>

九、配置错误页面

  1. 通过错误码来配置

    Copy
    <error-page> <error-code>404</error-code> <location>/NotFound.jsp</location> </error-page>

    当系统发生 404 错误时,跳转到错误处理页面 NotFound.jsp。

  2. 通过异常的类型来配置

    Copy
    <error-page> <exception-type>java.lang.NullPointerException</exception-type> <location>/error.jsp</location> </error-page>

    当系统发生 java.lang.NullPointerException(空指针异常)时,跳转到错误处理页面 error.jsp。

十、TLD 配置

Copy
<jsp-config> <taglib> <taglib-uri>http://jakarta.apache.org/tomcat/debug-taglib</taglib-uri> <taglib-location>/WEB-INF/jsp/debug-taglib.tld</taglib-location> </taglib> </jsp-config>

十一、资源管理对象配置

Copy
<!-- 声明与资源相关的一个管理对象 --> <resource-env-ref> <resource-env-ref-name>jms/StockQueue</resource-env-ref-name> </resource-env-ref>

十二、资源工厂配置

Copy
<!-- 声明一个资源工厂使用的外部资源 --> <resource-ref> <res-ref-name>mail/Session</res-ref-name> <res-type>javax.mail.Session</res-type> <res-auth>Container</res-auth> </resource-ref> <resource-ref> <!-- 配置数据库连接池 --> <description>JNDI JDBC DataSource of shop</description> <res-ref-name>jdbc/test_db</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>

十三、安全限制配置

Copy
<!-- 指定应该保护的 URL --> <security-constraint> <display-name>Example Security Constraint</display-name> <web-resource-collection> <web-resource-name>Protected Area</web-resource-name> <url-pattern>/jsp/security/protected/*</url-pattern> <http-method>DELETE</http-method> <http-method>GET</http-method> <http-method>POST</http-method> <http-method>PUT</http-method> </web-resource-collection> <auth-constraint> <role-name>tomcat</role-name> <role-name>role1</role-name> </auth-constraint> </security-constraint>

十四、登录验证配置

Copy
<login-config> <auth-method>FORM</auth-method> <realm-name>Example-Based Authentiation Area</realm-name> <form-login-config> <form-login-page>/jsp/security/protected/login.jsp</form-login-page> <form-error-page>/jsp/security/protected/error.jsp</form-error-page> </form-login-config> </login-config>

十五、安全角色

security-role 元素给出安全角色的一个列表,这些角色将出现在 servlet 元素内的 security-role-ref 元素的 role-name 子元素中。分别地声明角色可使高级 IDE 处理安全信息更为容易。

Copy
<security-role> <role-name>romcat</role-name> </security-role>

十六、Web 环境参数

Copy
<!-- env-entry 元素声明 Web 应用的环境项 --> <env-entry> <env-entry-name>mainExemptions</env-entry-name> <env-entry-value>1</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry>

十七、EJB 声明

Copy
<!-- 声明一个 EJB 的主目录的引用 --> <ejb-ref> <description>Example EJB reference</description> <ejb-ref-name>ejb/Account</ejb-ref-name> <ejb-ref-type>Entity</ejb-ref-type> <home>com.mycompany.mypackage.AccountHome</home> <remote>com.mycompany.mypackage.Account</remote> </ejb-ref> <!-- 声明一个 EJB 的本地主目录的引用 --> <ejb-local-ref> <description>Example Local EJB reference</description> <ejb-ref-name>ejb/ProcessOrder</ejb-ref-name> <ejb-ref-type>Session</ejb-ref-type> <local-home>com.mycompany.mypackage.ProcessOrderHome</local-home> <local>com.mycompany.mypackage.ProcessOrder</local> </ejb-local-ref>

十八、配置 DWR

Copy
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>

十九、配置 Struts

Copy
<servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.struts2.action.ActionServlet</servlet-class> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>application</param-name> <param-value>ApplicationResources</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <jsp-config> <taglib> <taglib-uri>struts-bean</taglib-uri> <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> </taglib> <taglib> <taglib-uri>struts-html</taglib-uri> <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> </taglib> <taglib> <taglib-uri>struts-nested</taglib-uri> <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> </taglib> <taglib> <taglib-uri>struts-tiles</taglib-uri> <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> </taglib> </jsp-config>

二十、配置 Spring

基本都是在 Struts 中配置。

Copy
<!-- 指定 spring 配置文件位置 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value> <!-- 加载多个 spring 配置文件 --> classpath:config/spring-context.xml, classpath:config/spring-mvc.xml </param-value> </context-param> <!-- 定义 Spring 监听器,加载 spring --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>

Web.xml配置文件

posted @   和风细羽  阅读(416)  评论(0编辑  收藏  举报
编辑推荐:
· 继承的思维:从思维模式到架构设计的深度解析
· 如何在 .NET 中 使用 ANTLR4
· 后端思维之高并发处理方案
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
阅读排行:
· Cursor预测程序员行业倒计时:CTO应做好50%裁员计划
· 想让你多爱自己一些的开源计时器
· 大模型 Token 究竟是啥:图解大模型Token
· 用99元买的服务器搭一套CI/CD系统
· 当职场成战场:降职、阴谋与一场硬碰硬的抗争
点击右上角即可分享
微信分享提示