聚星Note04 - 管理员登录

本文档详细介绍了使用SSM框架整合静态资源,配置登录与注销功能,并实现了登录拦截器,包括创建登录请求和视图映射,MD5加密工具,自定义登录异常处理,以及后台页面的公共部分抽取和资源拦截器的配置。
摘要由CSDN通过智能技术生成

1 整合静态资源

将静态资源(bootstrap、css、fonts、img、jquery、script、ztree、layer)加入到 gatherStars-admin-webui/src/main/webapp 目录

1.1 关联登录请求地址和视图

  1. 创建 WEB-INF/admin-login.jsp
  2. spring-web-mvc.xml 配置view-controller
<!-- 关联请求地址和视图,免写handle方法 -->
<mvc:view-controller path="/admin/to/login/page.html" view-name="admin-login" />
  1. 浏览器访问 http://localhost:8080/admin/to/login/page.html

1.2 维护项目所需常量类

创建 gatherStars-admin-util/src/main/java/com.turling.gatherStars.constant.ProjectConstant
为项目所需常量, 提供统一入口

public class ProjectConstant {
   
    public static final String MESSAGE_LOGIN_FAILED = "抱歉!账号密码错误!请重新输入!";
    public static final String MESSAGE_LOGIN_ACCT_ALREADY_IN_USE = "抱歉!该账号已被使用!";
    public static final String MESSAGE_ACCESS_FORBIDEN = "请登录后访问!";
    public static final String MESSAGE_STRING_INVALIDATE = "请检测到您没有输入有效数据!";

    public static final String ATTR_NAME_EXCEPTION = "exception";
}

修改 gatherStars-admin-component/src/main/java/com.turling.gatherStars.mvc.config.GatherStarsExceptionResolver

modelAndView.addObject(ProjectConstant.ATTR_NAME_EXCEPTION, exception);

1.3 小技巧 - idea 正常显示子包

点击项目上方齿轮 – 取消勾选 Hide Empty Middle Packages

1.4 修饰 system-error.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="keys" content="">
    <meta name="author" content="">
    <base href="http://${pageContext.request.serverName }:${pageContext.request.serverPort }${pageContext.request.contextPath }/" />
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="css/font-awesome.min.css">
    <link rel="stylesheet" href="css/login.css">
    <script type="text/javascript" src="jquery/jquery-2.1.1.min.js"></script>
    <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>

    <script type="text/javascript">
        $(function(){
    
            $("button").click(function(){
    
                // 相当于浏览器的后退按钮
                window.history.back();
            });
        });
    </script>

</head>
<body>
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <div>
                <a class="navbar-brand" href="index.html" style="font-size: 32px;">聚星-创意产品众筹平台</a>
            </div>
        </div>
    </div>
</nav>

<div class="container">

    <h2 class="form-signin-heading" style="text-align: center;">
        <i class="glyphicon glyphicon-log-in"></i> 哎呀!系统出错了!
    </h2>

    <!-- requestScope.exception.message相当于exception.getMessage() -->
    <h3 style="text-align: center;">${requestScope.exception.message }</h3>
    <button style="width: 150px;margin: 50px auto 0px auto;" class="btn btn-lg btn-success btn-block">点我返回上一步</button>
</div>
</body>
</html>

 

2 登录与注销

2.1 登录与重定向到主页面

2.1.1 创建 md5 加密工具方法

com.turling.gatherStars.util.GatherStarsUtil 中添加

public static String md5 (String source) {
   
    // 1. 判断 source 是否有效
    if (source == null || source.length() == 0) {
   
        // 触发异常处理机制
        throw new RuntimeException(ProjectConstant.MESSAGE_STRING_INVALIDATE);
    }
    try {
   
        // 2. 获取 MessageDigest 对象
        String algorithm = "md5";
        MessageDigest messageDigest = MessageDigest.getInstance(algorithm);

        // 3. 获取明文字符串对应的字节数组
        byte[] input = source.getBytes();

        // 4. 执行加密
        byte[] output = messageDigest.digest(input);

        // 5. 创建 BigInteger 对象
        int signum = 1;  // 1 表示为整数
        BigInteger bigInteger = new BigInteger(signum, output);

        // 6. 按照16进制将 bigInteger 转化为字符
        int radix = 16;
        String encode = bigInteger.toString(radix).toUpperCase();

        return encode;
    } catch (NoSuchAlgorithmException e) {
   
        e.printStackTrace();
    }
    return null;
}

2.1.2 创建登录自定义异常

创建 com.turling.gatherStars.exception.LoginFailedException

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值