Request&Response(重定向&转发)

本文详细介绍了Servlet中的Request和Response对象的使用,包括获取请求信息、处理乱码问题以及响应输出。同时,文章深入探讨了重定向和转发的区别及其在实际操作中的应用,为理解Servlet交互提供了全面的指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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<String,String[ ]> key :name value: 多值

public class MyServlet03 extends HttpServlet {
   
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   
        //1.getParameter(String name) -- String 通过name获得值
        String uname = req.getParameter("name");
        String uage = req.getParameter("age");
        System.out.println(uname+"~"+uage);
        //2.getParameterValues(String name) -- String[] 通过name获得多值 如: 爱好
        String[] likes = req.getParameterValues("like");
        System.out.println(likes);
        //3.getParameterNames() -- Enumeration<String> 获得所有请求参数的name
        Enumeration<String> names = req.getParameterNames();
        while(names.hasMoreElements()){
   
            String name = names.nextElement();
            String value = req.getParameter(name);
            System.out.println(name+"~"+value);
        }
        //4.getParameterMap() -- Map<String,String[ ]> key :name value: 多值
        Map<String,String[]> map = req.getParameterMap();
        System.out.println(map);
    }
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>

<head>
    <title>request获取请求参数</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值