学习笔记——day43

一、请求的方式

  1. 地址栏输入
  2. 超链接
  3. Form表单
  4. ajax
  5. 请求转发
  6. 重定向

二、HttpServletRequest 对象

常用形式

1) 常用方法

常用方法描述
getRequestURL()获取客户端发出的请求时的完整 URL
getRequestURI()获取请求行中的资源名称部分(项目名称开始)
getQueryString()获取请求行中的参数部分
getMethod()获取客户端请求方式
getProtocol()获取 HTTP 版本号
getContextPath()获取 webapp 名字

2) 获取请求头

方法描述
getHeader(String)获取单个请求头内容
Enumeration getHeaderNames()获取所有的请求头名称集合

3) 获取客户端请求参数(客户端提交的数据)

方法描述
getParameter(name)获取指定名称的参数
getParameterValues(Stringname)获取指定名称参数的所有值
getParameterNames()获取一个包含请求消息中的所有参数名的 Enumeration 对象
getParameterMap()返回一个保存了请求消息中的所有参数名称和值的 Map 对象

乱码问题

服务器与客户端编码统一

Get:

参数在请求行里 默认使用ISO-8859-1
Tomcat8及以上版本 中文可能不会乱码
Tomcat7及以下版本 中文可能乱码 万鲲 → GBK进行编码 → 1011 → 服务器默认通过ISO-8859-1进行解码 万鲲
解决方法:
new String(uname.getBytes(“ISO-8859-1”),“UTF-8”);

Post:

参数在请求体里,使用页面编码
Tomcat8及以上版本 中文乱码 万鲲 前台 使用页面编码UTF-8 后台 ISO-8859-1
Tomcat7及以下版本 中文乱码 万鲲 前台 使用页面编码UTF-8 后台 ISO-8859-1
解决方法:
设置服务器默认解码字符集 针对请求体 放在使用request对象之前
req.setCharacterEncoding(“UTF-8”);

public class Servlet02 extends HttpServlet{

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// document.charset 浏览器控制台得到字符集
		// 接收前台参数   万鲲
		req.setCharacterEncoding("UTF-8");
		
		String uname = req.getParameter("uname");
		
		String upwd = req.getParameter("upwd");
		
		// 万能方法 解决乱码问题
		// String str = new String(uname.getBytes("ISO-8859-1"),"UTF-8");
		
		System.out.println("账户:" + uname + ",密码:" + upwd);
		//System.out.println(str);
	}

}

请求转发

req.getRequestDispatcher("转发的路径").forward(req,resp);

request作为域对象

通过该对象可以在一个请求中传递数据,作用范围:在一次请求中有效,即服务器跳转有效。

request.setAttribute(String name, Object o); // 设置域对象内容 
request.getAttribute(String name); // 获取域对象内容
 request.removeAttribute(String name); //删除域对象内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值