1.HttpServletRequest获取参数
String getParameter(String name):通过指定名称获取参数值
String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时。
Enumeration getParameterNames(): 获取所有参数的名字
Map getParameterMap():获取所有参数对应的Map,其中key为参数名,value为参数值。
2.传递及获取参数的方式
方式:GET和POST
GET:
(1)地址栏中直接给出参数:http://localhost/param/ParamServlet?a1=aa&a2=a2
(2)超链接中给出参数:
<h1>链接请求</h1>
<a href="/HelloWord_war_exploded/hello?name=张三">点击</a>
(3)表单中给出的参数:<form method="GET" acton="paramservelt">....</form>
POST:
(1)表单中给出的参数:<form method="GET" acton="paramservelt">....</form>
<h1>表单提交</h1>
<form action="/HelloWord_war_exploded/hello?" method="get">
姓名:<input type="text" name="name"><br>
年龄:<input type="text" name="age"><br>
爱好:
<input type="checkbox" value="1" name="favor">篮球
<input type="checkbox" value="2" name="favor">足球
<input type="checkbox" value="3" name="favor">游泳
<br>
<input type="submit" value="提交">
</form>
- String getParameter(String name)单参数获取
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class Test01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
*单值接收
* */
// 根据请求中的key来获得值
String name = req.getParameter("name");
String age = req.getParameter("age");
// 不适合接收多选,他只能接收到多选中的第一个
// String favor = req.getParameter("favor");
System.out.println(name);
System.out.println(age);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
- HttpServletRequest多参获取
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class Test01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
*多值接收
* */
// 接收多选
String[] favors = req.getParameterValues("favor");
for (String val : favors) {
System.out.println(val);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
- Enumeration getParameterNames()的使用
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
public class Test02 extends HttpServlet {
/*
* getParameterNames用于获得表单中文本域的所有的name,适合动态表单
* */
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获得表单中所有文本域的name
Enumeration<String> names = req.getParameterNames();
while (names.hasMoreElements()) {
// 获得每个文本域的name
String s = names.nextElement();
// 根据文本域的name来获得值
String[] values = req.getParameterValues(s);
for (String value : values) {
System.out.println(value);
}
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}
- Map getParameterMap()取值
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;
public class Test03 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获得表单中所有文本域的name和值,以map方式存储
Map<String, String[]> map = req.getParameterMap();
// 获得map的key(就是表单中文本域的name集合)
Set<String> set = map.keySet();
for (String name : set) {
// 获得每个文本域所对应的值
String[] vals = map.get(name);
System.out.println(name);
for(String val : vals) {
System.out.println(val);
}
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
}