request.getParameter讲解-程序员宅基地

技术标签: java  前端  JavaWeb  java-ee  

JavaWeb getParameter代码片段

总结一下:request解控中四个非常重要的方法
getParameterMap();
getParameterNames();
getParameterValues(“name”)
getParameter(“name”)

下面是四个方法的例子

package com.xy.test.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class RequestTestServlet extends HttpServlet {
    
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    
        //首先是getParameterMap
        Map<String, String[]> parameterMap = request.getParameterMap();
        Set<String> keys = parameterMap.keySet();
        Iterator<String> it = keys.iterator();
        while(it.hasNext()){
    
            String key=it.next();
            //System.out.println(key);
            String[] values = parameterMap.get(key);
            System.out.println(key+"=");
            for(String value:values){
    
                System.out.println(value+",");
            }
            System.out.println();

        }
        //getParameterName直接获取所有key,不像上面那样遍历
        Enumeration<String> parameterNames = request.getParameterNames();
        while(parameterNames.hasMoreElements()){
    
            String name = parameterNames.nextElement();
            System.out.println(name);
        }
        //getParameterValues直接通过name获取所有一维数组
        String[] usernames = request.getParameterValues("username");//这里的username和password都是前端设置的name
        String[] passwords = request.getParameterValues("password");
        String[] intersets = request.getParameterValues("interest");

        //遍历一维数组
        for(String username:usernames){
    
            System.out.println(username+",");
        }
        for(String password:passwords){
    
            System.out.println(password+",");
        }
        for(String interset:intersets){
    
            System.out.println(interset+",");
        }

        //通过name获取value这个一维数组的第一个元素
        //这个方法使用最多,因为这个一维数组一般只有一个元素
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //这里用getParameterValues是因为他不止一个元素
        String[] interests = request.getParameterValues("interest");
        //获取的都是一维数组当中的第一个元素
        System.out.println(username);
        System.out.print(password);
        for(String interest:interests){
    
            System.out.println(interest);
        }



    }
}

这两种方法最常用,运用了getParameter+getParameterValues

		//通过name获取value这个一维数组的第一个元素
        //这个方法使用最多,因为这个一维数组一般只有一个元素
        //username、password、interest都是前端的name
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //这里用getParameterValues是因为他不止一个元素
        String[] interests = request.getParameterValues("interest");
        //获取的都是一维数组当中的第一个元素
        System.out.println(username);
        System.out.print(password);
        for(String interest:interests){
    
            System.out.println(interest);
        }

前端index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post" action="/request/request">
  username<input type="text" name="username"><br>
  password<input type="text" name="password"><br>
  interest
    抽烟<input type="checkbox" name="interest" value="smoke">
    喝酒<input type="checkbox" name="interest" value="drink">
    烫头<input type="checkbox" name="interest" value="tt"><br>
    <input type="submit" value="注册">
</form>

</body>
</html>
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45951067/article/details/124987978

智能推荐

JAVA线程之Thread类详解-程序员宅基地

文章浏览阅读9.7w次,点赞42次,收藏195次。ss_thread

lynis-程序员宅基地

文章浏览阅读89次。 lynis 是个不错的安全审计工具。 常见用法:lynis -c 逐项手动检查,并在最后给出建议lynis -Q 显式自动扫描,并在最后给出建议lynis -q 静默自动扫描,只给出警告 顺便说下另一个问题,在centos 5下安装lynis出错: ERROR with rpm_check_debug vs depsolve:rpmlib(Fil..._languard network scanner 2.0

## 实现MQTT数据在MySQL上的数据持久化实验_用c# 实现emqx 数据持续化到mysql-程序员宅基地

文章浏览阅读663次。一.硬件连接二.软件部分1.云服务器2.安装宝塔面板在腾讯云上安装宝塔面板:安装SSH 连接工具,安装步骤https://www.bt.cn/bbs/thread-1971-1-1.html,挂载磁盘后(查看),根据系统执行框内命令开始安装(这里我选用的是Ubuntu系统)在云服务中打开端口(入站规则和出站规则都要添加)找到腾讯云公网IP地址,在浏览器中输入该IP地址+端口(这里我采用的是8888端口)3.安装EMQX Cloud在云服务器上安装EMQX Cloud,下载链接:htt_用c# 实现emqx 数据持续化到mysql

前端表格合并单元格技巧_前端table单元格合并-程序员宅基地

文章浏览阅读1.3k次。前端表格合并单元格技巧_前端table单元格合并

python find() 和 index() 方法_python find index-程序员宅基地

文章浏览阅读3.8w次,点赞12次,收藏48次。1 find() 方法 字符串方法str.find(str, beg=0, end=len(string))检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。a = 'Hello,World'print(a.fi..._python find index

跟Android初学者分享几点经验:该如何自学Android开发?-程序员宅基地

文章浏览阅读656次,点赞22次,收藏26次。很多人在刚接触这个行业的时候或者是在遇到瓶颈期的时候,总会遇到一些问题,比如学了一段时间感觉没有方向感,不知道该从哪里入手去学习,对此我整理了一些资料如果你熟练掌握以下列出的知识点,相信将会大大增加你通过前两轮技术面试的几率!这些内容都供大家参考,互相学习。①「Android面试真题解析大全」PDF完整高清版+②「Android面试知识体系」学习思维导图压缩包一个人可以走的很快,但一群人才能走的更远。

随便推点

计算机硬盘各分区名称,电脑分区后修改磁盘名称的方法步骤-程序员宅基地

文章浏览阅读9.7k次。我们新安装的磁盘,分区之后想对磁盘命名,直接修改是不行的,那么怎么解决呢,下面就由学习啦小编给你们介绍电脑分区后修改磁盘名称的方法吧,希望能帮到大家哦!电脑分区后修改磁盘名称的方法:首选我们打开桌面上的“这台电脑”或者计算机,小编是win8系统。然后选择需要修改的磁盘右键并“重命名”,就会出来需要管理员身份怎么办,意思是这边是不能修改的。选择任务栏最又左下角处的“桌面图标”右键,然后选择“磁盘管理..._如何修改电脑磁盘名称

该网页无法正常运作127.0.0.1 将您重定向的次数过多。 尝试清除 Cookie. ERR_TOO_MANY_REDIRECTS---关于flask遇到的此状况的解决办法_127.0.0.1 重定向次数过多。-程序员宅基地

文章浏览阅读1w次。问题:原因:那我自己的例子来讲,是装饰器中,只出现红色区域代码时,重定向无限循环导致的,每次重定向又会发送一个请求,满足重定向的条件(仍然是未登录)循环…解决:对重定向后的path做一个处理(详见,问题描述中的绿色框框),return None,即可跳出重定向,留在登录界面..._127.0.0.1 重定向次数过多。

CentOS8提高篇8:CentOS制作U盘启动盘_centos启动盘-程序员宅基地

CentOS制作U盘启动盘的步骤和要注意的问题。准备相关软件和镜像文件,使用UltraISO虚拟光驱制作启动盘,注意写入方式为“RAW”。制作的CentOS7启动盘可以当U盘使用,而CentOS8启动盘只能用作启动盘。

JVM堆内存监控-VisualGC_axvgvcijvm-程序员宅基地

文章浏览阅读613次。堆内存使用情况监控准备一份代码import java.util.ArrayList;public class HeapTest { byte[] a=new byte[1024*100];//100KB public static void main(String[] args) throws InterruptedException { ArrayList&..._axvgvcijvm

一个简单的HTML网页 、个人主页网页设计(HTML+CSS)_html+css网页设计-程序员宅基地

文章浏览阅读5.2k次,点赞12次,收藏58次。个人网页设计、‍♂️个人简历制作、简单静态HTML个人网页作品、个人介绍网站模板 、等网站的设计与制作。个人网页设计网站模板采用DIV CSS布局制作,网页作品有多个页面,如 :个人介绍(文字页面)、我的作品(图片列表)、个人技能(图文页面)、在线留言(表单页面)CSS样式方面网页整体采用左右布局结构,制作了网页背景图片,导航区域每个导航背景色不同,导航背景色与页面背景呼应。 一套A+的网页应该包含 (具体可根据个人要求而定)网站布局方面:计划采用目前主流的、能兼容各大_html+css网页设计

计算机导论各章节总结,计算机导论第十三周课后总结(示例代码)-程序员宅基地

文章浏览阅读199次。一.计算机网络定义:将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,实现资源共享和信息传递的计算机系统。网络分类:(1) 按网络的地理覆盖范围可分为局域网,城域网和广域网。(2)按照网络传输媒体划分可分为有线网和无线网3.计算机网络的硬件组成(1) 网络传输媒体:双绞线、同轴电缆,光纤及无线通信等。局部使用双绞线、同轴电缆,网速要求比较高的haul,使用光纤,..._计算机导论速成课笔记