java-获取传递的请求参数
2018-01-02 11:53
387 查看
获取传递的请求参数
GET方式: 参数放在URI后面POST方式: 参数放在实体内容中
获取GET方式参数:request.getQueryString();
获取POST方式参数: request.getInputStream();
实例:
package servlet; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.nio.Buffer; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class demo4 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //设置编码格式 response.setContentType("text/html;charset=utf-8"); //printwriter是向文本输出流打印对象的格式化表示形式,可以在html页面打印数据,并可以实现布局 PrintWriter out = response.getWriter(); out.write("<br/>------我是get提交参数------<br/>"); String value = request.getQueryString(); out.write(value); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //设置编码格式 response.setContentType("text/html;charset=utf-8"); //printwriter是向文本输出流打印对象的格式化表示形式,可以在html页面打印数据,并可以实现布局 PrintWriter out = response.getWriter(); out.write("<br/>------我是post提交参数------<br/>"); InputStream value = request.getInputStream(); byte[] buf = new byte[1024]; int len = 0; while((len=value.read(buf))!=-1){ String values = new String(buf,0,len); out.write(values); } } }
简单优化:实现接收所有提交的请求参数,不可获取多选题的全部参数
package servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /* 单一获取请求参数 String name = request.getParameter("name"); String password = request.getParameter("password"); System.out.println(name+"="+password); getParameter(name):根据参数名得到参数值(只能获取一个值的参数) getParameterValues("hobit"):可以获取一个参数多个值 request.getParameterNames(); 获取所有参数名称列表 */ @SuppressWarnings("serial") public class demo4 extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //设置编码格式 response.setContentType("text/html;charset=utf-8"); //printwriter是向文本输出流打印对象的格式化表示形式,可以在html页面打印数据,并可以实现布局 PrintWriter out = response.getWriter(); out.write("<br/>------"+request.getMethod()+"方式提交------<br/>"); /* //接收name,password属性 String name = request.getParameter("name"); String password = request.getParameter("password"); out.write("<br/>"+name+"="+password+"<br/>"); */ Enumeration<String> enums = request.getParameterNames(); while(enums.hasMoreElements()){ String paramName = enums.nextElement(); String paramvalue = request.getParameter(paramName); out.write("<br/>"+paramName+"="+paramvalue+"<br/>"); } } @SuppressWarnings("unused") protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
超级优化:可实现多选题的全部获取
package servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /* 单一获取请求参数 String name = request.getParameter("name"); String password = request.getParameter("password"); System.out.println(name+"="+password); getParameter(name):根据参数名得到参数值(只能获取一个值的参数) getParameterValues("hobit"):可以获取一个参数多个值 request.getParameterNames(); 获取所有参数名称列表 */ @SuppressWarnings("serial") public class demo4 extends< 4000 /span> HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //设置编码格式 response.setContentType("text/html;charset=utf-8"); //printwriter是向文本输出流打印对象的格式化表示形式,可以在html页面打印数据,并可以实现布局 PrintWriter out = response.getWriter(); out.write("<br/>------"+request.getMethod()+"方式提交------<br/>"); /* //接收name,password属性 String name = request.getParameter("name"); String password = request.getParameter("password"); out.write("<br/>"+name+"="+password+"<br/>"); */ Enumeration<String> enums = request.getParameterNames(); while(enums.hasMoreElements()){ String name = enums.nextElement(); if("hobit".equals(name)){ out.write(name+":"); String[] hobits = request.getParameterValues("hobit"); for(String h : hobits){ out.write(h+" "); } out.write("<br/>"); }else{ String paramName = enums.nextElement(); String paramvalue = request.getParameter(paramName); out.write("<br/>"+paramName+"="+paramvalue+"<br/>"); } } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
demo.jsp
<%@ page language="java" import="java.util.*" contentType="text/html; charset=GB2312" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <base href="<%=basePath%>"> <title>测试请求次数</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <form action="servlet/demo3" method="Get"> 用户:<input type="text" name="name"><br/> 密码:<input type="password" name="password"><br/> 性别: <input type="radio" name="gender" value="man">男 <input type="radio" name="gender" value="wuman">女<br> 籍贯: <select name="jiguan"> <option value="gd">广东</option> <option value="gx">广西</option> <option value="hn">湖南</option> </select><br/> 爱好: <input type="checkbox" name="hobit" value="lq">篮球 <input type="checkbox" name="hobit" value="zu">足球 <input type="checkbox" name="hobit" value="ymq">羽毛球<br/> 个人简介: <textarea rows="5" cols="10" name="info"></textarea><br/> 隐藏域: <input type="hidden" value="001"><br/> <input type="submit" value="Get提交"> </form> <form action="servlet/demo3" method="Post"> <input type="text" name="name"> <input type="password" name="password"> <input type="submit" value="Post"> </form> </body> </html>
相关文章推荐
- $.ajax()post方式请求参数无法传递,request.getParameter()无法获取
- Javascript 获取请求路径中传递的参数
- JavaWeb 初步学习一(ServletConfig参数获取,ServletContext共享数据与请求转发)
- java HTTP请求URL 获取其跳转后地址及参数
- 工作随笔——Java调用Groovy类的方法、传递参数和获取返回值
- java Http中put请求传递参数调用接口
- JAVA Request请求获取的方法,不包含参数方法【学习笔记】
- java获取当前请求的url地址及各参数
- 一周乱弹(1,绝对路径中的 / 代表什么 2,jsp include标签 3,java 获取ip地址问题,4,springMVC @RequestMapping 传递多个参数5,jQuery模糊搜索)
- 使用Struts2获取请求参数:Ljava.lang.String; cannot be cast to java.lang.String
- java 流获取请求的body参数
- jquery通过ajax-json访问java后台传递参数,通过request.getParameter获取不到参数的说明
- 用java获取并传出虚拟机系统实时性能参数(3:socket传递参数)
- Java Post请求 传递Json参数
- [java] Servlet/jsp 中 获取页面所有传递参数
- java 后台实现ajax post跨域请求传递json格式数据获取json数据问题
- 解决部分手机发送get请求时传递中文参数服务器获取不到正确参数
- java post 请求参数传递,响应解析
- Java Spring Controller 获取请求参数的几种方法
- 使用uploadify3.2.1 formData传递其他参数到后台,JAVA后台获取参数方法