全国咨询/投诉热线:400-618-4000

Servlet&HTTP&Request

创建时间:2019年01月10日13时35分

  Servlet体系结构

  Servlet

  |

  GenericServlet -->抽象类

  |

  HttpServlet -->抽象类

  HTTP

  概念: hyper Text Transfer Protocol 超文本传输协议

  传输协议: 定义了客户端和服务器端通信时,发送数据格式

  特点:

  基于TCP/IP的高级协议

  默认端口号:80

  基于请求响应模型的,一次请求一次响应

  无状态 :每次请求之间相互独立,不能交互数据

  历史版本

  1.0

  1.1: SPDY协议

  请求消息数据格式

  请求行

  请求方式 请求url 请求协议/版本

  请求方式

  GET

  请求参数在请求行,在url后

  请求的url有限制

  不安全

  POST

  请求参数在请求体中

  请求的url没有限制

  相对安全

  请求头

  请求头名称: 请求头值

  User-Agent: 浏览器告诉服务器,我访问你使用的浏览器版本信息

  可以在服务器端获取该头信息,解决浏览器兼容问题

  Referer

  告诉服务器,我(当前请求)从哪里来

  作用

  防盗链:

  统计

  content-tyoe

  请求空行

  空行

  作为请求头和请求体的分隔

  请求体

  请求参数(post)

  Request(发送数据到服务器)

  request和response对象是由服务器创建的.我们阿里使用它们

  request对象是获取请求信息的,response对象是来设置响应消息的

  request和response对象是由服务器(TomCat)在浏览器访问服务器时创建的

  获取请求消息数据

  获取请求行数据

  方法

  获取请求方式

  String getMethod()

  ***获取虚拟路径

  String getContextPath()

  获取Servlet路径

  String getServletPath()

  获取get方式请求参数:

  String getQueryString()

  ***获取请求URI

  String getRequestURI()

  String getRequestURL()

  获取请求头数据

  String getHeader(String name)通过头名称获取对应的值

  Enumeration(String) getHeaderNames 获取所有请求头的名称

  hub~

  获取请求体数据

  请求体 :只有post请求方式中,才有请求体,在请求体中封装了post请求的请求参数

  BufferedReader getR() 获取字符输入流

  InPutStream getInPutStream() 获取字节输入流

  获取请求参数通用方式

  String getParameter(String name) 根据参数名称获取参数值

  String[] getgetParameterValues(String name) 根据参数名称获取参数值数组

  Enumeration(String) getParameterNames() 获取所有请求的参数名称

  Map getParameterMap() 获取所有参数的Map集合

  中文乱码问题

  get方式:tomcat已经将get方式乱码问题解决

  post方式: 会乱码

  解决

  request.setCharacterEncoding(编码格式)

  请求转发

  一种在服务器内部资源跳转方式

  步骤

  通过request对象获取请求转发器

  RequstDispatcher getRequstDispatcher(String Path)

  使用RequstDispatcher对象调用forward方法实现资源跳转

  RequstDispatcher.forward()

  特点

  浏览器地址栏路径不变

  只能访问服务器内部资源

  请求转发只有一次请求

  ps:服务器内部资源千万不要携带虚拟路径

  共享数据

  域对象

  一个有作用范围的对象,可以再范围内共享数据

  request域:代表一次请求的范围.一般用于请求的多个资源中共享数据

  方法

  setAttitude(String name, Object obj) 存储数据

  getAttitude(String name) 通过键获得值

  removeAttitude(String name) 通过键删除键值对

  获取ServletContext

  request.getServletContext()

  绝对路径

  基于服务器的绝对路径

  /开头的代表绝对路径

  .或者..开头代表相对路径

  域对象

  ServletContext 服务器启动时创建,关闭时销毁,仅限当前项目

  HttpSession 一次回话

  HttpServletRequest 一次请求

  PageContext 当前页面



作者:传智播客JavaEE培训学院

首发:http://java.itcast.cn