Servlet中,WebServlet注解的使用方法
案例:声明abc接口,在接口内部获取配置信息
@WebServlet(
urlPatterns="/abc",
loadOnStartup=6,
initParams = {
@WebInitParam(name="username", value="mmm", description="this is username"),
@WebInitParam(name="age", value="18", description="this is age")
}
)
public class ServletTest extends HttpServlet {
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取配置信息
ServletConfig servletConfig = this.getServletConfig();
//批量获取所有配置
Enumeration<String> initParameterNames = servletConfig.getInitParameterNames();
// 使用迭代器的方式遍历
while(initParameterNames.hasMoreElements()) {
String key = initParameterNames.nextElement();
System.out.println(key + ":" + servletConfig.getInitParameter(key));
}
// 获取指定key的value
String username = servletConfig.getInitParameter("username");
System.out.println(username);
}
}
接口路径:urlPatterns
urlPatterns和value都可以设置接口地址,当使用value时,如果注解中没有其他配置项,可省略value,比如:@WebServlet(“/abc”)
-
精确匹配
如:/abc -
模糊匹配
*作为通配符,*在哪里,哪里就是模糊的
写法 说明 / 除了jsp文件都能匹配到 /* 匹配全部,包括jsp文件 /aaa/* 只能匹配到以aaa为前缀的路径,比如/aaa/123vvv *.action 只能匹配到以.action为后缀的路径,比如/abc.yyy
loadOnStartup
- 功能:是否在服务器启动时,实例化此Servlet
- 取值范围:-1(默认,不实例化)、正整数(值越小,越优先实例化此Servlet)
initParams
- 功能:设置servlet的初始配置信息
- 注意事项:每一个Servlet都独享一份配置信息