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都是非法的,启动时候会报错
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


