概述
本系列博客汇总在这里:请求对象 request 和响应对象 response 汇总
目录
- 一、HttpServletRequest 获取参数
- 二、单值参数的接收过程说明
- 三、多值参数的接收
- 四、以上操作完整源码
一、HttpServletRequest 获取参数
-
HttpServletRequest 获取参数方法
可以使用 HttpServletRequest 获取客户端的请求参数,相关方法如下:
(1)String getParameter(String name):通过指定名称获取参数值;
(2)String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的 name 时;
(3)Enumeration getParameterNames():获取所有参数的名字;
(4)Map getParameterMap():获取所有参数对应的 Map,其中 key 为参数名,value 为参数值。 -
传递参数的方式
传递参数的方式: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 暂不介绍 -
单值参数的接收
(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 文件(源码见文末)
重启 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">男 <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">篮球 <input name="favor" type="checkbox" value="2">足球 <input name="favor" type="checkbox" value="3">羽毛球 <br> <input type="submit" value="提交"> </form> </body> </html>
工程文件下载,本文件没有多值参数传递的代码(上面源码里面有),请自行添加,如下图:
如有错误,欢迎指正!
最后
以上就是端庄期待为你收集整理的请求对象 request 和响应对象 response(3)_ HttpServletRequest 获取参数_单值参数接收一、HttpServletRequest 获取参数二、单值参数的接收过程说明三、多值参数的接收四、以上操作完整源码的全部内容,希望文章能够帮你解决请求对象 request 和响应对象 response(3)_ HttpServletRequest 获取参数_单值参数接收一、HttpServletRequest 获取参数二、单值参数的接收过程说明三、多值参数的接收四、以上操作完整源码所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复