servlet的两种配置方式
- 在web.xml中配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<!-- servlet别名,一般与类名相同 -->
<servlet-name>name</servlet-name>
<!-- servlet全限定类名,即servlet位置路径 -->
<servlet-class>com.example.servlet.Servlet_life</servlet-class>
<!-- 启动优先级 -->
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet-mapping>
<!-- 跟上面的别名一致 -->
<servlet-name>name</servlet-name>
<!-- 请求访问路径,“/”必须加上,相当于项目名称 -->
<url-pattern>/life</url-pattern>
</servlet-mapping>
</web-app>
- 使用
@WebServlet
注解配置
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(value = "/life", loadOnStartup = 0)
public class Servlet_life implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("init");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("service");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("destroy");
}
}
启动优先级
(<load-on-startup>或loadOnStartup):
- 它们的值是一个整数,表示
servlet
的被加载顺序。 - 当该元素值为负数(默认为-1)时,则
servlet
被请求时才被加载并初始化。 - 如果元素值为非负数时,表示容器在应用启动时就加载并初始化
servlet
,值越小,servlet
的优先级越高,优先级相同时,加载顺序由容器决定。