`
jinvasshole
  • 浏览: 777204 次
文章分类
社区版块
存档分类
最新评论

Servlet容器响应客户端请求访问特定的Servlet流程

 
阅读更多

Servlet容器响应客户端请求访问特定的Servlet流程如下:
1.客户端发出要求访问特定的Servlet的请求
2.Servlet容器接收到客户请求,对其解析
3.Servlet容器创建一个ServletRequest对象,在ServletRequest对象中包含客户请求信息及其它关于客户的信息,如:请求头,请求正文,以及客户机的ip地址等
4.Servlet容器创建一个ServletResponse对象
5.Servlet容器调用客户所请求的Servlet的Service()服务方法,并把ServletRequest对象和ServletResponse对象作为参数传递组该服务方法
6.Servlet从ServletRequest对象中获取客户的请求信息
7.Servlet利用ServletResponse对象来生成响应结果
8.Servlet容器把Servlet生成的响应结果发送给客户。

HTTP请求格式
http请求由3部分组成
1.请求方法(post,get),URL,和HTTP协议版本
2.请求头(Request Header)
3.请求正文(Request Content)

HTTP请求的第一行就包含(1)部分中间以空格分开,从第二行开始为请求头包含许多有关客户端环境和请求正文的有用信息。如,请求头中可以声明浏览器类型,所用的语言,请求正文类型,以及请求正文的长度。HTTP协议规定请求正文和请求头之间必须以空行分开(CRLF回车换行符\r\n)请求正文中可以包含客户以post方式提交的表单数据而以get方式提交的表单数据会在(1)部分的URL后以?name=value&name=value方式传递


HTTP响应格式
http响应格式与请求相同也由3部分组成
1.HTTP协议的版本,状态码,和描述
2.响应头(Response Header)
3.响应正文(Response Content)

HTTP响应的第一行就包含(1)部分,响应头部分包含服务器类型,正文类型和正文长度,响应头与响应正文之间也必须以空行(CRLF)隔开


示例访问http://localhost:8080/helloapp/dispatcher
1.要访问servlet必须在web.xml中配置如下:

<servlet>
<servlet-name>dispatcher</servlet-name>(3)
<servlet-class>mypackage.Dispatcher</servlet-class>(4)
</servlet>

<servlet-mapping>
<servlet-name>dispathcer</servlet-name>(2)
<url-pattern>/dispatcher</url-pattern>(1)
</servlet-mapping>

2.流程如下:
web应用程序发布时tomcat容器在加载web应用时就会把对应的web.xml文件中的数据读入到内存中,通过从servletRequest中得到用户的请求/dispatcher此时tomcat容器就会从内存中遍历所有的<servlet-mapping>中的<url-pattern>找到与请求对应的url。此时找到(1)通过(1)找到处理这个请求的servlet-name(2),接着在<servlet>标签中查找对应(2)部分的servlet-name即(3)部分,通过(3)找到对应处理的源文件所在位置即(4)部分,根据(4)部分<servlet-class>通过反射调用WEB-INF/classes文件夹中对应的class源文件处理用户请求,通过ServletResponse生成响应结果,最后由servlet容器将结果返回给用户。


分享到:
评论

相关推荐

    Java Web应用开发:servlet.ppt

    知道什么是Servlet,理解Servlet的作用 理解Servlet的生命周期 会通过继承HTTPServlet类的方式创建自己的Servlet类 知道如何访问servlet 理解web.xml中关于Servlet的配置 知道如何在servlet中取得客户端的请求参数,...

    java-servlet-api.doc

    Servlet依照Servlet引擎的映射来响应客户端的请求。一个映射对包括一个Servlet实例以及一个Servlet返回数据的URL,例如:HelloServletwith/hello/index.html。 然而,一个映射可能是由一个URL和许多Servlet实例组成...

    Filter(过滤器)简介和工作原理

    当客户端请求目标资源的时候,容器就会调用与这个目标资源相关联的过滤器的 doFilter() 方法。其中参数 request, response 为 Web 容器或 Filter 链的上一个 Filter 传递过来的请求和响应对象;参数 chain 为代表...

    Java_Web总结

    Servlet URL 映射路径是指将 Servlet 映射到特定的 URL 路径的过程。该过程主要包括以下几个步骤: * 在 web.xml 文件中定义 Servlet 的映射路径 * 在 Servlet 代码中定义 Servlet 的映射路径 2.4. Servlet 生命...

    杭州公司笔试题目.doc

    3. Servlet 初始化后,将一直存在于容器中,用于响应客户端请求。 4. 客户端有 get 请求,容器调用 Servlet 的 doGet 方法处理并响应请求。 5. Web 容器销毁 Servlet 时,调用 Servlet 的 destroy 方法,通常在关闭 ...

    《JavaWeb编程技术》课后习题答案.docx

    Servlet 是用 Servlet API 开发的 Java 程序,它运行在 Servlet 容器中。Servlet 容器是运行 Servlet 的软件,主要用来扩展 Web 服务器的功能。 4. Servlet 生命周期: Servlet 生命周期包括加载和实例化、初始化...

    Java Web程序设计题库.pdf

    Servlet 是 Java web 编程中的一个重要概念,它可以用来处理客户端的请求并返回响应信息。Servlet 的生命周期包括 init、service、destroy 三个阶段。 8. request 和 response 对象: 在 Servlet 编程中,request ...

    11.02.11 JavaWeb笔记.pdf

    Servlet 是服务器端的程序, 可交互式的处理客户端发送到服务端的请求,并完成操作响应。是 Java Web 程序开发的基础。通过创建 Web 项目,可以体验 Servlet 的开发和使用。 本笔记涵盖了 Java Web 的基础知识,...

    SpringMVC及视图解析器

    在 Spring 容器中,可以添加多个视图解析器,每个视图解析器都可以处理特定的视图类型。例如,InternalResourceViewResolver 可以处理 JSP 视图。 四、配置 在 SpringMVC 中,需要在 web.xml 文件中声明 SpringMVC...

    jsp的九大隐式对象详解

    response 对象代表的是对客户端的响应,主要是将 JSP 容器处理过的对象传回到客户端。response 对象也具有作用域,它只在 JSP 页面内有效。response 对象主要用于设置响应头、状态码、输出内容等。 3. session 对象...

    J2EE中文版指南 CHM格式 带全文检索

    5.定义客户端访问接口 47 远程访问 47 本地接口 48 Local接口和CMR(Container-Managed RelationShips) 49 两种访问方式的抉择 49 性能和访问方式 50 方法参数和访问方式 50 数据访问粒度 50 6,企业Bean的“内容...

    ssh(structs,spring,hibernate)框架中的上传下载

    具体的调用是将Web层将response.getOutputStream()传给write(OutputStream os,String fileId)接口,业务层直接将文件数据输出到这个响应流中。具体实现请参见错误!未找到引用源。节下载文件部分。  2、业务层接口...

    java 面试题 总结

    Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    Java并发编程(学习笔记).xmind

    (3)简化异步事件的处理:服务器应用程序在接受来自多个远程客户端的请求时,如果为每个连接都分配一个线程并且使用同步IO,就会降低开发难度 (4)用户界面具备更短的响应时间:现代GUI框架中大都使用一个...

    超级有影响力霸气的Java面试题大全文档

     Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    java面试题

    它通过多线程方式允许其service方法,一个实例可以服务于多个请求,并且其实例一般不会被销毁,而CGI对每个请求都产生新的进程,服务完后就销毁,所以效率上低于Servlet。 面向对象的特征? 答:1:封装:通过定义类...

    疯狂Android讲义源码

     10.2.4 客户端访问AIDLService 385  10.3 电话管理器  (TelephonyManager) 393  10.4 短信管理器(SmsManager) 400  10.5 音频管理器  (AudioManager) 404  10.5.1 AudioManager简介 404  10.6 振动器...

    JAVA面试题最全集

    在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。 4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6....

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。 第四章 系统设计 4.1开发框架技术介绍 对于框架技术,我们采用Struts+ajax的整合! Struts是应用...

Global site tag (gtag.js) - Google Analytics