IT袋

当前位置:主页 > 经验教程 > 建站编程 >

JavaWeb

JavaWeb:Request和Response(3)

时间:2024-01-19 13:40:35 来源:IT袋 作者:马勇
导读:JavaWeb,(2)把获取到的内容进行分割,内容如下: (3)把分割后端数据,存入到一个Map集合中: 注意 :因为参数的值可能是一个,也可能有多个,所以Map的值的类型为

JavaWeb

JavaWeb

(2)把获取到的内容进行分割,内容如下:

JavaWeb

(3)把分割后端数据,存入到一个Map集合中:

JavaWeb

注意:因为参数的值可能是一个,也可能有多个,所以Map的值的类型为String数组。

基于上述理论,request对象为我们提供了如下方法:

  • 获取所有参数Map集合
Map<String,String[]> getParameterMap()
  • 根据名称获取参数值(数组)
String[] getParameterValues(String name)
  • 根据名称获取参数值(单个值)
String getParameter(String name)

接下来,我们通过案例来把上述的实例演示:

前端代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
<h2>GET方式提交</h2>
<form action="req03" method="get">
    用户名:<input type="text" name="username"><br/>
    密  码:<input type="password" name="password"><br/>
    <input type="checkbox" name="hobby" value="1"> 游泳
    <input type="checkbox" name="hobby" value="2"> 爬山 <br>
    <input type="submit" value="登录">
</form>
<hr>
<br>
<br>
<h2>POST方式提交</h2>
<form action="req03" method="post">
    用户名:<input type="text" name="username"><br/>
    密码:<input type="password" name="password"><br/>
    <input type="checkbox" name="hobby" value="1"> 游泳
    <input type="checkbox" name="hobby" value="2"> 爬山 <br>
    <input type="submit" value="登录">
</form>
</body>
</html>

后端代码:

@WebServlet(value = "/req03")
public class request02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1、获取map集合
        Map<String, String[]> parameterMap = request.getParameterMap();
        parameterMap.forEach((key,values)->{
            System.out.println(key+"::"+ Arrays.toString(values));
        });
        // 2、根据参数名称获取参数值
        String username = request.getParameter("username");
        System.out.println(username);
        // 3、根据参数名称获取参数数组
        String[] hobbies = request.getParameterValues("hobby");
        System.out.println(Arrays.toString(hobbies));
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }
}

5、POST请求参数乱码解决

  • 分析出现中文乱码的原因:
    • POST的请求参数是通过request的getReader()来获取流中的数据
    • tomcat在获取流的时候采用的编码是ISO-8859-1
    • ISO-8859-1编码是不支持中文的,所以会出现乱码
  • 解决方案:
    • 页面设置的编码格式为UTF-8
    • 把tomcat在获取流数据之前的编码设置为UTF-8
    • 通过request.setCharacterEncoding(“UTF-8”)设置编码,UTF-8也可以写成小写

相关阅读

  • dns服务器未响应怎么修复 分享dns未响应最简单的修复办法

    dns服务器未响应怎么修复 分享dns未响应最简单的修复办法

    今天为大家介绍dns服务器未响应怎么修复和分享dns未响应最简单的修复办法的教程内容,继续往下看吧! 很多人在浏览网页时,经常会遇到DNS服务器未响应的情况,那么什么是DNS服务器?DNS未

  • 个人网站备案流程 工信部个人网站备案过程讲解

    个人网站备案流程 工信部个人网站备案过程讲解

    您可能不了解个人网站备案流程和工信部个人网站备案过程讲解的IT小经验,继续往下看吧! 嗨,大家好,我是希留。 前面文章介绍了下使用https访问网站的相关配置,然后发现访问https时灵时

  • HTTP状态码深入解析:401 Unauthorized

    HTTP状态码深入解析:401 Unauthorized

    为大家介绍HTTP状态码深入解析的教程内容,接下来一起来看看吧。 在互联网通信中,HTTP状态码是用来表示服务器响应的一种方式。 当我们在浏览器中访问网页时,服务器会返回一个状态码,

  • 什么是跨站脚本 XSS攻击?

    什么是跨站脚本 XSS攻击?

    为网友解答什么是跨站脚本的相关话题,下面为详细的介绍。 跨站脚本(Cross-Site Scripting,XSS)是一种常见的网络安全漏洞,攻击者利用该漏洞在受害者的网页中插入恶意脚本,从而能够获取