Java Servlet 运行原理分析

网友投稿 277 2022-11-14


Java Servlet 运行原理分析

1 Servlet基本执行过程

Web容器(如Tomcat)判断当前请求是否第一次请求Servlet程序 。

如果是第一次,则Web容器执行以下任务:

加载Servlet类。

实例化Servlet类。

调用init方法并传入ServletConfig对象

如果不第一次执行,则:

调用service方法,并传入request和response对象

Web容器在需要删除Servlet时(例如,在停止服务器或重新部署项目时)将调用destroy方法。

2 Web容器如何处理Servlet请求

Web容器负责处理请求。让我们看看它如何处理请求。

将用户请求与web.xml文件中的Servlet进行映射。

创建请求和响应对象

创建新的线程,并在该线程上调用Servlet的service方法

在public的service方法内部调用protected的service方法

protected的service方法根据请求的类型调用doGet方法。

doGet方法生成响应并将其传递给客户端。

发送响应后,Web容器将删除请求和响应对象。该线程是继续留在线程池中还是被删除取决于服务http://器实现。

3 public的service方法部分源码

public的service方法将ServletRequest对象转换为HttpServletRequest类型,而ServletResponse对象转换为HttpServletResponse类型。然后,调用传递这些对象的服务方法。让我们看一下内部代码:

public void service(ServletRequest req, ServletResponse res)

throws ServletException, IOException

{

HttpServletRequest request;

HttpServletResponse response;

try

{

request = (HttpServletRequest)req;

response = (HttpServletResponse)res;

}

catch(ClassCastException e) ttlkTto

{

throw new ServletException("non-HTTP request or response");

}

service(request, response);

}

4 protected的service方法部分源码

protected的service方法判断请求的类型,如果请求类型为GET,则调用doGet方法,如果请求类型为POST,则调用doPost方法,依此类推。让我们看一下内部代码:

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException

{

String method = req.getMethod();

if(method.equals("GET"))

{

long lastModified = getLastModified(req);

if(lastModified == -1L)

{

doGet(req, resp);

}

....

//rest of the code

}

}

以上就是java Servlet 运行原理分析的详细内容,更多关于Java Servlet 运行原理的资料请关注我们其它相关文章!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:简单解析execute和submit有什么区别
下一篇:Java Servlet请求重定向的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~