Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】(五)

简介: Session 是另一种记录浏览器状态的机制。不同的是Cookie保存在浏览器中,Session保存在服务器中。用户使用浏览器访问服务器的时候,服务器把用户的信息以某种的形式记录在服务器,这就是Session

Session禁用Cookie

  • Java Web规范支持通过配置禁用Cookie
  • 禁用自己项目的Cookie

56.jpg

    <?xml version='1.0' encoding='utf-8'?>
        <Context path="/ouzicheng" cookies="false">
        </Context>
  • 在META-INF文件夹下的context.xml文件中修改(没有则创建)
  • 禁用全部web应用的Cookie

57.jpg

  • 在conf/context.xml中修改

注意:该配置只是让服务器不能自动维护名为jsessionid的Cookie,并不能阻止Cookie的读写。


Session案例

使用Session完成用户简单登陆

  • 先创建User类
 private String username = null;
    private String password = null;
    public User() {
    }
    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }
    ....各种set、get方法

使用简单的集合模拟一个数据库

 private static List<User> list = new ArrayList<>();
    //装载些数据进数据库
    static {
        list.add(new User("aaa","111"));
        list.add(new User("bbb","222"));
        list.add(new User("ccc","333"));
    }
    //通过用户名和密码查找用户
    public static User find(String username, String password) {
        for (User user : list) {
            if (user.getUsername().equals(username) && user.getPassword().equals(password)) {
                return user;
            }
        }
        return null;
    }

表单提交的工作我就在jsp写了,如果在Servlet写太麻烦了!

<form action="/ouzicheng/LoginServlet" method="post">
    用户名:<input type="text" name="username"><br/>
    密码:<input type="password" name="password"><br/>
    <input type="submit" value="提交">
</form>

获取到表单提交的数据,查找数据库是否有相对应的用户名和密码。如果没有就提示用户名或密码出错了,如果有就跳转到另外一个页面

 String username = request.getParameter("username");
        String password = request.getParameter("password");
        User user = UserDB.find(username, password);
        //如果找不到,就是用户名或密码出错了。
        if (user == null) {
            response.getWriter().write("you can't login");
            return;
        }
        //标记着该用户已经登陆了!
        HttpSession httpSession = request.getSession();
        httpSession.setAttribute("user", user);
        //跳转到其他页面,告诉用户成功登陆了。
        response.sendRedirect(response.encodeURL("index.jsp"));
  • 我们来试试下数据库没有的用户名和密码,提示我不能登陆。

58.jpg59.jpg

试试数据库存在的用户名和密码

60.jpg61.jpg


目录
相关文章
|
存储 安全 数据安全/隐私保护
Cookie 和 Session 的区别及使用 Session 进行身份验证的方法
【10月更文挑战第12天】总之,Cookie 和 Session 各有特点,在不同的场景中发挥着不同的作用。使用 Session 进行身份验证是常见的做法,通过合理的设计和管理,可以确保用户身份的安全和可靠验证。
1183 156
|
存储 前端开发 Java
【SpringMVC】——Cookie和Session机制
获取URL中参数@PathVarible,上传文件@RequestPart,HttpServerlet(getCookies()方法,getAttribute方法,setAttribute方法,)HttpSession(getAttribute方法),@SessionAttribute
1032 11
|
缓存 Java Spring
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
文章比较了在Servlet和Spring Boot中获取Cookie、Session和Header的方法,并提供了相应的代码实例,展示了两种方式在实际应用中的异同。
2047 3
servlet和SpringBoot两种方式分别获取Cookie和Session方式比较(带源码) —— 图文并茂 两种方式获取Header
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
471 4
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
存储 安全 NoSQL
Cookie、Session、Token 解析
Cookie、Session、Token 解析
1619 1
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
352 3
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
778 1
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
392 1