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容器将结果返回给用户。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值