初识Servlets

xiaoxiao2021-02-27  320

Tomcat和Servlets

        Tomcat是一个web容器,它实现了J2EE中的JSP和servlet开发标准。编译好的servlet类运行在tomcat容器中,客户端不可以通过浏览器直接访问Servlet,需要在web.xml中进行相关配置之后才可以。         Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。

Servlet的生命周期是由Tomcat容器管理的,过程如下:

        1. 客户发出请求—>Web 服务器转发到Web容器Tomcat;         2.  Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;         3. 从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;         4. Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法。假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;         5. Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。

        

        从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);调用destroy()方法(对应6步)。

Servlet的运行过程如下:         1、客户端发出request请求和请求URL。例:http://127.0.0.1:8080/test_servlet/loginServlet         2、服务器Tomcat根据URL截取相关内容。如:项目名称test_servlet,访问名称loginServlet                 <servlet>                         <servlet-name>MyServlet</servlet-name>                         <servlet-class> LoginServlet </servlet-class>                 </servlet>                 <servlet-mapping>                         <servlet-name>MyServlet</servlet-name>                         <url-pattern>/loginServlet</url-pattern>                 </servlet-mapping>         3、Tomcat根据获取的访问名称,根据相关的配置文件获取servlet-name。如上所示的配置文件中的servlet-name为MyServlet         4、根据相关的servlet-name找到相关的servlet-class。如上所示的配置文件中的servlet-class为LoginServlet         5、Tomcat根据找到的class的完整路径,利用反射对class完成实例化         6、Tomcat调用Servlet类的service()方法         7、被调用Servlet类由于继承了父类的service方法,该方法会根据传递的Request请求的类型POST/GET选择执行doGet/doPost方法         8、doGet/doPost方法会根据传递的相关参数调用或执行相关的操作。例如:调用UserManager类执行login方法,通过响应对象Response输出HTML字符串传递给Tomcat         9、Tomcat将Response转换为HTTP响应发回给客户端,同时删除请求和响应对象。

        10、浏览器将HTTP响应传递的HTML字符串进行渲染页面

转载请注明原文地址: https://www.6miu.com/read-2501.html

最新回复(0)