`
endual
  • 浏览: 3567642 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Servlet 运行原理

    博客分类:
  • java
 
阅读更多

Servlet 运行原理

 146人阅读 评论(0) 收藏 举报

一:servlet定义

Servlet是一个Java应用程序,运行在服务器端,用来处理客户端请求并作出响应的程序。

二:简单servlet实例

 

//导入所需的包

 

import javax.servlet.http.*;

import javax.servlet.*;

import java.io.*;

public class FirstServlet extends HttpServlet {

//处理请求的方法

public void doGet(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, java.io.IOException {

//数据发送给客户端—>控制台方式输出

//System.out.println(“Hello Servlet”);

//数据发送给客户端—>HTML页面输出

resp.setContentType(“text/html”);

resp.getWriter().print(“<html>”);

resp.getWriter().print(“<head>”);

resp.getWriter().print(“</head>”);

resp.getWriter().print(“<body>”);

resp.getWriter().print(“Hello World”);

resp.getWriter().print(“</body>”);

resp.getWriter().print(“</html>”);

}

}

 

三:servlet配置到Tomcat中去

Tomcat是一个web容器,也叫web服务器。我们都知道J2EE有十三个标准,这些标准大部分都是接口,Tomcat只是实现了JSP 和 servlet 开发标准。实现了所有的开发标准,就是应用程序服务器,比如Jboss。

编译好的servlet类只能运行在tomcat容器中,客户端浏览器不可以直接访问Servlet,需要在web.xml中配置一下

 

 

<servlet>

 

<servlet-name>FirstServlet</servlet-name>

<servlet-class>FirstServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>FirstServlet</servlet-name>

<url-pattern>/servlet/FirstServlet</url-pattern>

</servlet-mapping>

 

Tomcat启动成功后,在浏览器中输入:http://localhost:8080/abingtest/servlet/FirstServlet

四:servlet运行原理

当我们在浏览器中输入http://localhost:8080/abingtest/servlet/FirstServlet的时候,Tomcat是如何找到我们的servlet ,运行,并返回我们想看到的页面的呢。

1. WebApplication的标准目录结构:

WEB-INF/classes

/lib

Web.xml

也就是一个完整的web应用程序目录下,必须包含以上的目录结构。

Classes 文件夹下是项目中用到的类文件,均由JDK编译成了.class文件

Lib文件夹是我们项目中引用的jar包

Web.xml是整个web应用程序的配置文档。

了解了这些,我们再来看Tomcat的工作流程。

2. Tomcat解析URL

a) 首先来看URL中包含的信息:”协议” + “端口号” + “路径(项目名称+文件路径)”

Tomcat启动后,监听我们的8080端口,当有Url请求发过来之后,解析出项目名称 abingtest,然后到webapps目录下搜索到该项目文件夹。

b) 项目文件找到后,开始寻找类文件。

这个时候Tomcat去Web.xml文件中寻找<servlet-mapping> 配置节中包含”servlet/FirstServlet”字符串,进而找到该类文件所在的位置。

 

3. Servelt中的doGet() 和 doPost() 方法

我们写的FirstServlet 继承了HttpServlet ,重写了HttpServlet中的doGet() 方法,HttpServlet中还有一个doPost()方法。这两个方法都是用来处理Http请求的。Servlet会根据我们提交表单的方法(method=post/get)调用service方法来自动选择(我们在下一篇文章中来详细说明一下Service方法是如何自动调用FirstServlet中的doGet()方法的)

4. Servlet如何接收数据

 

 

import javax.servlet.http.*;

 

import javax.servlet.*;

import java.io.*;

public class FirstServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, java.io.IOException {

//获取表单数据

String userName = request.getParameter(“userName”);

}

}

 

Http协议会将网页中的所有内容包装成为一个request对象传递给servlet ,Servlet通过这个对象拿到表单中的所有数据,处理完成之后,通过Response对象返回给客户端浏览器。

5. Servlet的生命周期

Servlet的生命周期是由Tomcat容器管理的

a) 客户发出请求—>Web 服务器转发到Web容器Tomcat;

b) Tomcat主线程对转发来用户的请求做出响应创建两个对象:HttpServletRequest和HttpServletResponse;

c) 从请求中的URL中找到正确Servlet,Tomcat为其创建或者分配一个线程,同时把2创建的两个对象传递给该线程;

d) Tomcat调用Servlet的servic()方法,根据请求参数的不同调用doGet()或者doPost()方法;

e) 假设是HTTP GET请求,doGet()方法生成静态页面,并组合到响应对象里;
Servlet线程结束,Tomcat将响应对象转换为HTTP响应发回给客户,同时删除请求和响应对象。
从该过程中,我们可以理解Servlet的生命周期:Servlet类加载(对应3步);Servlet实例化(对应3步);调用init方法(对应3步);调用service()方法(对应4、5步);;调用destroy()方法(对应6步)。


五:Servlet生命周期的各个阶段

分享到:
评论

相关推荐

    servlet运行原理

    servlet运行原理图,可以通过此图清楚看到servlet的运行过程

    Servlet运行原理图

    Servlet运行原理图,描述servlet运行的步骤方向和servlet运行过程

    servlet运行原理及生命周期.pdf

    ### Servlet 运行原理及生命周期详解 #### 一、Servlet简介 Servlet 是 Java Web 开发中的一个重要组成部分,它主要用于处理客户端发送至服务器端的 HTTP 请求,并返回相应的响应结果。Servlet 技术允许开发者以 ...

    方立勋servlet学习笔记

    ### 方立勋servlet学习笔记知识点总结 #### 一、Servlet概述与生命周期 - **Service方法**:在Servlet中,`service`...这些知识点对于初学者来说非常有价值,能够帮助他们更好地理解Servlet的工作原理及其应用场景。

    Servlet 工作原理解析

    要理解 Servlet 的工作原理,首先要了解Servlet容器,如Tomcat,因为Servlet是在容器中运行的。Servlet与Servlet容器之间的关系类似于枪与子弹,容器提供了运行Servlet的环境,而Servlet则执行实际的业务逻辑。 1. ...

    Servelt运行原理以及注意事项

    在深入理解Servlet运行原理和注意事项之前,我们先简单回顾一下Servlet的基本概念。 Servlet生命周期分为四个阶段:加载与实例化、初始化、服务和销毁。当web服务器接收到请求时,会根据请求URL查找对应的Servlet,...

    SERVLET基本原理

    SERVLET 是一种小型的 Java 程序,可以在 Web 服务器中运行,提供动态网页服务。 SERVLET 生命周期是指 SERVLET 从创建到销毁的整个过程。这个过程包括装载、初始化、服务和销毁四个阶段。 1.装载阶段:在这个阶段...

    servlet原理

    此外,Servlet 3.0及以上版本引入了异步处理能力,使得Servlet可以在不阻塞线程的情况下处理长时间运行的任务,提高了服务器性能。 对于源码分析,Servlet的实现位于`javax.servlet`包下,如`GenericServlet`和`...

    servlet工作原理

    ### Servlet工作原理详解 #### 一、Servlet简介与工作流程 Servlet是一种服务器端的Java应用程序,主要用于接收客户端发送的HTTP请求,并返回响应结果。Servlet在Java Web开发中扮演着核心角色,它负责处理用户...

    JSP和11servlet的运行原理.docx

    ..JSP和11servlet的运行原理.docx

    JSP和11servlet的运行原理.pdf

    ..JSP和11servlet的运行原理.pdf

    servlet原理和实践

    本章节将深入探讨Servlet的原理和实践,帮助你理解如何在实际项目中运用这项技术。 1. **C/S与B/S架构** C/S(Client/Server)架构是一种传统的两层架构,客户端直接与服务器通信。而B/S(Browser/Server)架构,...

    JavaWeb开发PPT课件.ppt

    4. Servlet运行原理 Servlet的工作过程包括: * 容器接收到客户端的请求时,先判断用户所请求的Servlet对象是否存在。如果不存在,则加载Servlet类、创建Servlet对象并实例化,然后调用init方法进行初始化。 * ...

Global site tag (gtag.js) - Google Analytics