一、HttpServletRequest对象的常用方法
(1)获取请求的方式:
System.out.println(request.getMethod());
(2)获取请求的完整路径:
System.out.println(request.getRequestURL());
(3)获取请求部分路径:
System.out.println(request.getRequestURI());
(4)获取请求的参数字符串:
System.out.println(request.getQueryString());
(5)获取请求的协议版本:
System.out.println(request.getProtocol());
(6)获取请求的访问路径:
System.out.println(req.getContextPath());
二、获取请求参数的方法
(1)request.getParameter("参数名")--------获取指定参数名的参数值
注:
1.表单提交:参数名表示的是表单元素的name属性值
2.地址栏输入:参数名表示的是“?键=值&键=值”中的键
(2)request.getParameterValues("参数名")------获取指定参数名的所有的参数值
三、 请求乱码的问题
乱码原因: 默认解析编码不支持中文 。Tomacat 8以上版本get请求不乱码
解决方法:
(1)对任意请求方式都有效(一次只能处理一个参数)
new String(request.getParameter("参数名").getBytes("ISO-8859-1"),"UTF-8");
(2) 只针对post请求有效(处理所有参数)
request.setCharacterEncoding("UTF-8");
四、请求转发:一种跳转方式
request.getRequestDispatcher("index.jsp").forward(req,resp);
特点:1.服务端跳转
2.地址栏不会发生改变
3.只有一次请求
4.数据可以共享
五、请求作用域
只在一次请求中有效,即是只在一次请求转发中有效!!!
request.setAttribute("参数名",“参数值”); //设置作用域(任意类型的数据)
request.getAttribute("userName",unname); //获取作用域的值
request.removeAttribute("userName",unname); //删除作用域