是否web.xml为web项目的唯一入口

本文探讨了web.xml在web项目中的地位,指出web.xml并非web项目的唯一入口,尤其是在Spring Boot和Spring的WebApplicationInitializer存在的情况下。文章提到了web.xml常用于配置servlet、filter、listener等,但当使用java配置或不需配置时,可以不依赖web.xml。同时,列举了web.xml中常见的配置标签,如servlet映射、初始化参数、错误处理页面、编码过滤器和会话超时时间等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ps:每次搭建项目都习惯于配置web.xml。作为web段和后台所联系的一个配置,一直认为web.xml为web项目的唯一入口,如果没有只是默认配置了。后来看了一下spring boot和Spring的 WebApplcationlnitializer,才发现web.xml并不做为web.xml的必须,所以我以前的结论也就崩溃了。

后来参考了一下他人微博并作笔记:装载于http://supersun.iteye.com/blog/512266

   web.xml文件常用来配置初始化信息,如servlet拦截请求、filter过滤器、listener监听器等。当你的web工程不需要配置这些,或者通过java配置时web.xml就不做为必须的文件来配置你的Application,可以直接通过指定路径或者API进行相应的跳转或者相应文件的加载。

   一,自己也收录一些常用的web.xml标签

(1)定义servlet并为servlet定义所要拦截的URL,拦截所有以.do结尾的请求

<servlet>
    <servlet-name>servlet1</servlet-name>
    <servlet-class>org.whatisjava.TestServlet</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>servlet1</servlet-name>
    <url-pattern>*.do</url-pattern>

</servlet-mapping>

(2)定义初始化参数,可以定制servlet、JSP、Context的初始化参数,并在servlet、JSP、Context中取到

<servlet>
    <servlet-name>servlet1</servlet-name>
    <servlet-class>org.whatisjava.TestServlet</servlet-class>
    <init-param>
          <param-name>userName</param-name>
          <param-value>Daniel</param-value>
    </init-param>
    <init-param>
          <param-name>E-mail</param-name>
          <param-value>125485762@qq.com</param-value>
    </init-param>

</servlet>

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

(3)指定错误页面处理,可以通过“异常类型”和“错误码”来指定错误处理页面

<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>

(4)设置编码过滤器或者监听器

<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>

<listener>
<listener-class>net.test.XXXLisenet</listener-class>

</listener>

(5)设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:

<session-config>
<session-timeout>60</session-timeout>
</session-config>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值