WebServlet注解起什么作用呢?
从Servlet3.0之后提供了注解(annotation)配置的方式,
采用这种方式,我们无需在web.xml中配置Servlet的Mapping,
直接采用注解即可实现Mapping的效果,如
servlet3.0之前
servlet3.0之后,我们可以采用以下注解配置的方式配置Servlet
采用这种方式,我们无需在web.xml中配置Servlet的Mapping,
直接采用注解即可实现Mapping的效果,如
servlet3.0之前
servlet3.0之后,我们可以采用以下注解配置的方式配置Servlet
package servlet01; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebServlet("/helloWorld") public class ServletHelloWorld extends HttpServlet { /** * */ // private static final long serialVersionUID = 888; private String msg; @Override public void init() throws ServletException { // TODO Auto-generated method stub super.init(); msg = "java265.com is Java WebSite."; } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub resp.setContentType("text/html"); // 实际的逻辑是在这里 PrintWriter o = resp.getWriter(); o.println("<h1>" + msg + "</h1>"); } }
WebServlet注解属性
属性 | 类型 | 是否必须 | 备注 |
asyncSupported | boolean | 否 | 设置Servlet是否支持异步操作模式 |
displayName | String | 否 | 设置Servlet显示名称 |
initParams | WebInitParam[] | 否 | 设置初始化参数 |
loadonStartup | int | 否 | 设置Web容器启动时,是否加载Servlet |
name | String | 否 | 设置Servlet名称 |
urlPatterns/value | String[] | 否 | 设置Servlet处理的Url |
Servlet注解属性详解
- loadOnStartup属性:设置web容器是否在启动应用时就加载Servlet,
默认不配置或数值为负数时表示客户端第一次请求Servlet时再加载;
0或正数表示启动应用就加载,正数情况下,数值越小,加载该Servlet的优先级越高 - name属性:可以指定也可以不指定,通过getServletName()可以获取到,当未指定时,则为Servlet的完整类名
- urlPatterns/value属性: String[]类型,可以配置多个映射,
如:urlPatterns={"/user/test", "/user/example"}
urlPatterns的常用规则
/*或者/:拦截所
*.do:拦截指定后缀
/user/test:拦截路径
/user/*.do、/*.do、test*.do都是非法的,启动时候会报错
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。