一般学习过java一段时间的小伙伴们应该都知道Servlet吧,一些特殊的场景有时候离不开它,小伙伴们知道servlet的工作原理是什么吗?快听小编为你介绍介绍吧。
一、客户发出请求—>Web 服务器转发到Web容器Tomcat;
二、Tomcat服务器主线程响应用户转发请求并为此创造两个对象:HttpServletRequest和HttpServletResponse;
三、从请求的URL中找到对应的Servlet,Tomcat服务器会为它创建或分配一个线程,同时把上一步创建的两个对象传递给该线程;
四、Tomcat服务器调用Servlet中servic()方法,然后根据请求参数不同调用doGet()或者doPost()方法;
五、如果是HTTP GET请求就使用doGet()方法生成静态页面,再组合到响应对象里;
Servlet线程结束时:Tomcat服务器会把响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
Servlet生命周期可以理解为:
1)、Servlet类加载;
2)、Servlet实例化;
3)调用init方法;
4)调用service()方法;
5)调用destroy()方法。
PS:
1)、Servlet对象创建时机:
在全部为默认的情况下,web客户端第一次请求访问某个Servlet的时候,WEB容器就会创建这个Servlet的实例。
在web.xml文件中,如果元素指定了子元素时,Servlet容器就会在启动web服务器时,按顺序创建并初始化Servlet对象。
Servlet Servlet容器会在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的属性决定的。
2)、 在Servlet接口与GenericServlet中是没有doGet()、doPost()等方法的,它们都是在HttpServlet中定义的,但返回的都是error信息,因此,我们每次在定义一个Servlet的时候,都必须实现doGet或doPost等这些方法。HttpServlet是继承于GenericServlet实现的。
Servlet体系结构
以上就是servlet工作原理的所有详情,关于servlet你知道它是如何工作了的吧,如果你还有其他疑问,想了解更多其他的java常见问题及答案,就快关注我们的网站了解具体内容吧。
推荐阅读: