您的位置:首页 > 编程语言 > Java开发

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: