资讯专栏INFORMATION COLUMN

jsp 内置对象 登录 cookie + session

Jochen / 1316人阅读

摘要:概述一共两个页面当直接访问产品列表的时候会判断用户是否登录如果用户没有登录则直接秒跳转如果用户登录则不进行跳转登录页面对于登录页面来说直接输入用户名密码和数据库进行对比进行登录并进行密码的本地保存一般是需要对密码加密进行本地保存的代码如下配

概述

一共两个页面
当直接访问产品列表的时候,会判断用户是否登录,如果用户没有登录,则直接3秒跳转.
如果用户登录,则不进行跳转
登录页面:对于登录页面来说,直接输入用户名,密码.和数据库进行对比,进行登录.
并进行密码的本地保存

ps 一般是需要对密码加密进行本地保存的
代码如下 配置文件



  Archetype Created Web Application
  
    login
    /Login.jsp
    
      driver
      com.mysql.cj.jdbc.Driver
    
    
      url
      jdbc:mysql://47.94.95.84:32786/test
    
    
      user
      test
    
    
      password
      **
    
  
  
    login
    /login.html
  

登录界面
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import="java.sql.ResultSet" %>
<%@ page import="java.sql.DriverManager" %><%--
  Created by IntelliJ IDEA.
  User: ming
  Date: 19-3-13
  Time: 下午10:02
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录页面

<% String dbdriver = config.getInitParameter("driver"); String dburl = config.getInitParameter("url"); String dbuser = config.getInitParameter("user"); String dbpassword = config.getInitParameter("password"); // 连接对象 Connection connection = null; // 操作 PreparedStatement preparedStatement = null; // 结果 ResultSet resultSet = null; // 用户id String mid = null; // 标志位 boolean falge = false; try{ Class.forName(dbdriver); // 获得连接 connection = DriverManager.getConnection(dburl, dbuser, dbpassword); // 编写sql验证ID 密码 String sql = "SELECT mid FROM member WHERE name = ? AND password = ?"; // 实例化操作对象 preparedStatement = connection.prepareStatement(sql); // 设置查询内容 preparedStatement.setString(1, request.getParameter("username")); preparedStatement.setString(2, request.getParameter("password")); // 执行查询 resultSet = preparedStatement.executeQuery(); // 如果可以查询到,表示合法用户 if(resultSet.next()){ mid = resultSet.getString(1); // 修改标志位 falge = true; } }catch (Exception e){ e.printStackTrace(); }finally { try{ resultSet.close(); preparedStatement.close(); connection.close(); }catch (Exception e){ e.printStackTrace(); } } // 判断是否登录成功 if(falge){ // 登录成功 // 保存session 保存cookie session.setAttribute("mid", mid); // 保存cookie Cookie cookieMid = new Cookie("mid", mid); Cookie cookieUser = new Cookie("user", request.getParameter("username")); Cookie cookiePassword = new Cookie("password", request.getParameter("password")); // 增加登录态cookie Cookie cookieFlage = new Cookie("flage", "true"); // 客户端增加Cookie response.addCookie(cookieMid); response.addCookie(cookieUser); response.addCookie(cookiePassword); response.addCookie(cookieFlage); // 设置定时跳转 response.setHeader("refresh", "3;URL=product.jsp"); %> 登录成功即将跳转到首页产品界面 未跳转点击点击此处 <% }else{ // 查询用户是否已经登录 if(session.getAttribute("mid") == null) { Cookie cookieFlage = new Cookie("flage", "false"); response.addCookie(cookieFlage); } } %>
产品界面
<%--
  Created by IntelliJ IDEA.
  User: ming
  Date: 19-3-14
  Time: 下午2:51
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


此为商品列表

<%
    // 服务器端验证
    if(session.getAttribute("mid") == null) {
        // 执行页面跳转
        response.setHeader("refresh", "2;URL=/login.html");
    }
%>


注意

产品界面通过本地cookie和服务器的session进行双向验证.

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/73725.html

相关文章

  • JSP 学习记录

    摘要:对象具有请求域,即完成客户端的请求之前,该对象一直有效。提交的数据量最多不超过。安全性较低但效率比方式高。适合提交数据量大,安全性高的用户信息。除非本次会话的所有页面都关闭后再重新访问某个或者,将会创建新的会话。 JSP 简介 全名为Java Server Pages,其根本是一个简化的Servlet设计,实现了在Java当中使用HTML标签。JSP是一种动态网页技术标准,也是Java...

    BearyChat 评论0 收藏0
  • JSP 内置对象(一)

    摘要:提供了个内置对象该对象会自动进行实例化操作种属性范围只在一个保存属性跳转无效一次请求保存属性跳转依旧有效同一会话有效整个服务器上保存所有用户都可使用属性一个属性设置在本页上跳转后无法获得下午设置属性重中取出属性姓名生日属性服务 jsp提供了9个内置对象,该对象会自动进行实例化操作 4种属性范围 page 只在一个保存属性,跳转无效request 一次请求保存属性,跳转依旧有效sessi...

    lordharrd 评论0 收藏0
  • [Java Web]JSP/Servlet的学习(resopnse对象session对象

    摘要:的学习与内置对象对象代表服务器对客户端的响应。在增加之前必须先创建对象。一次会话的含义是从客户端浏览器连接服务器开始,到客户端服务与断开为止。范围内的属性可以在多个页面的跳转之间共享。 Java Server Page的学习(resopnse与session) 内置对象 response对象 respone代表服务器对客户端的响应。如果要在JSP页面中动态生成一副位图或者输出一个...

    Flink_China 评论0 收藏0
  • jsp中的 sessioncookie 区别与联系

    摘要:简而言之,由服务端生成再发给客户端,在客户端运行,相当于本地缓存的作用。在出现之前,基本上所有的网站都采用来跟踪会话。对象存储特定用户会话所需的属性及配置信息。若匹配成功和,说明不是第一次访问,无需再登录 什么是cookie?作用是什么?  cookie是小量信息,由网络服务器发送出来以存储在网络浏览器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回...

    Jonathan Shieber 评论0 收藏0
  • JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用${}括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的显示! 为什么要使用EL表达式? 为什么要使用EL表达式,我们先来看一下没有EL表达式是怎么样读取对象数据的吧! 在1.jsp中设置了Session属性 向session设置一个属性 在2...

    flyer_dev 评论0 收藏0

发表评论

0条评论

Jochen

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<