我是靠谱客的博主 甜蜜牛排,这篇文章主要介绍Javaweb:Eclipse新建Servlet时候,不会自动生成mapping到web.xml,而是在代码中加入注解@WebServlet,现在分享给大家,希望可以做个参考。

用Eclipse新版本新建servlet时候,发现创建Servlet后,Eclipse不会自动在web.xml中生成该Servlet对应的mapping信息,而是在Servlet代码中加入注解@WebServlet,如下

分析:

查找文档发现,这是Servlet3.0新特性(得Tomcat7.0版本及以上),@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 value 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)

解决方法:

在@WebServlet 中定义Servlet的name、urlPatterns等信息

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet; @WebServlet( displayName = "This is Login Action", //描述 name = "LoginAction", //servlet名称 urlPatterns = { "/servlet/LoginAction" },//url loadOnStartup = 1, //启动项 initParams = { @WebInitParam(name = "username", value = "张三") }//初始化参数 ) public class LoginAction extends HttpServlet { /** * Constructor of the object. */ public LoginAction() { super(); }

 

Servlet的访问URL是Servlet的必选属性,可以选择使用urlPatterns或者value定义。
  像上面的LoginAction可以描述成@WebServlet(name="LoginAction",value="/LoginAction")。
  也定义多个URL访问:
  如@WebServlet(name="LoginAction",urlPatterns={"/LoginAction","/LoginAction2"})
  或者@WebServlet(name="LoginAction",value={"/LoginAction","/LoginAction2"})

这样的简化形式也可以,相当于设置了name和urlPattern

@WebServlet("/servlet/LoginAction")

在新建Servlet时候在URL mapping中可以直接输入


--------------------- 
作者:xulianbocs 
来源:CSDN 
原文:https://blog.csdn.net/xulianboblog/article/details/51079534 

最后

以上就是甜蜜牛排最近收集整理的关于Javaweb:Eclipse新建Servlet时候,不会自动生成mapping到web.xml,而是在代码中加入注解@WebServlet的全部内容,更多相关Javaweb:Eclipse新建Servlet时候,不会自动生成mapping到web内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部