· Servlet
1、servlet是一个类
2、servlet是运行在服务器端的
3、servlet主要负责处理客户端的请求,并作出回应
· Servlet 所处理的三件事
1、接收客户端发送的数据
2、调用业务逻辑层
3、响应客户端
· Servlet的生命周期
1、实例化,调用Servlet的构造()时 (在第一个用户请求的时候执行,每个生命周期只执行一次)
2、初始化,调用Servlet的init()时(在第一个用户请求的时候执行,每个生命周期只执行一次)
3、服务阶段,调用Servlet的service()时(在每一个用户请求的时候都会执行一次,每个生命周期执行的次数不确定)
4、销毁,调用Servlet的destroy()时(从服务器上卸载servler实例的时候执行,每个生命周期执行一次)
· Servlet的特点
1、处理并发访问的时候servlet采用单例多线程模式,所有客户端共享一个Servlet实例,节省内存空间
2、当有service()方法的时,最先做处理请求的是service()方法,处理后就不会执行doGet()、doPost()方法了。
3、当service()、doGet()、doPost()不存在的时候便会引发405错误
如果Servlet只有对get提交方式的处理而请求页面采用的时候post方式提交那么也会引发405错误
· 在Servlet中获取session,application
1、session : HttpSession session = 调用 HttpServletRequest 对象 getSession()方法。
2、application : ServletContext application = 调用 父类的getServletContext()方法。
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse respone)
throws ServletException, IOException {
//获取 session 对象
HttpSession session = request.getSession();
//获取application
ServletContext application = super.getServletContext();
}
}
其他收获:
1、修改tomcat/conf/context.xml文件来简化发开操作
为Context标签添加一个属性 <Context reloadable = "true" >
这样在修改web.xml文件后便不需要从新发布了