JSP的内置对象2

Response

  • response作为服务端响应给客户端的过程,仅仅是为了将服务端的请求重定向给了另一个地址
方法名描述
sendRedirect(url)重定向

登陆案例

<%
	String uname = request.getParameter("uname");
	String pwd = request.getParameter("pwd");
	if("admin".equals(uname)){
    //重定向
    response.sendRedirect("success.jsp");
  }else{
    response.sendRedirect("error.jsp");
  }
%>

response的特点

  1. 至少请求两次
  2. 地址栏中的地址会发生改变
  3. 不能携带参数

面试题:请求转发和重定向的区别

请求转发:

  1. 一次请求,多次转发
  2. 请求转发后,地址栏中的位置不会发生改变
  3. resquest请求转发可以携带参数

重定向:

  1. 至少请求两次
  2. 地址栏中的位置会发生改变
  3. 不能携带参数

Session对象

  • Session称为一次会话,浏览器的打开及关闭.例如:登陆淘宝后,在该浏览器上无论打开的哪个页面都属于一次会话(不需要重新登陆了)
方法名描述
setAttribute(key,val)设置键值对
getAttribute(key)通过键,获取值
getId()获取sessoin的id
removeAttribute(key)从session中移除指定的key
setMaxInactiveInterval(time)设置session的过期时间:秒](tomact中默认配置的过期时间是30分钟)

案例:使用session实现页面访问权限控制

<!--login.jsp-->
<%
String errMsg = "";
//登陆页面可能会被打开多次(用户想要切换账户)
Object object = session.getAttribute("reeMsg");
if(object != null){//从登陆失败后跳转过来的
errMsg = (String)object;
//移除session中的key
session.removeAttribute("errMsg")
}
%>
<p style="color:red;"><%=errMsg%></p>
<form action="control.jsp" method="post">
  <input type="text" name="uname" placeholder="请输入用户名">
  <input type="password" name="pwd" placeholder="请输入密码">
  <input type="submit" value="登录">
</form>
<!--control.jsp-->
<%
//设置请求编码格式
request.setCharacterEncoding("utf-8");
//获取表单中的参数
String uname = request.getParameter("uname");
String pwd = request.getParameter("pwd");
//对用户名及密码进行验证(操作数据库)
if("admin".equals(uname) && "admin".equals(pwd)){
  //将用户的用户名存储起来作为登录成功的标识
  session.setAttribute("uname",uname);
  //设置session的失效事件(单位:秒)
  session.setMaxInactiveInterval(5);
  //登录成功直接跳转到个人中心页面
  response.sendRedirect("person.jsp");
}else{
  //通过session存储一个错误信息
  session.setAttribute("errMsg","用户名或密码错误");
  //回到登录页面,并提示错误信息
  response.sendRedirect("login.jsp");
}
%>
<!--个人中心-->
<%
//首先需要先验证用户是否已经登录
Object object = session.getAttribute("uname");
if(object == null){//代表用户未登录,跳转到登录页面
  response.sendRedirect("login.jsp");
  return;
}
%>
<h4>个人中心</h4>
<p>欢迎,<%=object%></p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值