介绍
深入浅析Servlet在Java中的运行原理?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
<强> 1 Servlet基本执行过程
强>
Web容器(如Tomcat)判断当前请求是否第一次请求Servlet程序。
如果是第一次,则Web容器执行以下任务:
- <李>加载Servlet类。李> <李>实例化Servlet类。李> <李>调用初始化方法并传入ServletConfig对象李>
如果不第一次执行,则:
- <李>调用服务方法,并传入请求和响应对象李>
Web容器在需要删除Servlet时(例如,在停止服务器或重新部署项目时)将调用摧毁方法。
<强> 2 Web容器如何处理Servlet请求强>
Web容器负责处理请求。让我们看看它如何处理请求。
- <李>将用户请求与Web . xml文件中的Servlet进行映射。李> <>李创建请求和响应对象李> <>李创建新的线程,并在该线程上调用Servlet的服务方法李> <>李在公共的服务方法内部调用保护的服务方法李> <李>保护的服务方法根据请求的类型调用doGet方法。李> <李> doGet方法生成响应并将其传递给客户端。李> <李>发送响应后,Web容器将删除请求和响应对象。该线程是继续留在线程池中还是被删除取决于服务器实现。
李,>
<强> 3公共的服务方法部分源码强>
公共的服务方法将ServletRequest对象转换为HttpServletRequest类型,而ServletResponse对象转换为HttpServletResponse类型。然后,调用传递这些对象的服务方法。让我们看一下内部代码:
公共空间服务(ServletRequest点播,ServletResponse res) 抛出ServletException, IOException { HttpServletRequest请求; HttpServletResponse反应; 试一试 { 请求=(HttpServletRequest)要求; 响应=(HttpServletResponse)物; } 抓住(ClassCastException e) { 把新ServletException(“非http请求或response"); } 服务(请求、响应); }
<强> 4保护的服务方法部分源码
强>
保护的服务方法判断请求的类型,如果请求类型为,则调用doGet方法,如果请求类型为,则调用doPost方法,依此类推。让我们看一下内部代码:
保护无效服务(HttpServletRequest点播,HttpServletResponse职责) 抛出ServletException, IOException { 字符串方法=req.getMethod (); 如果(method.equals (“GET")) { 长lastModified=getLastModified(要求的); 如果(lastModified==1升) { doGet(要求、职责); } …//其他代码 } }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。