全国咨询/投诉热线: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

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额