旧版本的Servlet在web.xml文件中配置,内容如下:
<servlet>
<servlet-name>UserServlet</servlet-name>
<servlet-class>net.tjk.web.UserServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>UserServlet</servlet-name>
<url-pattern>/UserServlet</url-pattern>
</servlet-mapping>
属性 | 作用 |
---|---|
servlet-name | servlet的名字 |
servlet-class | servlet所在位置 |
url-pattern | servlet的路径映射,需要以/开头 |
新版本的Servlet中可以使用注解 @WebServlet进行配置
注解源码:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface WebServlet {
String name() default "";
String[] value() default {};
String[] urlPatterns() default {};
int loadOnStartup() default -1;
WebInitParam[] initParams() default {};
boolean asyncSupported() default false;
String smallIcon() default "";
String largeIcon() default "";
String description() default "";
String displayName() default "";
}
常用属性 | 作用 |
---|---|
name | servlet的名字 |
value | servlet的路径映射,需要以/开头,可以配置多个 |
urlPatterns | servlet的路径映射,需要以/开头,可以配置多个 |
loadOnStartup | 标记是否在启动时就加载servlet,负数(默认)为第一次请求该servlet时加载,0或者正数为启动应用就加载 |
initParams | 配置初始参数 |
asyncSupported | 是否支持异步操作模式,默认false |
使用方法:
@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter printWriter = response.getWriter();
printWriter.write("<div><p>你好Get</p><br><p>再见Get</p></div>");
}
}
@WebServlet("/UserServlet")和上面xml配置是一样的。
配置其他属性:
@WebServlet(name = "userServlet",urlPatterns = {"/user","/userServlet","/test"})
两种属性用逗号隔开,路径前必须加“/”,否则服务器报错。