Servlet 是一种技术,被用来创建一个JAVA WEB Application.
- 接收请求
- 从请求中获得数据
- 处理请求
- 响应请求
- 写入响应内容
实现 servlet-api
提供的 Servlet接口,并且重写如下方法,但更好的方式是:继承并重写 HttpServlet
用于实现http方式的 请求处理
- implements Servlet Interface
- extends GenericServlet
- extends HttpServlet 接口
public interface Servlet {
public void init(ServletConfig config);
public void service(ServletRequest request,ServletResponse response);
public void destroy();
// ...
}
Servlet上下文,每一个Java Web Application 中有且仅有一个,在war包部署到tomcat等容器之后,读取web.xml. 将所有信息释放到上下文中。
- 类加载器加载Servlet class
- 创建Servlet class instance
- 调用init() 方法初始化
- 收到请求后进行处理,调用service(-,-)方法
- 销毁destroy()
https://docs.oracle.com/javaee/6/api/javax/servlet/Filter.html
- 指定请求和响应的编码
- 压缩图片
- 认证
- 指定那些资源可以被访问 那些不能
- token 过滤器
public class HelloServlet extends HttpServlet {
void init(FilterConfig filterConfig);
void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;
public void destroy();
}
Servlet API的 getParameter
接口,只支持获得GET请求的query参数 或者是 POST请求的from-data参数。
但是对于PUT/DELETE/PATCH 类型,则无法处理。
If you pass the negative value, servlet will be loaded at request time, at first request.
指定servlet 加载顺序,如果不指定,则默认在首次请求到达的时候才进行初始化Servlet 如果指定:从0开始按照顺序加载,在服务器启动后。