servlet的两种配置访问方式
1.Servlet使用Web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1">
<servlet>
<servlet-name>my</servlet-name>
<servlet-class>com.qcby.MyServlet</servlet-class>
<!-- 启动的优先级,数字越小越先启动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>my</servlet-name>
<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>second</servlet-name>
<servlet-class>com.qcby.SecondServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>second</servlet-name>
<url-pattern>/second</url-pattern>
</servlet-mapping>
</web-app>
①:url-pattern定义的匹配规则说明
精确匹配 | /具体的名称 | 只有url路径是具体的名称的时候才会触发Servlet |
---|---|---|
后缀匹配 | *.xxx | 只要是以xxx结尾就匹配触发servlet |
通配符匹配 | /* | 匹配所有请求 (在访问的时候/后边写什么都能匹配到当前的资源),能够访问到服务器上的所有资源 |
通配符匹配 | / | 匹配所有请求,能够访问到服务器上的所有资源,不包括 .jsp |
②:load-on-startup
该标记用来标记这个servlet程序什么时候被加载
1.他的值是一个整数,表示被servlet加载的顺序
2.如果该标签的值是负数或者没有值,表示该servlet会被等到请求时在加载,如果设置了就会在tomcat启动时加载
3.如果值为正数或者0时,表示tomcat会在启动时加载该servlet,值越小,优先级越高,值相同时容器会自己选择加载顺序。
2.Servlet使用注解配置(推荐)
@WebServlet("/LoginServlet")
@WebServlet(value={"/my","/myservlet"}) //value:配置url路径,可以配置多个
@WebServlet(urlPatterns={"/my","/myservlet"}) //配置url路径,和value作用一样,不能同时使用
@WebServlet(urlPatterns={"/my","/myservlet"},loadOnStartup=0)//loadOnStartup:配置servlet的创建时机
public class LoginServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}