@WebServlet

从Servlet3.0开始,配置Servlet支持注解方式,即@WebServlet,但还是保留了配置web.xml方式,所有使用Servlet有两种方式:

1、Servlet类上使用@WebServlet注解进行配置

@WebServlet(name = "UserServlet",

        urlPatterns = {"/user/test","/userInfo"},

        loadOnStartup = 1,

        initParams = {

                @WebInitParam(name="name1", value="value1"),

                @WebInitParam(name="name2", value="value2")

        }

)

2、web.xml文件中配置

<servlet>

    <servlet-name>getUser</servlet-name>

    <servlet-class>user.UserServlet</servlet-class>

</servlet>


<servlet-mapping>

    <servlet-name>getUser</servlet-name>

    <url-pattern>/user/UserServlet</url-pattern>

</servlet-mapping>


(1)、loadOnStartup属性:标记容器是否在启动应用时就加载Servlet,默认不配置或数值为负数时表示客户端第一次请求Servlet时再加载;0或正数表示启动应用就加载,正数情况下,数值越小,加载该Servlet的优先级越高;

(2)、name属性:可以指定也可以不指定,通过getServletName()可以获取到,若不指定,则为Servlet的完整类名,如:cn.edu.njit.servlet.UserServlet

(3)、urlPatterns/value属性: String[]类型,可以配置多个映射,如:urlPatterns={"/user/test", "/user/example"}

(4)、在使用注解方式时,需要注意

  • <web-app> </web-app>根元素中不能配置属性metadata-complete="true",否则无法加载Servlet。metadata-complete属性表示通知Web容器是否寻找注解,默认不写或者设置false,容器会扫描注解和Web分片,为Web应用程序构建有效的元数据;设置true,表示将由部署描述符为Web程序提供所有的配置信息
  • web.xml中不能再配置该Servlet

(5).urlPatterns的常用规则

  • /*或者/:拦截所有
  • *.do:拦截指定后缀
  • /user/test:拦截路径
  • /user/*.do、/*.do、test*.do都是非法的,启动时候会报错

(6).urlPatterns的配置规则:精确匹配、扩展名匹配、路径匹配以及会包含一些优先级。

参考:https://blog.csdn.net/mytt_10566/article/details/70173007


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值