第一种:
方法:
String name = request.getParameter("name");
传递参数的方式:
get请求传递参数:
1.直接在地址栏给出参数:http://localhost:8080/httprequestdemo/hello3?name=1&age=2
2.a标签的超链接给出参数:
代码:
<a href="http://localhost:8080/httprequestdemo/hello3?name=1&age=2" >fdfsdfdsfdsfds</a>
Java代码:
public class Requst extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("name");
String age = request.getParameter("age");
String job = request.getParameter("job");
System.out.println(name);
System.out.println(age);
System.out.println(job);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//定义post方式
doGet(request, response);
}
}
post方式:
post方式如果传递参数大概原理和get方式是相同的只不过是放在表单form中了,
HTML代码:
<form action="/reqresp_demo2/hello2" method="post"><br>
aihao: <input name="name" type="text"><br>
nianling : <input name="age" type="checkbox" value="1"><br>
nianling : <input name="age" type="checkbox" value="2"><br>
nianling : <input name="age" type="checkbox" value="3"><br>
favor: <input name="favor" type="radio" value="1"><br>
favor: <input name="favor" type="radio" value="2">
sub : <input type="submit" value="submit">
</form>
如果是单值传递的话,,get方式和post方式的Java代码是一样的,
但是如果是传递多值参数的话 Java代码需要更改一下,
否则只能接收到多值参数中的第一个:
java代码需要改一下:
获取代码:
String [] favor = request.getParameterValues("favor");
打印代码:
for(String fav : favor){
System.out.println(fav);
}
动态获取表单(不知道name)
getparameter()
//获取表单中所有文本域的name
Enumeration<String> names = request.getParameterNames();
//循环获取枚举中所有的内容
while(names.hasMoreElements()){
//获取每一个文本域的name
String name = names.nextElement();
//根据name获得参数的值
//为了保证获取到所有的值 因为表单可能是单值 也可能是多值
String [] values = request.getParameterValues(name);
//输出参数名和参数值
System.out.print(name + ":");
for(String val:values){
System.out.print(val );
}
//换行
System.out.println();
}