简单介绍:需求上有个小功能,用户登录后点击用户名,可以点击锁屏,锁屏解除,需要输入正确的密码才能进入管理后台页面enheng(*/ω\*)(*/ω\*)(*/ω\*)

思路简介:其实刚看到要做锁屏,第一反应就是没做过啊,懵逼,后来中午和同事去吃饭的时候,我啪的一下,就把笔记本合上了,loading·············,吃完饭,回来,打开本子,输入完密码,就准备去点击登录那个箭头,突然反应过来,卧槽,这不就是锁屏么,给他个锁屏界面不就行了么,不过还要有几个表单,能够实现登录,不就相当于解锁了么!!!haヾ(◍°∇°◍)ノ゙༺༺超༒神༻༻

//html代码 点击锁屏进入controller的lock方法
<li>
<a href="lock" >
<i class="icon-lock"></i> 锁屏 </a>
</li> 
//controller代码
/**
* 跳转锁屏页面
*/
@RequestMapping(value = "/main/lock")
public String lock(Model model) throws Exception {
Session session = Jurisdiction.getSession();
OhSysPriUser user = (OhSysPriUser)session.getAttribute(SessionConst.SESSION_USER);
String name = user.getLoginName();
model.addAttribute("username", name);
logger.info("进入锁屏");
return "/lock";//进入锁屏页面
//html锁屏页面登录
<form action="locklogin.shtml" method="post" name="lockloginForm" id="lockloginForm">
<div class="control-group normal_text"><h3>锁屏登录</h3></div>
<div class="control-group">
<input id="inputbtn" class="form-contro" type="text" autocomplete="off"
placeholder="Username" name="username" th:value="${username}" readonly="readonly"/>
</div>
<div class="control-group">
<input type="password" name="password" id="password" placeholder="请输入密码"
class="keypad" keypadMode="full" allowKeyboard="true" value=""/>
</div>
<div class="form-actions">
<div style="width:86%;padding-left:8%;">
<span class="pull-right">
<a onclick="locklogin();" class="flip-link btn btn-info" id="to-recover">登录</a>
</span>
</div>
<div style="width:86%;padding-left:8%;">
<span class="pull-left">
<a href="login" class="flip-link btn btn-info" id="to-login">前往登录页面</a>
</span>
</div>
</div>
</form> 
/**
* js代码 锁屏登录
*/
function locklogin() {
if ($("#password").val() == "") {
$("#password").tips({
side: 2,
msg: '密码不得为空',
bg: '#AE81FF',
time: 3
});
$("#password").focus;
}else{
$.ajax({
type: "POST",
url: 'locklogin',
data: {
username : $("#inputbtn").val(),
password : $("#password").val()
},
dataType: 'json',
cache: false,
success : function (data) {
if(data=="success"){
window.location.href="index";//成功回到主页
}else{
$("#password").tips({
side: 2,
msg: data,
bg: '#ff4a54',
time: 3
});
$("#password").val("");
$("#password").focus;
}
}
});
}
/**
* Controller代码 锁屏登陆
*
* @param username
* @param password
* @param request
* @param model
* @return
* */
@ResponseBody
@RequestMapping(value = "/main/locklogin", method = RequestMethod.POST, produces = "text/html; charset=utf-8")
public String locklogin(String username, String password, HttpServletRequest request, Model model) {
String error = "";
try {
model.addAttribute("username", username);
if (!request.getMethod().equals("POST")) {
model.addAttribute("errors","支持POST方法提交!");
}
if (Tools.isEmpty(username) || Tools.isEmpty(password)) {
error = "密码不能为空!";
}
// 想要得到 SecurityUtils.getSubject() 的对象..访问地址必须跟 shiro 的拦截地址内.不然后会报空指针
Subject user = SecurityUtils.getSubject();
// 用户输入的账号和密码,,存到UsernamePasswordToken对象中..然后由shiro内部认证对比,
// 认证执行者交由ShiroDbRealm中doGetAuthenticationInfo处理
// 当以上认证成功后会向下执行,认证失败会抛出异常
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
try {
user.login(token);
error = "success";
logger.info("解锁成功");
}catch (AuthenticationException e) {
token.clear();
request.setAttribute("error", "密码不正确!");
error = "密码不正确!";
}
} catch (Exception e) {
e.printStackTrace();
error = "登录异常,请联系管理员!";
logger.info("登录异常,请联系管理员!");
// 注销登录
logger.info(">>>>>>>>>> Logout");
SecurityUtils.getSubject().logout();
}
return error;
}

总结:刚拿到锁屏,瞬间懵逼,不过总得去做不是么,ヾ(◍°∇°◍)ノ゙

javaWeb锁屏的简单实现的更多相关文章

  1. iOS开发——使用技术OC篇&简单九宫格锁屏功能的实现与封装

    简单九宫格锁屏功能的实现与封装 首先来看看最后的实现界面. 在这开始看下面的内容之前希望你能先大概思考活着回顾一下如果 你会怎么做,只要知道大概的思路就可以. 由于iphone5指纹解锁的实现是的这个 ...

  2. 【腾讯Bugly干货分享】浅谈Android自定义锁屏页的发车姿势

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57875330c9da73584b025873 一.为什么需要自定义锁屏页 锁屏 ...

  3. 【WP 8.1开发】一键锁屏

    在WP8的时候,关于如何关闭屏幕,国内外都有不少文章了,大家有兴趣地可以搜搜,很多,我就不给链接了,因为稍后我的例子中会有. 其实,关闭屏幕是调用了未开放的API,正因为这个API未开放的,不敢保证所 ...

  4. web桌面程序之锁屏功能分析

    这是一个在操作系统里比较常见的功能,但在web里实现,有哪些需要注意的呢? 1.如何真正的实现锁屏? 2.如何避免通过技术手段绕过锁屏? 我个人总结出2点需要特别注意的地方,下面就分别进行分析. 第一 ...

  5. 浅谈 Android 自定义锁屏页的发车姿势

    作者:blowUp,原文链接:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653577446&idx=2&sn= ...

  6. 锁屏上显示Activity

    在Android中,有些比较强的提醒,需要用户紧急处理的内容.需要唤醒屏幕,甚至在锁定屏幕的情况下,也要显示出来.例如,来电界面和闹钟提醒界面.这是怎样实现的呢? 其实,实现起来非常简单.只要给Act ...

  7. iOS开发之应用内检测手机锁屏,解锁状态

    iPhone的锁屏监测分为两种方式监听: 1. 程序在前台,这种比较简单.直接使用Darwin层的通知就可以了: #import <notify.h> #define Notificati ...

  8. iOS10新特性之CallKit开发详解:锁屏接听和来电识别

    国庆节过完了,回家好好休息一天,今天好好分享一下CallKit开发.最近发现好多吃瓜问CallKit的VoIP开发适配,对iOS10的新特性开发和适配也在上个月完成,接下来就分享一下VoIP应用如何使 ...

  9. 技术解析:锁屏绕过,三星Galaxy系列手机也能“被”呼出电话

    近期,由两位安全研究人员,Roberto Paleari及Aristide Fattori,发布了关于三星Galaxy手机设备安全漏洞的技术细节.据称,Galaxy手机可在锁屏状态下被未授权的第三方人 ...

随机推荐

  1. Spark思维导图之Spark Streaming

  2. 《2013传智播客视频》-wmv,avi,mp4.目录

    \!--14俄罗斯方块\视频\.复习.avi; \!--14俄罗斯方块\视频\ 复习.avi; \!--14俄罗斯方块\视频\ 形状旋转.avi; \!--14俄罗斯方块\视频\ 判断形状能否变形.a ...

  3. vue 学习笔记—Es6

    // 第一部分 /* console.log(a+'c'); var a = 1; console.log(b+'c'); let b =1; */ // 上述代码 left定义报错 原因: /* v ...

  4. Springboot 配置 ssl 实现HTTPS 请求 & Tomcat配置SSL支持https请求

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与 ...

  5. 20165231 实验一 Java开发环境的熟悉

    实验报告封面 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:王杨鸿永 学号:20165231 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:13:45 - 15:25 ...

  6. iris数据集(鸢尾花)

    包含三个花的品种(Iris setosa(山鸢尾),Iris virginica(北美鸢尾),Iris versicolor(变色鸢尾)) 每个品种各50个样 每个样本四个特征参数(萼片长度和宽度.花 ...

  7. DeprecationWarning: Calling an asynchronous function without callback is deprecated. - how to find where the “function:” is?

    I recently updated my node to 7.2.1 and noticed that there is a warning coming: (node:4346) Deprecat ...

  8. C# 基础之const

    1.使用 const 关键字来声明某个常量字段或常量局部变量.常量字段和常量局部变量不是变量并且不能修改. 常量可以为数字.布尔值.字符串或 null 引用(Constants can be numb ...

  9. 设计模式C++学习笔记之十一(Bridge桥梁模式)

      桥梁模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化.实现分离的办法就是增加一个类, 11.1.解释 main(),客户 IProduct,产品接口 CHouse,房子 CIPod,ip ...

  10. 深度神经网络(DNN)是否模拟了人类大脑皮层结构?

    原文地址:https://www.zhihu.com/question/59800121/answer/184888043 神经元 在深度学习领域,神经元是最底层的单元,如果用感知机的模型, wx + ...