java web入门--004【servlet的service方法】

HTTP的会话方式:
①建立连接;
②发出请求信息;
③回送响应信息;
④关闭连接。


浏览器与web服务器的连接过程是短暂的,每次连接只处理一个请求和响应,对于每一个页面的访问,浏览器与web服务器都要建立一次单独的连接。


浏览器到web服务器之间的所有通讯都是完全独立分开的请求和响应对。


Servlet的service方法用于应答请求:每次请求都会调用service方法
@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
}
ServletRequest:封装了请求信息,可以从中获取到任何请求信息;
ServletResponse:封装了响应信息,如果想给用户什么响应,可以具体使用该接口的方法实现;
这两个接口的实现类都是服务器给予实现的,并在服务器调用service方法时传入。


关于ServletRequest
①String request.getParameter(String) :根据请求参数的名字,返回参数值;但是若该参数含有多个值(如CheckBox),那么只能获取到第一个提交的值。
②Enumeration<String>  request.getParameterNames():返回参数名对应的Enumeration对象
③Map<String, String[]> request.getParameterMap():返回请求参数的键值对
④String[] request.getParameterValues(String):根据请求参数的名字,返回请求参数的字符串数组。
⑤httpRequest.getMethod() 获取请求方法;
⑥httpRequest.getRequestURI()获取请求的URI;
⑦httpRequest.getRequestURL()获取请求的URL
⑧httpRequest.getQueryString()若为get请求获取?后面的请求参数
⑨httpRequest.getServletPath() 获取servlet的请求路径
例子:

 

@Override
	public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {


		//①String request.getParameter(String) 
		System.out.println("request.getParameter() test ... ");
		
		System.out.println("user:"+request.getParameter("user"));
		
		System.out.println("password:"+request.getParameter("password"));
		
		//②Enumeration<String>  request.getParameterNames()
		System.out.println("request.getParameterNames() test ... ");
		
		Enumeration<String> parameterNames = request.getParameterNames();
		
		while(parameterNames.hasMoreElements()){
			
			String nextElement = parameterNames.nextElement();
			
			System.out.println(nextElement+":"+request.getParameter(nextElement));
			
		}
		
		//③Map<String, String[]> request.getParameterMap()
		System.out.println("request.getParameterMap() test...");
		
		Map<String, String[]> parameterMap = request.getParameterMap();
		for(Map.Entry<String, String[]> entry :parameterMap.entrySet()){
			
			System.out.println(entry.getKey()+":"+Arrays.asList(entry.getValue()));
			
			
		}
		
		//④String[] request.getParameterValues(String)
		System.out.println("request.getParameterValues test ... ");
		System.out.println(Arrays.asList(request.getParameterValues("interesting")));
		
		
		
		HttpServletRequest httpRequest=(HttpServletRequest) request;
		//⑤httpRequest.getMethod() 获取请求方法;
		System.out.println("本次请求的请求方法是:"+httpRequest.getMethod());
		//⑥httpRequest.getRequestURI()获取请求的URI;
		System.out.println("本次请求的URI是:"+httpRequest.getRequestURI());
		//⑦httpRequest.getRequestURL()获取请求的URL
		System.out.println("本次请求的URL是:"+httpRequest.getRequestURL());
		//⑧httpRequest.getQueryString()若为get请求获取?后面的请求参数
		System.out.println("若请求是get方法,那么请求参数为:"+httpRequest.getQueryString());
		//⑨httpRequest.getServletPath() 获取servlet的请求路径
		System.out.println("请求的路径为:"+httpRequest.getServletPath());
		
		
	}
	

请求的url为:http://localhost:8080/JavaWeb_001/login.html

打印结果如下:

 

request.getParameter() test ... 
user:zhangsan
password:123456
request.getParameterNames() test ... 
user:zhangsan
password:123456
interesting:shopping
submit:submit
request.getParameterMap() test...
user:[zhangsan]
password:[123456]
interesting:[shopping, tv, coding]
submit:[submit]
request.getParameterValues test ... 
[shopping, tv, coding]
本次请求的请求方法是:GET
本次请求的URI是:/JavaWeb_001/loginServlet
本次请求的URL是:http://localhost:8080/JavaWeb_001/loginServlet
若请求是get方法,那么请求参数为:user=zhangsan&password=123456&interesting=shopping&interesting=tv&interesting=coding&submit=submit
请求的路径为:/loginServlet


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值