javaweb session对象

1.什么是回话
一个回话就是浏览器与服务器之间的一次通话,包含浏览器与服务器之间的多次请求、响应过程.session对象用来存储有关用户的所有信息.

2.利用回话机制实现访问控制
访问控制实例:下载电子书时,系统会提示用户登录

3.session对象常用方法
在这里插入图片描述
4.session与窗口的关系
每个session对象都与浏览器一一对应,重新开启一个浏览器,相当于重新创建一个session对象;通过超链接打开新窗口,新窗口的session与其父窗口的session相同.

5.我们开始创建session实现访问控制

(1)创建Web项目SessionDemo和User实体类
在这里插入图片描述
(2).修改web目录首页的index.jsp
在这里插入图片描述
(3).创建登录页面login.jsp
在这里插入图片描述
代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
<form action="do_login.jsp" method="post">
    <table border="1" cellpadding="10" style="margin: 0px auto">
        <tr>
            <td align="center">用户名</td>
            <td><input id="uname" type="text"  name="username"></td>
        </tr>


        <tr>
            <td align="center">密码</td>
            <td><input id="upwd" type="password" name="password"></td>
        </tr>
        <tr  align="center">
            <td colspan="2">
                <input type="submit" value="提交">
                <input type="reset"  value="重置">
            </td>
        </tr>
    </table>
</form>
        String errMsg= (String) session.getAttribute("errMsg");
        if (errMsg !=null){
        out.print("<script>alert('"+errMsg+"')</script>");
        }
</body>

(4)处理登录页面do_login.jsp
在这里插入图片描述
代码如下

<%@ page import="net.ysy.bean.User" %><%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2020/3/31
  Time: 21:13
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录跳转页面</title>
</head>
<body>
<%
    request.setCharacterEncoding("utf-8");
    //获取登录表单信息
    String username=request.getParameter("username");
    String password=request.getParameter("password");

    //判断登录用户名和密码
    if (username.equals("佳宁") && password.equals("666")) {
        //创建用户对象
        User user=new User();
        //设置用户对象属性
        user.setUsername(username);
        user.setPassword(password);
        //将登录用户信息保存到session里
        session.setAttribute("LOGINED_USER",user);
        //清除session里的errMsg属性
        if (session.getAttribute("errMsg")!=null){
            session.removeAttribute("errMsg");
        }
        //采用重定向,跳转到首页
        response.sendRedirect("index.jsp");
        }else{
        //在session里创建errMsg属性
        session.setAttribute("errMsg","用户名或者密码错误,请重新登录");
        //采用从定向,跳转到登录页面
        response.sendRedirect("login.jsp");
    }

%>

</body>
</html>

(5)创建添加新闻页面,增加登录验证.
在这里插入图片描述
(6).启动服务器查看效果
在这里插入图片描述
(7)访问登录页面
在这里插入图片描述
(8)跳转登录成功成功
在这里插入图片描述
(9).重启服务器,我们直接访问add_news新闻页面,会弹出消息框
在这里插入图片描述
如果出现乱码问题,我们需要在do_login.jsp指定utf-8编码.

Cookie与sesion的比较
1.session是在服务器保存用户信息,Cookie是在客户端保存用户信息
2.session中保存的是对象,Cookie保存的是字符串
3.session随回话结束而关闭,Cookie可以长期保存在客户端
4.Cookie通常用于保存不重要的用户信息,重要的信息使用session保存.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值