现在的位置: 首页 > 综合 > 正文

初识Servlets

2013年11月27日 ⁄ 综合 ⁄ 共 1711字 ⁄ 字号 评论关闭

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字符串进行渲染页面

抱歉!评论已关闭.