跟着项目学javaweb(std):2(web.xml)
2016-03-08 17:38
330 查看
web.xml解析
我的web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>likessh Project</display-name> <filter> <filter-name>SSH</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>SSH</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>com.std.util.CreateFolder</listener-class> </listener> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
下面根据我查的资料解析上面的xml文件:
启动后的工作:
1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取和两个结点。
2、紧急着,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文。
3、容器将转换为键值对,并交给servletContext。
4、容器创建中的类实例,创建监听器。
节点的加载顺序:
web.xml的节点加载与书写顺序完全无关,加载顺序为
ServletContext -> context-param -> listener -> filter -> servlet
但是同类型的节点调用和mapping的顺序有关,比如有多个filter,则根据filter-mapping的顺序加载filter。
xml文件的解析:
<?xml version="1.0" encoding="UTF-8"?>
声明该xml文件的版本号和编码。
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">[/code]
xml文件的schema。<display-name>likessh Project</display-name>
定义了web应用的名字。<filter> <filter-name>SSH</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>SSH</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
设置过滤器,可以过滤所有url。这里声明的是struts2过滤器。<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <listener> <listener-class>com.std.util.CreateFolder</listener-class> </listener>
配置了两个监听类。
第一个是启动spring的,配置后才能在启动时读取applicationContext.xml,从而初始化里面的bean。
第二个是我自己配置的监听类,用于在启动和终止web应用时执行一些代码,我这里为了启动服务器时自动创建几个文件夹,有调理的存放项目上传的文件。<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
配置欢迎页面,在地址栏中,“8080:项目名”时默认打开的页面,可配置多个。web.xml拓展补充
命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖一命名的,命名必须在定制URL前。下面拿serlet来举例:
为Servlet命名:<servlet> <servlet-name>servlet1</servlet-name> <servlet-class>net.test.TestServlet</servlet-class> </servlet>
为Servlet定制URL、<servlet-mapping> <servlet-name>servlet1</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
定制初始化参数:可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值。下面拿servlet来举例:<servlet> <servlet-name>servlet1</servlet-name> <servlet-class>net.test.TestServlet</servlet-class> <init-param> <param-name>userName</param-name> <param-value>Tommy</param-value> </init-param> <init-param> <param-name>E-mail</param-name> <param-value>Tommy@163.com</param-value> </init-param> </servlet>
经过上面的配置,在servlet中能够调用
getServletConfig().getInitParameter(“param1”)
获得参数名对应的值。
指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。<error-page> <error-code>404</error-code> <location>/error404.jsp</location> </error-page> <error-page> <exception-type>java.lang.Exception<exception-type> <location>/exception.jsp<location> </error-page>
设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:<session-config> <session-timeout>60</session-timeout> </session-config>
Web 应用描述: 给出于此相关的说明性文本<disciption>Tomcat Example servlets and JSP pages.</disciption> <context-param> <param-name>ContextParameter</para-name> <param-value>test</param-value> <description>It is a test parameter.</description> </context-param>
在servlet里面可以通过
getServletContext().getInitParameter(“context/param”)得到
相关文章推荐
- Java 基础
- HDOJ 1850 Being a Good Boy in Spring Festival
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 使用Java构建微服务
- 你真的知道Java中boolean类型占用多少个字节吗?
- Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别
- Apache Solr 初级教程(介绍、安装部署、Java接口、中文分词)
- myeclipse 瘦身 and exit code= 13
- 2016蓝桥杯假期任务之《蚂蚁感冒》
- 搭建Java开发环境
- leetcode:Ugly Number 【Java】
- JAVA大数类详细介绍与题目应用举例
- Spring AOP 完成日志记录
- NetBeans8 类编缉器及控制台中文乱码解决
- Java解析Json小例子
- eclipse 配置黑色主题
- spring定时任务
- Eclipse 各文件讲解说明
- maven 下载 源码和javadoc命令
- Java并发编程:Callable、Future和FutureTask