java web 开发,入门的知识,servlet编写,注册,生命周期的方法,
HttpServletRequest,HttpServletResponse的相关的知识,其均是以HTTP协议为操作原理。
因为静态 web服务器调用本质流程:
1. web 服务器(如:IIS, tomcat)启动tcp socket service
2. 等待Client发起TCP 连接,且接收TCP的连接
3. client以HTTP协议向服务器发送请求,请求包含各种信息,所以需要丰富统一简明的格式来表达。
4. service读取请求(request)数据, 根据协议请求格式,响应
5. 将响应(Response)结果以HTTP协议格式发送client
特点:同一个请求得到结果是一样的
因为动态 web服务器调用本质流程,以tomcat为例说明:
1.TOMCT 启动tcp socket service
2. 等待Client发起TCP 连接,且接收TCP的连接
3. client以HTTP协议封装请求数据,将数据向socket当中写入。
4. service从socket当中读取数据,按\r\n进行TCP拆包。将数据分类,请求头,消息头,实例,为例方便处理封装httpservletRequest对象,且通过httpservletRequest还能继续读取client向socket流当中写入的数据,如表单上传文件。同时也将socket.getOutputStream封装到HttpServletResponse。
5. 调用filter,然后由filter调用servlet,向servlet传入httpservletRequest, httpservletResponse对象。
6. servlet通过httpservletresponse写入响应数据。
特点:
1. tcp, http,filter, servlet是java web的一种经典且主要的方式,主要用于web站点
2.tcp,http, filter加struts也是一种模式,在android与web通信就使用了这种,struts的filter调用httpservletRequest 得到请求数据,然后利用httpservletResponse向客户端发送数据
【servlet与web的关系】
1. servlet根据请求参数,调用相应的业务逻辑,拼成html,json,xml的数据,封装到http当中发送给客户端
2. servlet是J2EE当中,开发者与用户所交互的入口,servlet能够设计HTML数据。用户向web服务器发送servlet请求
【servlet与tomcat的关系】
1. servlet是一种JAVA WEB开发的框架, tomcat是web服务器,且能够运行servlet文件。
2. 从开发者的角度看,servlet是一个接口,我们只要继承相应的servlet相应接口,现实相应的接口,用户就可以看到了
3. tomcat不会实现servlet的接口方法,其只调用servlet的接口
【filter与servlet的关系】
之前
只是理解了filter的一层作用,拦截请求,调用不到servlet
现在
1. 任何一个servlet都是被filter创建与调用,filter调用servlet的server方法,提供了httpServletRequest, httpservletResponse对象。
2. 在filter当中可以动态添加与修改httpServletRequest, httpServletResponse当中的参数,在struts就利用了一种能力。如在web.xml当中定义一个struts的filter,然后调用struts的action,向action处理逻辑,得到数据,将这些数据放置到response, request参数。然后再根据action的返回值,forward到具体在jsp当中,在JSP当中取出存放在request当中的数据,在JSP当中显示,最后jsp(servlet)利用httpservletresponse返回JSP的html数据。
【struts, filter, servlet的关系】
1. struts, servlet 均是建立在J2EE的filter基础之上的,都必须由filter来调用
2. 刚开始学习java web的时候,是filter, servlet,所有网页显示需要直接是拼接成字符串,然后是filter, JSP, servlet. 由servlet做调用的入口,然后再调用具体的jsp显示数据
3. 在工作当中是filter, jsp, struts. 在struts当中处理业务逻辑得到数据, 然后调用相应的jsp网页显示数据。
4. J2EE本质还是socket, http, jsp/servlet, struts只是一个框架,方便JSP程序的开发,方便在于开发人员不要局限于HTTP的思路,如在servlet当中只有doGet, doPost,这是受限于http的思路,在struts是以业务的请求为中心,一个action类可以有请求的入口,根据需要调用不同的jsp
1.