用Eclipse新版本新建servlet时候,发现创建Servlet后,Eclipse不会自动在web.xml中生成该Servlet对应的mapping信息,而是在Servlet代码中加入注解@Web
2018-02-27 15:40
916 查看
现象:用Eclipse新版本新建servlet时候,发现创建Servlet后,Eclipse不会自动在web.xml中生成该Servlet对应的mapping信息,而是在Servlet代码中加入注解@WebServlet,如下
分析:查找文档发现,这是Servlet3.0新特性(得Tomcat7.0版本及以上),@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 value 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)
解决方法:在@WebServlet 中定义Servlet的name、urlPatterns等信息[java] view plain copy
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中可以直接输入
分析:查找文档发现,这是Servlet3.0新特性(得Tomcat7.0版本及以上),@WebServlet 用于将一个类声明为 Servlet,该注解将会在部署时被容器处理,容器将根据具体的属性配置将相应的类部署为 Servlet。该注解具有下表给出的一些常用属性(以下所有属性均为可选属性,但是 value 或者 urlPatterns 通常是必需的,且二者不能共存,如果同时指定,通常是忽略 value 的取值)
解决方法:在@WebServlet 中定义Servlet的name、urlPatterns等信息[java] view plain copy
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中可以直接输入
相关文章推荐
- 用Eclipse新版本新建servlet时候,发现创建Servlet后,Eclipse不会自动在web.xml中生成该Servlet对应的mapping信息,而是在Servlet代码中加入注解@Web
- Eclipse新建Servlet时候,不会自动生成mapping到web.xml,而是在代码中加入注解@WebServlet
- Eclipse新建Servlet时候,不会自动生成mapping到web.xml,而是在代码中加入注解@WebServlet
- Eclipse新建Servlet时候,不会自动生成mapping到web.xml,而是在代码中加入注解@WebServlet
- Eclipse新建Servlet时候,不会自动生成mapping到web.xml,而是在代码中加入注解@WebServlet
- 用eclipse新建servlet的时候为什么没有在web.xml里自动生成相应的代码?
- 用eclipse新建servlet的时候为什么没有在web.xml里自动生成相应的代码?
- 解决:Eclipse新建Servlet时不会自动生成mapping到web.xml(水印为楼主微博ID)
- MyEclipse动态Web工程创建Servlet文件不自动生成web.xml文件内容的原因
- 用Eclipse新建一个web项目没有自动生成web.xml
- 关于在eclipse中创建servlet不能自动添加web.xml文件的解决办法
- 用Eclipse新建一个web项目没有自动生成web.xml
- 用Eclipse新建一个web项目没有自动生成web.xml
- 【Javaweb】Eclipse for JavaEE新建的Web工程自动生成web.xml
- 【Javaweb】Eclipse for JavaEE新建的Web工程自动生成web.xml
- 新建一个servlet总是生成web.xml不能生成注解问题
- 用Eclipse新建一个web项目没有自动生成web.xml
- Eclipse_新建web项目没有自动生成web.xml
- JPA项目使用myeclipse创建带注解的model实体类&web工程使用MyEclipse自动生成hibernate映射文件和实体类
- Idea 添加完项目以后自动生成的web.xml报错 'org.springframework.web.servlet.DispatcherServlet' is not assignable to