request.getParameter讲解

Posted 向阳-Y.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了request.getParameter讲解相关的知识,希望对你有一定的参考价值。

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>

以上是关于request.getParameter讲解的主要内容,如果未能解决你的问题,请参考以下文章

request.setAttribute()与getParameter() 的区别

request.getParameter() request.getInputStream()和request.getReader()三者的区别

request.getParameter()request.getInputStream()和request.getReader()

request.getParameter()不能获得值

request.getParameter() 和request.getAttribute() 区别

request.getAttribute() 和 request.getParameter() 有何区别?