Request与Response常用方法

Request:

package com.lzy.servlet;

import java.io.IOException;
import java.util.Enumeration;
import java.util.TreeMap;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * request对象学习:
 * 		作用:request对象中封存了当前请求的所有请求信息
 * 		使用:
 * 			获取请求头数据
 * 					req.getMethod();//获取请求方式
 * 					req.getRequestURL();//获取请求URL信息
 * 					req.getRequestURI();//获取请求URI信息
 * 					req.getScheme();//获取协议
 * 			获取请求行数据
 * 					req.getHeader("键名");//返回指定的请求头信息
 * 					req.getHeaderNames();//返回请求头的键名的枚举集合
 * 			获取用户数据
 * 					req.getParameter("键名");//返回指定的用户数据
 * 					req.getParameterValues("键名");//返回同键不同值的请求数据(多选),返回的数组。
 * 					req.getParameterNames()//返回所有用户请求数据的枚举集合
 * 			注意:
 * 				如果要获取的请求数据不存在,不会报错,返回null。
 * 
 * 		注意:
 * 			request对象由tomcat服务器创建,并作为实参传递给处理请求的servlet的service方法。
 * @author MyPC
 *
 */
public class RequestServlet extends HttpServlet {
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
  // 获取请求头数据
		// 获取请求方式
		String method = req.getMethod();
		System.out.println(method);//GET
		//获取请求URL
		StringBuffer url=req.getRequestURL();
		System.out.println(url);//http://localhost:8080/hello/req
		//获取uri
		String uri=req.getRequestURI();
		System.out.println(uri);///hello/req
		//获取协议
		String h=req.getScheme();
		System.out.println(h);//http
 //获取请求行数据
		//获取指定的请求行信息
		String value=req.getHeader("aaa");
		System.out.println(value);//null
		String value3=req.getHeader("User-Agent");
		System.out.println(value3);//Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
		//获取所有的请求行的键的枚举
		Enumeration e=req.getHeaderNames();
		while(e.hasMoreElements()){
			String name=(String)e.nextElement();
			String value2=req.getHeader(name);
			System.out.println(name+":"+value2);
//			host:localhost:8080
//			user-agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
//			accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
//			accept-language:zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
//			accept-encoding:gzip, deflate
//			content-type:application/x-www-form-urlencoded
//			content-length:50
//			origin:http://localhost:8080
//			connection:keep-alive
//			referer:http://localhost:8080/hello/Method.jsp
//			cookie:JSESSIONID=F06ADD8E17DA805AF4902039ECB2C799
//			upgrade-insecure-requests:1
		}
		
		//获取用户数据
		String name=req.getParameter("uname");
		String pwd=req.getParameter("pwd");
		
		System.out.println(name+":"+pwd);//??????:123(此处“张三”乱码)
		String fav=req.getParameter("fav");
		System.out.println(fav);//1
		String [] favs=req.getParameterValues("fav");
		if(favs!=null){
			for(String favv:favs){
				System.out.println(favv);//1  2  3
			}
		}
		//获取所有的用户请求数据的键的枚举集合---req.getParameterNames()	
//		TreeMap<String, String> values = new TreeMap<String, String>();
//		Enumeration paramNames = req.getParameterNames();
//		while (paramNames.hasMoreElements()) {
//		        String name1 =(String) paramNames.nextElement();
//		        String value4 = req.getParameter(name1);  
//		        values.put(name1, value4);
//		    }

	}

}

Response:

package com.lzy.servlet;
/**
 * Respone对象学习:
 * 		作用:
 * 			用来响应数据到浏览器的一个对象
 * 		使用:
 * 			设置响应头
 * 				setHeader(String name,String value);//在响应头中添加响应信息,但是同键会覆盖
 * 				addHeader(String name,String value);//在响应头中添加响应信息,但是不会覆盖。
 * 			设置响应状态
 * 				sendError(int num,String msg);//自定义响应状态码。
 * 			设置响应实体
 * 				resp.getWrite().write(String str);//响应具体的数据给浏览器
 * 		设置响应编码格式:
 * 				resp.setContentType("text/html;charset=utf-8");
 * 		总结:
 * 			service请求处理代码流程:
 * 				设置响应编码格式
 * 				获取请求数据
 * 				处理请求数据
 * 					数据库操作(MVC思想)	
 * 				响应处理结果
 * 
 *
 */

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class ResponseServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
		throws ServletException, IOException {
	//获取请求信息
	         //获取请求头
	         //获取请求行
	         //获取用户数据
	//处理请求
	
	//响应处理结果
	         //设置响应头
	resp.setHeader("mouse", "two fly");
	resp.setHeader("mouse", "lzy");
	resp.addHeader("key", "thinkpad");
	resp.addHeader("key", "wolo");
	
	//设置响应编码格式
	//resp.setHeader("content-type", "text/html;charset=utf-8");
	//resp.setContentType("text/plain;charset=utf-8");//普通文本
	//resp.setContentType("text/xml;charset=utf-8");//xml格式
	resp.setContentType("text/html;charset=utf-8");//html格式
	//设置响应状态吗
	//resp.sendError(404, "this Method is not supported");
//设置响应实体
	resp.getWriter().write("<b>学习,学个屁</b>");
	
	
}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值