J2EE(01) web.xml 配置说明

来源:互联网 发布:小米笔记本如何 知乎 编辑:程序博客网 时间:2024/06/06 09:58

(1) web.xml 不是web项目所必须的

web.xml 用来配置欢迎页面,servlet, filter


(2) 配置欢迎页面

如果没有配置,网站首先会引导index.html,没有就是index.jsp,否则报错

可以自行配置

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>


(3) 配置servlet映射,输入*.do即可到达指定的servlet

(1)、为Servlet命名:
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>net.test.TestServlet</servlet-class>
</servlet>
(2)、为Servlet定制URL、
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
注意:命名必须在定制URL之前

(4) 配置servlet自动启动与否

<load-on-startup>0</load-on-startup>

(5) 给servlet定制参数

定制初始化参数:可以定制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>

每个参数配置一个<init-param>

经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。

一般配置启动的都是建立一个servlet而不是一个action,中间覆盖GeneralServlet.init( ServletConfig config)方法

public class initServlet extends HttpServlet {

    @Override
    public void init(ServletConfig config) throws ServletException {
        System.out.println("serverlet被初始化自动调用----------------");
        System.out.println(config.getInitParameter("poolsize"));
        super.init(config);
    }
    
}


(5) 设置过滤器Filter

设置过滤器:比如设置一个编码过滤器,过滤所有资源
<filter>
<filter-name>XXXCharaSetFilter</filter-name>
<filter-class>net.test.CharSetFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>XXXCharaSetFilter</filter-name>
<url-pattern>/*</url-pattern>

</filter-mapping>


过滤器实现:

1. 继承HttpServlet

2. 实现接口 javax.servlet.Filter;

主要处理方法写在doFilter,写的时候有几个要注意的地方:

1. doFilter的参数是ServletRequest, ServletResponse ,这个不要直接使用要转换

        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse rsp = (HttpServletResponse) response;

2. 处理完毕后的引导

如果继续请求,不拦截,就必须调用:filterChain.doFilter(request, response);

也可以拦截到指定的页面:

rsp.sendRedirect(basePath + loginJsp+"?url="+url);

Filter的具体使用见我的另外一篇文章:servelet Filter 使用


(5) 设置会话过期时间

设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:
<session-config>
<session-timeout>60</session-timeout>
</session-config>
详细出处参考:http://www.jb51.net/article/19141.htm



原创粉丝点击