简单介绍:需求上有个小功能,用户登录后点击用户名,可以点击锁屏,锁屏解除,需要输入正确的密码才能进入管理后台页面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. LOJ #2026「JLOI / SHOI2016」成绩比较

    很好的锻炼推柿子能力的题目 LOJ #2026 题意 有$n$个人$ m$门学科,第$ i$门的分数为不大于$U_i$的一个正整数 定义A「打爆」B当且仅当A的每门学科的分数都不低于B的该门学科的分数 ...

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

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

  3. [PDFBox]后台操作pdf的工具类

    PDFBox是Apache下的一个操作pdf的类库.其也提供了一个命令行的工具,也提供了java调用的第三方类库. 下载地址:https://pdfbox.apache.org/ 下面的实验基于JDK ...

  4. 关于链表所有操作,面试必考C++

    #include <iostream> #include <stack> using namespace std; //链表的结构体 struct ListNode { int ...

  5. h5中placeholder样式

    <!DOCTYPE html> <html> <head> <title>placeholder样式demo</title> <sty ...

  6. HSV color space

    计算机图形学原理的课给我们指定了课题然后自己去研究并且做ppt(顺便吐槽一下晚课下课布置作业第二天早课就要交的辣鸡时间安排) 肝了一个晚上 大概知道了一点 先写下来 HSV其实是hue saturat ...

  7. html干货部分

    1.标签 a.文本标签:p,span,a,b,i,u,em.文本标签里只能放文字,图片,表单元素. 上标,下标: 5<sup>2</sup>(上标) 8<sub>2 ...

  8. linux syscall 详解【转】

    转自:https://blog.csdn.net/feixin620/article/details/78416560 引言:分析Android源码的过程中,要想从上至下完全明白一行代码,往往涉及ap ...

  9. HTTP协议07-通用首部字段

    通用首部字段 通用首部字段是指,请求报文和响应报文双方都会使用的首部. 1)Cache-Control 通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制. 指令的参数可以多选, ...

  10. 《Windows核心编程》读书笔记 上

    [C++]<Windows核心编程>读书笔记 这篇笔记是我在读<Windows核心编程>第5版时做的记录和总结(部分章节是第4版的书),没有摘抄原句,包含了很多我个人的思考和对 ...