servlet调用过程:
1.浏览器访问login.html
2.用表单form提交数据到/login这个路径
3.根据配置文件web.xml,找到/login对应的类LoginServlet
<servlet> <servlet-name>LoginServlet<servlet-name> <servlet-class>LoginServlet<servlet-class> <servlet> <servlet-mapping> <servlet-name>LoginServlet<servlet-name> <url-pattern>/login<url-pattern> <servlet-mapping> //先通过servlet-mapping找到/login请求对应的servlet名字,再通过对应的servlet //找到对应的类
4.实例化servlet对象
Tomcat 定位到了LoginServlet后,发现并没有LoginServlet的实例存在,于是就调用LoginServlet的public无参的构造方法LoginServlet()实例化一个LoginServlet对象以备后续使用
5.初始化
LoginServlet 继承了HttpServlet,同时也继承了init(ServletConfig) 方法,init 方法是一个实例方法,所以会在构造方法执行后执行。无论访问多少次LoginServlet ,初始化只会执行一次。单例模式,以免频繁的创建、销毁对象
6.提供服务
service(HttpServletRequest request, HttpServletResponse response)会通过浏览器传递过来的信息进行判断,是调用doGet()还是doPost()方法
7.处理
doGet()还是doPost()方法进行处理,通过response返回信息
8.tomcat把html传递给浏览器
在Servlet完成工作之后,tomcat拿到被Servlet修改过的response,根据这个response生成html 字符串,然后再通过HTTP协议,这个html字符串,回发给浏览器,浏览器再根据HTTP协议获取这个html字符串,并渲染在界面上。