@WebServlet注解:
@WebServlet注解一般在类上声明使用。一般情况下此类要继承 Servlet案例如下:
@WebServlet(urlPatterns = "/druid/*", initParams={ @WebInitParam(name="allow",value="127.0.0.1"),// IP白名单 (没有配置或者为空,则允许所有访问) @WebInitParam(name="deny",value=""),// IP黑名单 (存在共同时,deny优先于allow) @WebInitParam(name="loginUsername",value="admin"),// 用户名 @WebInitParam(name="loginPassword",value="123456"),// 密码 @WebInitParam(name="resetEnable",value="true")// 禁用HTML页面上的“Reset All”功能 }) public class DruidStatViewServlet extends StatViewServlet { private static final long serialVersionUID = 2359758657306626394L; }
对应的xml为:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> 3 4 <servlet> 5 6 <servlet-name>DruidStatViewServlet </servlet-name> 7 8 <servlet-class>com.xfwbing.DruidStatViewServlet </servlet-class> 9 10 <init-param> 11 12 <param-name>allow</param-name> 13 14 <param-value>127.0.0.1</param-value> 15 16 </init-param> 17 18 </servlet> 19 20 <servlet-mapping> 21 22 <servlet-name> 23 DruidStatViewServlet 24 </servlet-name> 25 26 <url-pattern> 27 /druid/* 28 </url-pattern> </servlet-mapping> </web-app>
只要在类上面设置@WebServlet标注,容器就会自动读取当中的信息。 上面案例中的@WebServlet告诉容器,如果请求的URL是 "/druid/*",那么就由DruidStatViewServlet来提供服务。 若没有设置@WebServlet的name属性,默认值会是Servlet的类完整名称。 当应用程序启动后,事实上并没有创建所有的Servlet实例。容器会在首次请求需要某个Servlet服务时,才将对应的Servlet类实例化、进行初始化操作,然后再处理请求。这意味着第一次请求该Servlet的客户端,必须等待Servlet类实例化、进行初始动作所必须花费的时间,才真正得到请求的处理。 如果希望应用程序启动时,就先将Servlet类载入、实例化并做好初始化动作,则可以使用loadOnStartup设置。设置大于0的值(默认值为-1),表示启动应用程序后就要初始化Servlet(而不是实例化几个Servlet)。数字代表了Servlet的初始顺序,容器必须保证有较小数字的Servlet先初始化,在使用标注的情况下,如果有多个Servlet在设置loadOnStartup时使用了相同的数字,则容器实现厂商可以自行决定要如何载入哪个Servlet。
@WebServlet常用属性
属性 | 类型 | 是否必须 | 说明 |
---|---|---|---|
asyncSupported | boolean | 否 | 指定Servlet是否支持异步操作模式 |
displayName | String | 否 | 指定Servlet显示名称 |
initParams | WebInitParam[] | 否 | 配置初始化参数 |
loadOnStartup | int | 否 | 标记容器是否在应用启动时就加载这个Servlet |
name | String | 否 | 指定Servlet名称 |
urlPatterns/value | String[] | 否 | 这两个属性作用相同,指定Servlet处理的url |
原文地址:https://www.cnblogs.com/xfwbing/p/9399458.html
时间: 2024-11-04 02:14:44