JAVAWEB第二天
requst对象测试
request特点:
-
1.一次请求,多次转发
-
2.请求转发后,地址栏中的地址不发生改变
-
3.request请求转发可以携带参数
方法名 | 描述 |
---|---|
getParameter(String key) | 获取参数 |
setCharacterEncoding(String encoding) | 设置请求编码 |
getRequestDispatch(String path).forward(req,resp) | 请求转发 |
request中getParameter()和getAttribute()区别:
-
getParameter()用于获取表单或直接在地址栏中拼接的参数(例如:在后台界面可以直接获取登陆界面表单传输的值,需要name属性作为key。不需要进行setParameter设置。)
-
getAttribute()只能获取通过setAttribute()设置的参数
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String errMsg = "";
Object obj = session.getAttribute("errMsg");
if(obj!=null){
errMsg = (String)obj;
session.removeAttribute("errMsg");
}
%>
//login.jsp
<%--
action指定表单信息发送的服务器地址
method指定发送请求的方式
--%>
<p style="color: red;"><%=errMsg%></p>
<form action="control.jsp">
<input type="text" name="uname" placeholder="请输入用户名">
<input type="password" name="pwd" placeholder="请输入密码">
<input type="submit" value="登录">
</form>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>模拟后台控制地址</title>
</head>
<body>
<%
//control.jsp
//获取请求中携带的信息
String uname = request.getParameter("uname");
String pwd = request.getParameter("pwd");
if("user".equals(uname) && "pwd".equals(pwd)){
//将用户名存储起来作为标示
session.setAttribute("uname",uname);
response.sendRedirect("person.jsp");
}else{
session.setAttribute("errMsg","登录失败");
response.sendRedirect("login.jsp");
}
%>
用户名:<%=uname%>
<br>
密码:<%=pwd%>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Object obj = session.getAttribute("uname");
if(obj==null){
response.sendRedirect("login.jsp");
return;
}
%>
<h4>这里是个人中心</h4>
<p>欢迎登陆<%=obj%></p>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
Object obj = session.getAttribute("uname");
if(obj==null){
response.sendRedirect("login.jsp");
return;
}
%>
<h4>这里是购物车</h4>
</body>
</html>