`
dawuafang
  • 浏览: 1192122 次
文章分类
社区版块
存档分类
最新评论

web.xml 总结

 
阅读更多

  1. 定义头元素,有序:
    1. xml头声明:xml版本,字符编码
    2. DOCTYPE声明:Servlet规范的版本,DTD
    3. web-app
  2. web-app中元素的顺序以及作用、举例

    Web.xml中出现的顺序(全小写)

    作用与使用举例

    Icon

    指定IDEGUI工具表示web应用的一两个图像文件的位置

    <icon>

    <small-icon></small-icon>

    <large-icon></large-icon>

    <!--可以用small-icon指定16*16的图gif或JPEG图像,large-icon指定32*32的。 -->

    </icon>

    Display-name

    GUI工具标记这个web应用的一个名称

    Description

    描述这个应用。

    Context-param

    应用范围内的初始化参数.(init-param的区别是:这个是整个web应用里可用的。Init-param只是在那个指定的jspservlet中可用。 )

    Eg.

    <context-param>

    <param-name>contextParamName</param-name>

    <param-value>contextParamValue</param-value>

    </context-param>

    Filter

    过滤器元素。将一个名字与一个实现了javax.servlet.Filter接口的类相关联。

    需要在web.xml中使用2.3或以上版本的DTD

    过滤器可截取和修改一个servletjsp和请求或从中发出的响应。在执行servletjsp之前,必须先执行第一个相关的过滤器的doFilter方法。FilterChain对象调用doFilter方法时,执行链中的下一个过滤器至最后一个,然后servletjsp才被执行。过滤器具有对到来的ServletRequest对象的全部访问权。

    新建一个类implements Filter:

    Eg.

    public class MyFilter implements Filter {

    public void destroy() {

    }

    /* (non-Javadoc)

    * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

    */

    public void doFilter(ServletRequest request, ServletResponse response,

    FilterChain chain) throws IOException, ServletException {

    HttpServletRequest req=(HttpServletRequest)request;//可以全权操作这个到来的request

    System.out.println("这里可以在执行servlet之前进行操作,而且具有对到来的servletRequest对象的所有访问权。"+req.getRemoteHost());

    chain.doFilter(request, response);//执行完了doFilet再去执行相应的原servlet或jsp

    }

    public void init(FilterConfig arg0) throws ServletException {

    }

    }

    filterweb.xml中的声明与servlet相似:

    <filter>

    <filter-name>myFilter</filter-name>

    <filter-class>guoxp.ajax.servlet.MyFilter</filter-class>

    </filter>

    <filter-mapping>

    <filter-name>myFilter</filter-name>

    <url-pattern>/*</url-pattern><!--或是指定某个访问路径-->

    </filter-mapping>

    但它的filter-mapping有两种方式,上面的是与servlet相似的声明方式,它还可以直接声明它截取的servletjsp的名字(不过这个servletjsp的名字要在这个web.xml中稍后进行声明),即用下面的方式:

    <filter-mapping>

    <filter-name>myFilter</filter-name>

    <servlet-name>AJAXServer</servlet-name>

    </filter-mapping>

    Filter-mapping

    将过滤器的名字与一个或多个servletjsp页面相关联。

    例子如上。

    Listener

    指出监听程序类。事件监听程序在建立、修改和删除会话或servlet环境时得到通知。web应用的Servlet-Context建立或消除时,就会触发该监听器。

    <listener>

    <listener-class>guoxp.ajax.servlet.MyListener</listener-class>

    </listener>

    MyListener.java:

    public class MyListener implements ServletContextListener {

    public void contextDestroyed(ServletContextEvent event) {

    System.out.println("destroyed....");

    }

    public void contextInitialized(ServletContextEvent event) {

    System.out.println("created....");

    }

    }

    Servlet

    命名一个servletjsp页面

    Eg.

    <servlet>

    <servlet-name>AJAXServer</servlet-name>

    <servlet-class>guoxp.ajax.servlet.AJAXServer</servlet-class> <!-- 如果是jsp页面,就使用<jsp-file> 代替<servlet-class>。这样的配置可以使多个url共同用一个jsp处理,或是使得在url中去掉.jsp扩展名-->

    <load-on-startup>1</load-on-startup><!--指定装载servlet或是jsp时的顺序,因为有的jspservlet需要init较长的时间,按数字从小到大确定先后顺序。-->

    </servlet>

    Servlet-mapping

    为这个servlet名提供一个缺省的url

    Eg.

    <servlet-mapping>

    <servlet-name>AJAXServer</servlet-name>

    <url-pattern>/AJAXServer</url-pattern> <!-- 必须以斜杠‘/’开始,还可以包含通配符,如/*.jsp,则这样的.jsp的访问都会请求到这个AJAXServer-->

    <init-param>

    <param-name>paramName</param-name>

    <param-value>paramValue</param-value><!--可以向servlet 提供初始化参数。

    servlet中相应的得到这个参数的方法:

    init()方法中,

    public void init() throws ServletException {

    ServletConfig config=getServletConfig();

    String value=config.getInitParameter("paramName");

    }

    jsp中相应的用jspInit()方法:

    <%!private String paramValue;

    public void jspInit() {

    ServletConfig config = getServletConfig();

    paramValue = config.getInitParameter("paramName");

    }%>

    -->

    </init-param>

    </servlet-mapping>

    Session-config

    设定会话的超时时间。或用HttpSessionsetMaxInactiveInterval方法明确设置单个会话对象的超时值。

    Eg.

    <session-config>

    <session-timeout>120</session-timeout>

    </session-config>

    Mime-mapping

    web应用的特殊文件保证 分配特定的mime类型。

    Eg.

    <mime-mapping>

    <extension>txt</extension>

    <mime-type>application/txt</mime-type>

    </mime-mapping>

    附:常见的MIME类型

    超文本标记语言文本 .htm,.html text/html

    普通文本 .txt text/plain

    RTF文本 .rtf application/rtf

    GIF图形 .gif image/gif

    JPEG图形 .ipeg,.jpg image/jpeg

    au声音文件 .au audio/basic

    MIDI音乐文件 mid,.midi audio/midi,audio/x-midi

    RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio

    MPEG文件 .mpg,.mpeg video/mpeg

    AVI文件 .avi video/x-msvideo

    GZIP文件 .gz application/x-gzip

    TAR文件 .tar application/x-tar

    Welcome-file-list

    访问目录名时的起始文件。

    Eg.

    <welcome-file-list>

    <welcome-file>modules/frame/frame.jsp</welcome-file>

    <welcome-file>index.jsp</welcome-file>/* 可以指定多个欢迎页,从上向下试用*/

    </welcome-file-list>

    Error-page

    Error-code或特定异常时,订制显示的页面。注意location必须以斜线/开头,也就是相对于整个应用的。两个方式:error-codeexception-type

    <error-page>

    <error-code>404</error-code>

    <location>/error404.jsp</location><!--关于指定错误处理页面,也可以在jsp中指定

    <%@pageerrorPage="error.jsp"%>-->

    </error-page>

    <error-page>

    <exception-type>

    javax.servlet.ServletException

    </exception-type>

    <location>/exception.jsp</location>

    </error-page>

    里面有三个属性可供处理异常时使用,分别是:status_code、message、与exception_type

    指定显示处理异常的页面exception.jsp,isErrorPage="true"指定举例:

    <%@ page language="java" pageEncoding="UTF-8"

    contentType="text/html; charset=UTF-8" isErrorPage="true"%>

    <%--指定了isErrorPage就可以在EL中使用隐式对象${pageContext.exception}

    --%>

    <html>

    <head>

    <title>错误与例外处理页面</title>

    </head>

    <body>

    错误码:

    <%=request.getAttribute("javax.servlet.error.status_code")%>

    <br />

    错误信息:

    <%=request.getAttribute("javax.servlet.error.message")%>

    <br />

    异常:

    <%=request.getAttribute("javax.servlet.error.exception_type")%>

    <br />

    </body>

    </html>

    Jsp-config

    <taglib>对标记库文件指定别名.当标记库名改变时可以不改变jsp中的引用名。2.4,<tablib>已经作为<jsp-config>的子元素。

    Eg.

    <jsp-config>

    <taglib>

    <taglib-uri>/dhtmlxgrid.tld</taglib-uri>

    <taglib-location>/WEB-INF/dhtmlxgrid.tld</taglib-location>

    </taglib>

    </jsp-config>

    Resource-env-ref

    声明与资源相关的一个管理对象

    Resource-ref

    声明资源工厂使用的外部资源

    Secuity-constraint

    制订应该保护的url

    Login-config

    指定如何给试图访问受保护页面 用户授权。

    Secuity-role

    给出安全角色列表

    Env-entry

    web应用的环境项

    Ejb-ref

    声明EJB主目录的引用

    Ejb-local-ref

    声明一个EJB的本地主目录的应用

3. 重新映射/servlet/URL模式

在一个特定的Web应用中禁止以http://host/webAppPrefix/servlet/ 开始的URL的处理非常简单。所需做的事情就是建立一个错误消息servlet,并使用url-pattern元素将所有匹配请求转向该servlet。只要简单地使用:

<url-pattern>/servlet/*</url-pattern>

reference: <http://blog.csdn.net/tanghc1983/archive/2007/05/08/1601247.aspx>

分享到:
评论

相关推荐

    在web.xml中引入其他xml配置文件的步骤

    ### 在web.xml中引入其他XML配置文件的步骤 在Java Web开发中,`web.xml`作为Web应用程序的核心配置文件,负责定义应用级别的配置信息。为了提高代码的可维护性和复用性,有时需要将一部分配置内容提取到独立的XML...

    在web.xml中配置action或.do

    ### 在web.xml中配置action或.do的理解与实践 #### 一、引言 在Web开发领域,特别是基于Java的Web应用程序开发中,`web.xml`文件扮演着至关重要的角色。它不仅定义了Web应用的基本配置,还管理着诸如Servlet、过滤...

    web.xml配置文件详解

    ### web.xml配置文件详解 #### 一、概述 `web.xml`是Java Web应用程序的核心配置文件之一,主要用于定义Web应用程序的结构与行为。它是Servlet容器(如Tomcat)读取Web应用程序配置信息的主要来源,因此深入理解其...

    log4j与web.xml的配置

    总结来说,Log4j与web.xml的配置使得Java Web应用的日志管理更加高效和灵活。通过合理设置,我们可以轻松地追踪程序运行状态,排查问题,并保持系统稳定运行。如果有任何疑问,欢迎发送邮件至522134398@qq.com进行...

    struts.xml和applicationContext.xml、web.xml的配置

    总结来说,`struts.xml` 负责Struts2的Action配置,`applicationContext.xml` 管理Spring的Bean和依赖,而`web.xml` 定义了Web应用的基本结构和组件。这三个文件共同协作,构建了一个功能完善的Java Web应用,实现了...

    web.xml+详细解析.rar

    总结,`web.xml`是Java Web开发中的关键配置文件,它定义了应用程序的运行环境和行为,理解和熟练使用`web.xml`对于提升开发效率和维护性至关重要。通过深入学习和实践,开发者可以更好地掌控Web应用的运行逻辑,...

    SpringMVC基于代码的配置方式(零配置,无web.xml)

    总结,SpringMVC的零配置方式借助了Spring Boot的强大功能,简化了传统的XML配置,使开发更加便捷。通过Java代码配置,我们可以更加灵活地控制SpringMVC的行为,同时降低了维护成本。在实际开发中,这种方式可以显著...

    spring在web.xml中和在struts中的不同配置..pdf

    总结来说,Spring在`web.xml`中的配置更加独立,它不依赖于任何特定的应用框架,而是在Web应用启动时独立初始化ApplicationContext。而在Struts中,Spring作为插件集成,依赖于Struts的执行流程来管理Bean。这两种...

    Web项目没有web.xml配置文件

    在现代的Web开发中,"Web项目...总结起来,随着技术和框架的发展,`web.xml`已经不再是构建Web应用的必需品。现代Web项目倾向于使用更加灵活、可测试和模块化的配置方式,这使得开发更加高效,同时也降低了维护成本。

    tomcat配置文件web.xml与server.xml解析

    Tomcat 配置文件 web.xml 与 server.xml 解析 Tomcat 配置文件 web.xml 和 server.xml 是 Tomcat 自身的配置文件,用于配置 Tomcat 服务器的行为和性能。在本文中,我们将对 web.xml 和 server.xml 中的主要配置项...

    java web项目 web.xml配置详解

    在Java Web开发中,`web.xml`文件是应用的核心配置文件,它定义了Servlet、过滤器、监听器等组件,并负责映射它们的行为。本文将深入解析`web.xml`配置,帮助开发者理解其背后的原理和用途。 一、web.xml文件概述 `...

    Web.xml配置文件.pdf

    总结,`Web.xml`是Java Web应用的心脏,它定义了应用的架构、行为和运行规则。理解并熟练掌握其配置,是成为一名合格的Java Web开发者的重要步骤。通过合理的配置,我们可以实现灵活的请求处理、高效的数据过滤以及...

    Filter过滤器的代码及其web.xml配置代码

    总结起来,Filter是Java Web中一个强大的工具,通过它可以实现数据预处理、后处理等多种功能。通过合理配置和使用,可以极大地提高应用程序的安全性和效率。在实际项目中,Filter常用于处理全局性的问题,如统一字符...

    web.xml文件中配置(servlet, spring, filter, listenr)的加载顺序

    ### web.xml文件中配置(servlet, spring, filter, listener)的加载顺序 在Java Web应用开发中,`web.xml`文件是整个Web应用程序的核心配置文件之一,它定义了Servlet容器如何启动、初始化以及配置各个组件如...

    web.xml 文件详解

    **web.xml 文件详解** 在Java Web应用程序中,`web.xml`文件是部署描述符(Deployment Descriptor),它是配置应用核心行为的重要文件。它定义了Servlet、过滤器、监听器、会话超时、错误页面等关键组件,使得...

    Web.xml配置详解

    ### Web.xml配置详解 #### 一、Web.xml概述 `web.xml` 文件是Java Web应用程序的核心配置文件之一,主要用于配置应用程序级别的各种初始化参数、监听器、过滤器、Servlet映射等。通过`web.xml`,开发者可以灵活地...

    web.xml文件的详细说明.txt

    ### Web.xml 文件详解 #### 一、概述 `web.xml`是Java Web应用程序中的核心配置文件,用于描述项目的整体架构及各个组件之间的关系。对于初学者来说,掌握`web.xml`的基本结构及其内部元素是非常重要的。 #### 二...

    Spring全注解project示例 (无web.xml配置)

    总结,Spring全注解项目示例展示了如何在不使用web.xml的情况下,利用Java注解进行Spring应用的配置,这是现代Spring开发的最佳实践之一。通过深入学习和实践,开发者可以提升对Spring框架的理解,提高开发效率。

    spring无web.xml零配置

    总结来说,"spring无web.xml零配置"意味着使用Java配置和Spring Boot的自动配置机制,替代了传统的XML配置方式,使得Spring应用的配置更加简洁、直观,同时也增强了可测试性和可维护性。通过这种方式,开发者可以更...

    sevlet生命周期,request web.xml 及ServletContext总结

    如果在`web.xml`配置文件中,Servlet被标记为`load-on-startup`,那么它会在容器启动时自动加载。否则,将在第一次请求时加载。 2. **初始化**: 在Servlet实例创建后,容器会调用`init()`方法。这是Servlet准备...

Global site tag (gtag.js) - Google Analytics