一、servlet解决中文乱码
post请求才需要,get请求不需要添加
二、servlet的继承关系
2.1关系图
2.2servlet核心方法
2.3servlet的生命周期
1.生命周期从创建到销毁的过程
2、生命周期的流程:当第一次接收请求,servlet就会进行实例化(调用构造方法)初始化(init())服务,当我们关闭容器,servlet实例就会销毁。
3、Servlet在容器中是:单例的、线程不安全的
- 单例:所有的请求都是同一个实例去响应
- 线程不安全:一个线程需要根据这个实例中的某个成员变量值去做逻辑判断。但是在中间某个时机,另一个线程改变了这个成员变量的值,从而导致第一个线程的执行路径发生了变化
- 我们已经知道了servlet是线程不安全的,给我们的启发是: 尽量的不要在servlet中定义成员变量。如果不得不定义成员变量,那么不要去:①不要去修改成员变量的值 ②不要去根据成员变量的值做一些逻辑判断
public class TestServlet extends HttpServlet {
public TestServlet(){
System.out.println("正在初始化。。。");
}
@Override
public void init() throws ServletException {
System.out.println("正在初始化。。。");
}
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("正在服务中。。。。");
}
@Override
public void destroy() {
System.out.println("正在销毁中。。。。。");
}
}