Request&Response(重定向&转发)

超、凢脫俗 2024-04-01 17:11 171阅读 0赞

Request和Response

  • 1、Servlet视图
  • 2、request对象
    • 2.1、request的继承结构
    • 2.2、request获取客户机信息
    • 2.3、Request获取请求头信息
    • 2.4、Request获取请求参数和乱码解决
      • 2.4.1、获取请求参数
      • 2.4.2、请求参数乱码的原因和解决方法
  • 3、Response
    • 3.1、概述
    • 3.2、继承结构
    • 3.3、常用方法
    • 3.4、输出信息到客户端
      • 3.4.1、输出信息到客户端api
      • 3.4.2、响应乱码处理
      • 3.4.5、response输出数据时的细节
    • 3.5、Response实现定时刷新
    • 3.6、Response实现禁止缓存
  • 4、重定向与转发
    • 4.1、重定向
    • 4.2、转发
    • 4.3、转发和重定向的区别

1、Servlet视图

先了解下框架
在这里插入图片描述

2、request对象

2.1、request的继承结构

虽然我们一直简称为Request,但实际上代表请求的接口为ServletRequest,其中定义了http请求相关的方法。
ServletRequest有一个子类HttpServletRequest,在ServletRequest的基础上增加了很多和http协议相关的方法。
既然Request代表HTTP,那么Http请求相关的请求行请求头实体内容等信息都可以通过这个对象获得。

2.2、request获取客户机信息

getRequestURL方法 – 返回客户端发出请求完整URL
getRequestURI方法 – 返回请求行中的资源名部分
getQueryString方法 – 返回请求行中的参数部分
getRemoteAddr方法 – 返回发出请求的客户机的IP地址
getMethod方法 – 返回客户机的请求方式
getContextPath方法 – 获得当前web应用的虚拟目录名称

2.3、Request获取请求头信息

getHeader(name)方法 — String
getHeaders(String name)方法 — Enumeration
getHeaderNames方法 — Enumeration
getIntHeader(name)方法 — int
getDateHeader(name)方法 — long(日期对应毫秒)

2.4、Request获取请求参数和乱码解决

2.4.1、获取请求参数

getParameter(String name) – String 通过name获得值
getParameterValues(String name) – String[] 通过name获得多值 如: 爱好
getParameterNames() – Enumeration 获得所有请求参数的name
getParameterMap() – Map key :name value: 多值

  1. public class MyServlet03 extends HttpServlet {
  2. @Override
  3. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  4. //1.getParameter(String name) -- String 通过name获得值
  5. String uname = req.getParameter("name");
  6. String uage = req.getParameter("age");
  7. System.out.println(uname+"~"+uage);
  8. //2.getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
  9. String[] likes = req.getParameterValues("like");
  10. System.out.println(likes);
  11. //3.getParameterNames() -- Enumeration<String> 获得所有请求参数的name
  12. Enumeration<String> names = req.getParameterNames();
  13. while(names.hasMoreElements()){
  14. String name = names.nextElement();
  15. String value = req.getParameter(name);
  16. System.out.println(name+"~"+value);
  17. }
  18. //4.getParameterMap() -- Map<String,String[ ]> key :name value: 多值
  19. Map<String,String[]> map = req.getParameterMap();
  20. System.out.<

发表评论

表情:
评论列表 (有 0 条评论,171人围观)

还没有评论,来说两句吧...

相关阅读

    相关 转发定向

    一、概念: 转发:由服务器端进行的页面跳转。 重定向:由浏览器端进行的页面跳转。 二、转发和重定向的作用: 在Servlet中实现页面的跳转有两种方式:转发和重

    相关 jsp转发定向

    转发:是由服务器端进行页面跳转,称为转发。 转发原理: 浏览器发送请求1到服务器,服务器内部执行forward方法跳到第二个服务器页面,第三步响应到浏览器页面。 代

    相关 转发定向

    1.转发         当客户端发送一个请求到服务器后,Web服务器调用内部的方法在容器内部完成请求处理和转发动作。可以共享request范围内的数据,客户端的URL地址不

    相关 转发定向

    区别 先来说说两者区别: 1. 转发是服务器行为,重定向是客户端行为 2. 转发是一次请求,重定向至少是两次请求 3. 转发浏览器url的地址栏不变,重定向url