JavaWeb笔记(三)HTTP

常见请求头

  • User-Agent:浏览器版本信息,可以解决浏览器兼容性问题
  • Referer:请求来源地址,可以防盗链和统计

Request

方法

  1. 获取请求方式: String getMethod()
  2. 获取虚拟目录: String getContextPath()
  3. 获取Servlet路径: String getServletPath()
  4. 获取get方式请求参数: String getQueryString()
  5. 获取请求URI:
  6. 获取协议及版本: String getProtocol()
  7. 获取客户机的IP地址: String getRemoteAddr()

获取请求参数通用方式

  1. String getParameter(String name) 根据参数名称获取参数值
  2. String[] getParameterValues(String name) 根据参数名称获取参数值的数组
  3. Enumeration<String> getParameterNames()获取所有请求的参数名称
  4. Map<String,String[]> getParameterMap() 获取所有参数的map集合

请求转发

request.getRequestDispatcher(String path).forward(request, response)

特点

  1. 浏览器地址不变
  2. 只能转发当前服务器内部资源中
  3. 只有一次请求

共享数据

通过域对象
application > session > request > page

响应消息

响应状态码

  1. 1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
  2. 2xx:成功。代表:200
  3. 3xx:重定向。代表:302(重定向),304(访问缓存)
  4. 4xx:客户端错误。代表:404(请求路径没有对应的资源)、405(请求方式没有对应的doXxx方法)
  5. 5xx:服务器端错误。代表:500(服务器内部出现异常)

常见响应头

  • Content-Type:服务器告诉客户端本次响应体数据格式以及编码格式
  • Content-disposition:服务器告诉客户端以什么格式打开响应体数据
    • in-line:默认值,在当前页面内打开
    • attachment;filename=xxx:以附件形式打开响应体。文件下载

Response

设置响应消息

  • 设置状态码: setStatus(int sc)
  • 设置响应头: setHeader(String name, String value)

重定向

response.sendRedirect(String path)

特点

  1. 地址栏发生变化
  2. 可以访问其他服务器的资源
  3. 两次请求

中文乱码问题

request

  • get方式:tomcat 8 已经将get方式乱码问题解决了
  • post方式:在获取参数前,设置request的编码 request.setCharacterEncoding("utf-8")

response

response.setContentType("text/html;charset=utf-8")

路径问题

  • 相对路径:以.开头
    • ./ : 当前目录
    • ../ : 后退一级目录
  • 绝对路径:以/开头
  • 客户端使用,需要加虚拟目录,动态目录获取:request.getContextPath()
    • <a>、<form>、重定向……
  • 服务端使用,不用加虚拟目录
    • 转发路径

猜你喜欢

转载自www.cnblogs.com/yxmhl/p/10660210.html
今日推荐