Servlet(2)

HTTP简介

  • WEB浏览器与WEB服务器之间一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议。
  • HTTP是超文本协议。它是TCP/IP协议中的一个应用层协议。用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。
  • HTTP协议的版本HTTP/1.0、HTTP/2.0、HTTP.NG。

HTTP的会话方式

浏览器与WEB服务器的链接过程是短暂的,每次连接只处理一个请求和响应。对每一个页面的访问。浏览器与WEB服务器都要建立一次单独的连接。
浏览器到WEB服务器之间的所有通讯都是完全独立分开的请求和响应对。

HTTP请求消息

请求消息的结构:
一个请求行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。

HTTP响应消息

响应消息的结构:
一个请求行、若干消息头、以及实体内容,其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开。

使用get和post方式传递参数

  • get方式:www.servlet.com?name=qiu&xing=meng
    传递的参数是有限制的,一般限制在1KB以下。
  • post方式:www.servlet.com
    传递参数比较安全
俩者的区别:

GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包。
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

怎样使用
  1. GET与POST都有自己的语义,不能随便混用。
  2. 据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。
  3. 并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次

HttpServletRequest

为ServletRequest的一个子接口,封装了很多关于HTPP请求的一些方法,是对ServletRequest的扩展。

HttpServletRequest httpServletRequest =(HttpServletRequest )ServletRequest
  • 获取请求的URL
httpServletRequest.getRequest()
  • 获取请求方式
httpServletRequest.getMethod()
  • 获取请求参数字符串,get为?后面参数、post为null
httpServletRequest.getQueryString()
  • 获取请求Servlet的映射路径
httpServletRequest.getServletPath();
  • setAttribute(这个后面会着重讲)

HttpServletResponse

封装了HTTP响应信息,具体可以用该借口的方式去实现。

  • getWriter()
    返回PrintWriter对象,调用print方法,将print中的参数打印在浏览器中。
  • setContentType()
    设置返回响应的类型
  • sendRedirect()
    请求重定向,

GenericServlet

为servlet借口的实现类(抽象的),现在直接继承HttpServlet即可.
因为servlet为接口,实现类要实现全部方法,比较繁琐,HttpServlet封装了所有HTTP的方法,且继承GenericServlet。

  • GenericServlet声明ServletConfig类型的成员变量,但是在init()方法中实现的。
  • 利用ServletConfig成员变量实现了ServletConfig接口的方法。
  • 不建议直接覆盖init()方法,如果忘记super,会直接调用ServletConfig接口的方法,会出现空指针。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值