博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

java web工程

Posted on 2014-02-20 15:14  藤一1222  阅读(257)  评论(0编辑  收藏  举报

  根据JAVAEE规范,一个JAVA WEB工程至少要包含以下四个部分:

  • 公开部分
  • WebContent/WEB-INF/classes
  • WebContent/WEB-INF/lib
  • WebContent/WEB-INF/web.xml

  其中,WEB-INF下的东西只供容器读取,不允许外界查看。

  下面将对web.xml进行详细说明:

  WEB容器加载web.xml的顺序是这样子的,读取<listener>和<context-param>,然后创建ServletContext;容器将<context-param>的内容转化为键值对,传给ServletContext,之后根据<listener>配置创建监听器,<filter>配置创建过滤器和servlet实例。

  具体顺序:创建ServletContext,读取context-param内容,创建监听器 -> 创建过滤器 -> 创建servlet实例。

  具体内容解释:

  1、xml头和根元素(这个没什么好解释的,基本上每个xml文件都必须有)

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      id="WebApp_ID" version="2.5">
    <display-name>cmPrototype</display-name> <!--项目名称-->

   2、

    <context-param>  <!--上下文初始化参数,用于传递给ServletContext初始化,后面的监听器和过滤器都可以使用-->

      <param-name>param_name</param-name>  

      <param-value>param_value</param-value> 

    </context-param>  

  3、

    <listener><!--监听器,主要用于监视当某个事件触发时,需要采取的措施,监听器相当于侦探,用于监视着事件变化-->
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

  4、

    <filter>  <!--过滤器,用于对请求和答复进行加工处理-->

       <filter-name>struts2</filter-name> 

      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 

    </filter> 

    <filter-mapping>  

      <filter-name>struts2</filter-name>  

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

    </filter-mapping>  

  5、

    <servlet> <!--java web的基础,服务提供方-->
      <description></description>
      <display-name>HttpClientServlet</display-name>
      <servlet-name>HttpClientServlet</servlet-name>
      <servlet-class>com.ccb.cmPrototype.rule.HttpClientServlet</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>HttpClientServlet</servlet-name>
      <url-pattern>/HttpClientServlet</url-pattern>
    </servlet-mapping>

  6、  <session-config><!--会话超时时间,单位为分钟-->

      <session-timeout>120</session-timeout>
  </session-config>
 7、

    <welcome-file-list> <!--首页列表,服务器会按照列表指定的顺序来查找首页-->
      <welcome-file>index.html</welcome-file> <!--首页名称-->
      <welcome-file>index.htm</welcome-file>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>default.html</welcome-file>
      <welcome-file>default.htm</welcome-file>
      <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

  8、
  <error-page>
      <error-code>404</error-code>
      <location>/NotFound.jsp</location>
  </error-page>
  <error-page>
      <exception-type>java.lang.NullException</exception-type>
      <location>/error.jsp</location>
  </error-page>
  9、<resource-ref> <!--利用JNDI取得应用可利用资源-->
    
<resource-ref>  
       <description>JNDI JDBC DataSource of JSPBook</description>  <!--资源说明-->
      <res-ref-name>jdbc/sample_db</res-ref-name> <!--资源名称-->
     <res-type>javax.sql.DataSoruce</res-type>  <!--资源类型-->
      <res-auth>Container</res-auth>         <!--资源由容器来授权-->
   </resource-ref>