Get和Post请求和如何在Servlet中获取请求信息

1.Get请求 和Post请求
1).使用GET方式传递参数:
①.在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式GET。
②.如果网页中的<form>表单元素的method属性被设置为了“GET”。浏览器提交这个FORM表单时生成的Http请求消息的请求方式也为GET。
③.使用GET请求方式给WEB服务器传递参数的格式:http://www.zzz.com/counter.jsp?name=1&password=111
④.使用GET方式传送的数据量一般限制在1KB以下。

 

http://localhost:8080/Servlet/hello.jsp?user=1&password=1    

2).使用POST方式传递参数:
①. POST 请求方式主要用于向WEB服务器端程序提交form表单中的数据:form 表单的method 置为POST
②.POST 方式将各个表单字段元素及其数据作为Http消息的实体内容发送给WEB服务器,传送的数据量要比使用GET方式传送的数据量大得多。

 

 

POST /Example04/index.jsp HTTP/1.1  
Referer: http://localhost:8080/Example04/form.html  
Content-Type: application/x-www-form-urlencoded  
Host: localhost:8080  
Content-Length: 30  

username=zhangsan&password=123           --请求体中传送参数

2.如何在Servlet中获取请求信息:
1).servlet的service()方法用于应答请求:因为每次请求都会调用service()方法
public void service(ServletRequest request, ServletResponse response) 
throws ServletException, IOException {}

ServletRequest:封装了请求信息, 可以从中获取到任何的请求信息。
ServletResponse:封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现
这两个接口的实现类都是服务器给予实现的,并在服务器调用service方法时传入。
2). ServletRequest:
①.获取请求参数 
-->String getParameter(String name):  根据请求参数的名字,返回参数值。若请求的参数有多个值(如CheckBox),该方法只能获取到第一个提交的值。
代码:

 

	String user = request.getParameter("user");
			String password = request.getParameter("password");
			System.out.println("   user:"+user+"   password:"+password);
//执行结果:
// user:111   password:111

-->String[] getParameterValues(String name) 根据请求参数的名字,返回请求参数对应的字符串数组
代码:

 

String[] interestings = request.getParameterValues("interesting");
			for(String interest:interestings){
				System.out.println("--"+interest);
//--foot
//--game
//--shopping

-->Enumeration getParameterNames() 返回参数名对应的Enumeration 对象,
类似于ServletConfig(或ServletContext)的getInitParameterNames()方法
代码:

 

Enumeration<String> names=request.getParameterNames();
				while(names.hasMoreElements()){
					String name=names.nextElement();
					String value=request.getParameter(name);
					System.out.println("--"+name+":"+value);
				}
//--user:111
//--password:111
//--interesting:foot	

-->Map getParameterMap() 返回请求参数的键值对: key:参数名  value:参数值. String 数组类型。
代码:

 

Map<String, String[]> map =  request.getParameterMap();
			for(Map.Entry<String,String[]> entry:map.entrySet()){
				System.out.println("**"+entry.getKey()+":"+Arrays.asList(entry.getValue()));
			}
//**user:[111]
//**password:[111]
//**interesting:[foot, game, shopping]

②.获取请求的URI

 

Map<String, String[]> map =  request.getParameterMap();
			for(Map.Entry<String,String[]> entry:map.entrySet()){
				System.out.println("**"+entry.getKey()+":"+Arrays.asList(entry.getValue()));
			}
//**user:[111]
//**password:[111]
//**interesting:[foot, game, shopping]

③.获取请求方式:

 

	String requestMethod=httpServletRequest.getMethod();
			System.out.println(requestMethod);  //   GET

④.获取GET的查询字符串:

 

			String  query= httpServletRequest.getQueryString();
			System.out.println(query);  	
//   user=111&password=111&interesting=foot&interesting=game&interesting=shopping

⑤.和attribute相关的几个方法
3).HttpServletRequest:是ServletRequest的子接口。
 针对于HTTP请求所定义。里边包含了大量获取HTTP 请求相关的方法。

4).ServletResponse:封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现
①.!!getWriter():返回PrintWriter对象,调用该对象的print()方法, 将把print()中的参数直接打印到客户的浏览器上
PrintWriter out= response.getWriter();
out.println("helloworld...");
②.设置响应的内容类型:response.setContentType("application/msword");

③.void sendRedirect(String location):请求的重定向。(此方法为HttpServletResponse 中定义)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值