精华内容
下载资源
问答
  • HttpServletRequest 获取参数

    万次阅读 2018-07-12 15:28:56
    1 HttpServletRequest获取参数方法可以使用HttpServletRequest获取客户端的请求参数,相关方法如下:String getParameter(String name):通过指定名称获取参数值;String[] getParameterValues(String name):通过...
    1 HttpServletRequest获取参数方法
    可以使用HttpServletRequest获取客户端的请求参数,相关方法如下:
    • String getParameter(String name):通过指定名称获取参数值;
    • String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时;
    • Enumeration getParameterNames():获取所有参数的名字;
    • Map getParameterMap():获取所有参数对应的Map,其中key为参数名,value为参数值。


    2 传递参数的方式
    传递参数的方式:GET和POST。
    GET:

    • 地址栏中直接给出参数:http://localhost/param/ParamServlet?p1=v1&p2=v2;
    • 超链接中给出参数:<a href=” http://localhost/param/ParamServlet?p1=v1&p2=v2”>???</a>
    • 表单中给出参数:<form method=”GET” action=”ParamServlet”>…</form>
     
    POST:

    • 表单中给出参数:<form method=”POST” action=”ParamServlet”>…</form>

    无论是GET还是POST,获取参数的方法是相同的。

    String s1 = request.getParameter(“p1”);//返回v1

    String s2 = request.getParameter(“p2”);//返回v2

    3 多值参数

    例如在注册表单中,如果让用户填写爱好,那么爱好可能就是多个。那么hobby参数就会对应多个值:


    4 获取所有参数,并封装到Map中

    request.getParameterMap()方法返回Map类型,对应所有参数。其中Map的key对应参数的名字;Map的value对应参数的值


    转载自传智播客Java培训学院




    展开全文
  • HttpServletRequest 获取参数HttpServletRequest 获取参数方法 可以使用 HttpServletRequest 获取客户端的请求参数,相关方法如下: String getParameter(String name):通过指定名称获取参数值; ...

    本系列博客汇总在这里:请求对象 request 和响应对象 response 汇总


    一、HttpServletRequest 获取参数

    1. HttpServletRequest 获取参数方法
      可以使用 HttpServletRequest 获取客户端的请求参数,相关方法如下:
      (1)String getParameter(String name):通过指定名称获取参数值;
      (2)String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的 name 时;
      (3)Enumeration getParameterNames():获取所有参数的名字;
      (4)Map getParameterMap():获取所有参数对应的 Map,其中 key 为参数名,value 为参数值。

    2. 传递参数的方式
      传递参数的方式:GET 和 POST。
      (1)GET:
      ① 地址栏中直接给出参数:http://localhost/param/ParamServlet?p1=v1&p2=v2;
      ② 超链接中给出参数:<a href=” http://localhost/param/ParamServlet?p1=v1&p2=v2”>???</a>
      ③ 表单中给出参数:<form method=”GET” action=”ParamServlet”>…
      ④ Ajax 暂不介绍
      (2)POST:
      ① 表单中给出参数:…
      ② Ajax 暂不介绍

    3. 单值参数的接收
      (1)单值参数包括单选,单值下拉框,文本,隐藏域
      (2)无论是 GET 还是 POST,获取参数的方法是相同的。
      示例

      String s1 = request.getParameter(“p1”);//返回v1
      String s2 = request.getParameter(“p2”);//返回v2
      

      (3)通过地址栏访问
      HelloServlet(源码见文末)在这里插入图片描述
      web.xml
      在这里插入图片描述
      部署项目以后启动 tomcat,地址栏访问 http://localhost/reqresp_demo2/hello?name=weiyuxuan&age=21
      在这里插入图片描述
      (4)通过链接访问
      新建 html 文件(源码见文末)
      11111
      重启 tomcat 测试
      在这里插入图片描述
      (5)通过表单访问
      HelloServlet(源码见文末)
      在这里插入图片描述
      web.xml
      在这里插入图片描述
      结果
      在这里插入图片描述
      注意:当我们选择多个 爱好 选项的时候,可以观察到只能接收到一个值,更多详见多值参数的接收

    二、单值参数的接收过程说明

    在这里插入图片描述

    三、多值参数的接收

    多值参数主要就是多选 checkbox

    • 例如在注册表单中,如果让用户填写爱好,那么爱好可能就是多个。那么hobby参数就会对应多个值:
      在这里插入图片描述
      在这里插入图片描述

    四、以上操作完整源码

    • HelloServlet

      package com.wyx.servlet;
      import java.io.IOException;
      import java.util.Enumeration;
      import javax.servlet.ServletException;
      import javax.servlet.http.HttpServlet;
      import javax.servlet.http.HttpServletRequest;
      import javax.servlet.http.HttpServletResponse;
      
      public class HelloServlet extends HttpServlet
      {
      	public void doGet(HttpServletRequest request, HttpServletResponse response)
      			throws ServletException, IOException
      	{
      		/**
      		 * 单值接收
      		 */
      		// 根据请求中的key来获得值
      		String name = request.getParameter("name");
      		String age = request.getParameter("age");
      		String gender = request.getParameter("gender");
      		String job = request.getParameter("job");
      		String introduce = request.getParameter("introduce");
      		// 不适合接收多选,它只能接收到多选中的第一个
      		String favor = request.getParameter("favor");
      
      		System.out.println(name);
      		// 数据类型转换
      		System.out.println(new Integer(age));
      		System.out.println(gender);
      		System.out.println(job);
      		System.out.println(introduce);
      		System.out.println(favor);
      		System.out.println("---------------------------------------");	
      				
      		/**
      		 * 多值接收
      		 */
      		// 接收多选
      		String[] vals = request.getParameterValues("favor");
      		for (String val : vals)
      		{
      			System.out.print(val + ",");
      		}
      	}
      
      	@Override
      	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
      			throws ServletException, IOException
      	{
      		doGet(req, resp);
      	}
      }
      
    • web.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app version="2.5" 
      	xmlns="http://java.sun.com/xml/ns/javaee" 
      	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
      	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <servlet>
          <servlet-name>HelloServlet</servlet-name>
          <servlet-class>com.wyx.servlet.HelloServlet</servlet-class>
        </servlet>
      
        <servlet-mapping>
          <servlet-name>HelloServlet</servlet-name>
          <url-pattern>/hello</url-pattern>
        </servlet-mapping> 
         
      </web-app>
      
    • 1.html

      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Insert title here</title>
      </head>
      <body>
      <h1>a链接request接收参数</h1>
      <hr>
      <a href="/reqresp_demo2/hello?name=weiyuxuan&age=21">点击</a>
      <hr>
      <h1>表单方式来提交数据</h1>
      <form action="/reqresp_demo2/hello" method="post">
      	姓名:<input name="name" type="text"><br>
      	年龄:<input name="age" type="text"><br>
      	性别:<input name="gender" type="radio" value="1">&nbsp;
      		<input name="gender" type="radio" value="0"><br>
      	职位:<select name="job">
      			<option value="1">教授</option>
      			<option value="2">副教授</option>
      		</select>
      		<br>
      	简介:<textarea rows="10" cols="20" name="introduce"></textarea>
      	<br>
      	爱好:<input name="favor" type="checkbox"  value="1">篮球&nbsp;
      		<input name="favor" type="checkbox"  value="2">足球&nbsp;
      		<input name="favor" type="checkbox"  value="3">羽毛球&nbsp;
      		<br>
      	<input type="submit" value="提交">
      </form>
      </body>
      </html>
      

      工程文件下载,本文件没有多值参数传递的代码(上面源码里面有),请自行添加,如下图:
      在这里插入图片描述

    如有错误,欢迎指正!

    展开全文
  • 利用HttpServletRequest获取参数值ReqDemo.javapackage com.xieth.web;import java.io.IOException; import java.io.PrintWriter; import java.util.Arrays; import java.util.Enumeration; import java.util.Map; ...

    利用HttpServletRequest获取参数值


    ReqDemo.java

    package com.xieth.web;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Arrays;
    import java.util.Enumeration;
    import java.util.Map;
    import java.util.Map.Entry;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class ReqDemo extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
    
            resp.setContentType("text/html;charset=gb2312");
            PrintWriter out = resp.getWriter();
            Enumeration<String> enumeration = req.getParameterNames();
            while (enumeration.hasMoreElements()) {
                String name = enumeration.nextElement();
                String value = req.getParameter(name);
                out.println("<h2>" + name + ":" + value + "</h2>");
            }
    
            Map<String, String[]> map = req.getParameterMap();  //获取Map集合
            for (Entry<String, String[]> entry : map.entrySet()) {
                out.println("<h1>" + entry.getKey() + "->"
                        + Arrays.asList(entry.getValue()) + "</h1>");
            }
            out.close();
        }
    
    }
    

    login.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <form action="ReqDemo">
            account: <input type="text" name="account"> password: <input
                type="password" name="password"> <input type="checkbox"
                name="in" value="shopping"> shopping <input type="checkbox"
                name="in" value="dance"> dance <input type="checkbox"
                name="in" value="ball"> ball <input type="checkbox" name="in"
                value="sing"> sing <input type="checkbox" name="in"
                value="sport"> sport <input type="submit" value="submit">
        </form>
    </body>
    </html>

    运行结果:
    这里写图片描述
    这里写图片描述


    展开全文
  • 当前端提交大量数据至后台,且后台无法直接将前端提交的数据映射到具体的实体类时,就该考虑如何获取才能使我们更方便的操作数据。一个一个取是不可能的,这辈子是不可能一个个取的。所以要么转Map,要么转实体。好了...
    public class RequestUtil {
    /**
         * 获取request中的参数集合转对象
         * 用法:User user = (User) RequestUtil.getParameterObject(request, new User())
         * @param request obj
         * @return
         */
        public static Object getParameterObject(HttpServletRequest request, Object obj) {
            Map map = request.getParameterMap();
            try {
                BeanUtils.populate(obj, map);
                return obj;
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            }
            return null;
        }
        /**
         * 获取request中的参数集合转Map
         * Map<String,String> parameterMap = RequestUtil.getParameterMap(request)
         * @param request
         * @return
         */
        public Map<String, String> getParameterMap(HttpServletRequest request) {
            Map<String, String> map = new HashMap<>();
            Enumeration<String> paramNames = request.getParameterNames();
            while (paramNames.hasMoreElements()) {
                String paramName = paramNames.nextElement();
                String[] paramValues = request.getParameterValues(paramName);
                if (paramValues.length == 1) {
                    String paramValue = paramValues[0];
                    if (paramValue.length() != 0) {
                        map.put(paramName, paramValue);
                    }
                }
            }
            return map;
        }
    }
    
    展开全文
  • Form Data,后端就可以从 request 中获取参数了 说明 这部分说的好像不是很清楚,等我学会了再补充 服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行...
  • HttpServletRequest request = ServletActionContext.getRequest(); String username = new String(request.getParameter("username").getBytes(  "ISO8859-1"), "UTF-8");
  • HttpServletRequest参数获取HttpServletRequest详解

    万次阅读 多人点赞 2018-07-28 23:32:32
    --------------------------HttpServletRequest参数获取,...HttpServletRequest获取参数(重要) 1 HttpServletRequest获取参数方法 可以使用HttpServletRequest获取客户端的请求参数,相关方法如下:...
  • 通过HttpServletRequest接收请求来的参数, get请求 public class controller1 { @RequestMapping(value = "/", method = {RequestMethod.POST}) public String con001(HttpServletRequest request) throws ...
  • HttpServletRequest获取中文参数乱码问题

    千次阅读 多人点赞 2020-03-09 20:44:36
    HttpServletRequest获取中文参数乱码问题 ​ 我们在开发的过程中,不可避免的会遇到前后端的数据通信问题,又不可避免的会遇到数据为中文的情况,初学者在毫不知情中,就遭遇了自己的第一次中文乱码问题,今天,我们...
  • 获取 HttpServletRequest 所有参数封装在map集合中  /** * 解析第三方返回值 * * @param request * 请求 * @return map */ private Map analyseCallbackRequest(HttpServletRequest reque...
  • 除了@RequestBody方式外,我们还可以通过HttpServletRequest方式获取参数。 比如参数是: { "code": "xxx" } 获取方式: import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import javax....
  • Enumeration em = request.getParameterNames();  while (em.hasMoreElements()) {  String name = (String) em.nextElement();  String value = req.getParameter(name);...根据参数名获取参数
  • 可以使用HttpServletRequest获取客户端的请求参数,相关方法如下: String getParameter(String name):通过指定名称获取参数值(已知参数名,单值参数的接收); String[] getParameterValues(String name):通过...
  • HttpServletRequest获取post的参数

    千次阅读 2018-11-23 09:02:00
    HttpServletRequest获取post的参数 同事的错误写法: public @ResponseBody String registerLogin(HttpServletRequest request, HttpServletResponse response) { // String userName = request.getParameter(...
  • 获取请求方式、请求内容 request.getMethod() 获取请求提交方式,如POST、GET等 request.getContentType() 获取请求类型,示例值:application/json ,multipart/form-data, application/xml等 可能含有请求...
  •  * 获取客户端请求参数中所有的信息  * @param request  * @return  */  private Map&lt;String, String&gt; getAllRequestParam(final HttpServletRequest request) {  Map&lt;String, String&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,103
精华内容 51,641
关键字:

httpservletrequest获取参数