request对象
01.request:
请求对象,存储“客户端”向服务端发送的请求信息。
request常用的方法:
- String --------- getParameter(String name)
根据请求的字段名(name/key),返回字段值 value
- String[ ] --------- getParameterValues(String name)
根据请求的字段名(name/key),返回多个字段值value
- oid --------- setCharacterEncoding(" 编码格式 ")
设置编码格式(post请求方式)
- getRequestDispatcher(" b.jsp ").forward(request,response);
请求转发的方式跳转页面 - 由 当前页面------>b.jsp
ServletContext --------- getServerContext( );
获取项目的 ServletContext对象
get 和 post 提交方式
1.get提交方式
get提交方式会在地址栏上显示信息,如:
https://localhost:8080/连接/文件名?参数名 1 = 参数值1 & 参数名 2 = 参数值 2 & …
定义方式: method = “get” (一般在from标签中使用)。
注:地址栏,超链接的请求方式默认为get。
缺点:get方式会在地址栏上显示请求信息,安全性低。而且地址栏能容纳的信息有限,一般为4-5kb。
2.post提交方式
post提交方式不会显示请求信息在地址栏上(推荐使用)
常见的异常:请求方式出现乱码
原因:Tomcat编码与文件编码不一致
1.get方式出现乱码
a.单个变量修改: new String(“旧编码”,“新编码”);
b.一次性修改:在server.xml文件中的 connector 中新增 属性 URIEncoding=" UTF-8 " (推荐使用)
2.post方式出现乱码
a.request.setCharacteEncoding(“UTF-8”);
应用: 使用request实现登陆
页面1: request.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!--
定义一个注册页面,点击注册跳转到show.jsp页面
-->
<form action="show.jsp" method="post">
姓名:<input type="text" name="uname" /> </br>
年龄:<input type="text" name="uage"/></br>
密码:<input type="password" name="upsw"/></br>
爱好:</br>
<input type="checkbox" name="uhobbies" value="篮球"/>篮球、
<input type="checkbox" name="uhobbies" value="足球"/>足球、
<input type="checkbox" name="uhobbies" value="乒乓球"/>乒乓球
<input type="submit" value="注册">
</form>
</body>
</html>
页面2 show.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
request.setCharacterEncoding("UTF-8"); //设置字符集为UTF-8
String name = request.getParameter("uname");
int age = Integer.parseInt(request.getParameter("uage")) ;
String psw = request.getParameter("upsw");
String[] hobbies = request.getParameterValues("uhobbies");
%>
<%=name %>你好!注册成功!信息如下:</br>
姓名:<%=name %></br>
年龄:<%=age %></br>
密码:<%=psw %></br>
爱好:
<%
if(hobbies != null){
for(String hobby:hobbies){
out.print(hobbies+" "+" "+" ");
}
}else{
out.print("uhobbies接收异常");
}
%>
</body>
</html>