09_用户登录退出实现
用户登录退出实现
- 步骤分析
- 实现登录
- 实现退出
1)步骤分析
1、在index.jsp上点击登录跳转到login.jsp
- 可以在UserServlet中进行请求转发
2、修改页面上的form表单 method 每个标签添加name属性
- action:/store/user/login
3、 登录操作:
- 获取用户名和密码
- 调用service根据用户名和密码获取一个user
- 判断用户是否为空
若为空:则账号或密码错误
若不为空:继续判断是否激活,只有激活的时候才把用户放入到session中
- 判断用户是否为空
4、页面重定向到首页上
展示:用户名/退出 我的订单
5、点击退出
- url:/store/user/logout
- 干掉session
- 页面重定向
2)登录实现
① 点击登录到登录界面
修改index.jsp上的登录按钮的跳转地址:
<li><a href="${path}/user/toLogin">登录</a></li>
在UserServlet中添加对路径的处理:
else if(uri.endsWith("/toLogin")) {toLogin(request,response);
}
toLogin方法请求转发到登录界面
/*** 请求转发到登录界面*/
private void toLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.getRequestDispatcher("/jsp/login.jsp").forward(request, response);
}
② 修改login.jsp
略
③ Servlet实现登录
定义一个Constant常量接口,定义一个常量代表激活状态
/*** 常量接口*/ public interface Constant {/*** 用户激活状态*/int USER_IS_ACTIVE=1; }
处理/login路径,添加login方法
else if(uri.endsWith("/login")) {login(request,response); }
获取用户名和密码
调用service完成登录操作,返回user
判断用户
将user放入到session中 重定向
/*** 实现登录* @param request* @param response* @throws IOException * @throws ServletException */ private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//1、获取用户名和密码String username=request.getParameter("username");String password=request.getParameter("password");//密码加密password=MD5Utils.md5(password);//2、调用service完成登录操作 返回userUser user=userService.login(username,password);//3、判断用户if(user==null) {//用户名密码不匹配request.setAttribute("msg", "用户名或密码错误");//请求转发会login.jsprequest.getRequestDispatcher("/jsp/login.jsp").forward(request, response);return;}else {//继续判断用户状态是否激活if(Constant.USER_IS_ACTIVE!=user.getState()) {//没有激活request.setAttribute("msg", "用户未激活");request.getRequestDispatcher("/jsp/login.jsp").forward(request, response);return;}}//4、将user放入到session中,重定向到首页request.getSession().setAttribute("user", "user");response.sendRedirect(request.getContextPath()+"/"); }
④ 实现service
UserService接口:
/*** 用户登录* @param username* @param password* @return*/
User login(String username, String password) throws Exception;
UserServiceImpl实现类:
@Override
public User login(String username, String password) throws Exception {return userDao.getUserByUsernameAndPwd(username,password);
}
⑤ 实现dao
UserDao接口:
/*** 根据用户名和密码进行登录* @param username* @param password* @return*/
User getUserByUsernameAndPwd(String username, String password) throws SQLException;
UserDaoImpl实现类:
/*** 根据用户名和密码进行登录*/
@Override
public User getUserByUsernameAndPwd(String username, String password) throws SQLException {String sql="select * from `user` where username=? and password=? limit 1";return qr.query(sql, new BeanHandler<User>(User.class),username,password);
}
⑥ 更改登录之后的显示
登录成功,更改index.xml中的登录状态显示:
...
<div class="col-md-3" style="padding-top:20px"><ol class="list-inline"><c:if test="${empty user }"><li><a href="${path}/user/toLogin">登录</a></li><li><a href="${path}/user/toRegister">注册</a></li></c:if><c:if test="${not empty user }">${user.username }:您好<li><a href="${path}/user/">退出</a></li><li><a href="${path}/user/">我的订单</a></li></c:if><li><a href="cart.htm">购物车</a></li></ol>
</div>
...
登录失败,显示msg:
...
<font>会员登录</font> ${msg }
...
⑦ 登录测试
新注册账号zs,密码123,登录:
去激活之后登录:
如果账号或密码错误:
3)退出实现
① 更改退出的链接地址
<li><a href="${path}/user/logout">退出</a></li>
② 在UserServlet中干掉session对象,重定向到首页
private void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {//1、干掉sessionrequest.getSession().invalidate();//2、页面重定向response.sendRedirect(request.getContextPath()+"/");
}
③ 测试退出
09_用户登录退出实现相关推荐
- linux下怎么查看ssh的用户登录日志
linux下登录日志在下面的目录里: cd /var/log 查看ssh用户的登录日志: less secure linux日志管理: 1. 日志简介 日志对于安全来说,非常重要,他记录了系统 ...
- Qt编写物联网管理平台30-用户登录退出
一.前言 一个用户登录界面,是一个完整的应用系统,尤其是客户端系统必备的一个功能模块,传统的登录处理一般都是和本地的用户信息进行比对,而现代的登录系统一般是发送请求到服务器进行验证,无论何种方式,都是 ...
- Linux系统中管理用户登录及登录信息的处理
用户登录或者访问记录 在Linux系统中,有三个主要的日志子系统: 连接时间日志–由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和 u ...
- jsp用session判断输入框_[实战小剧场servletamp;jsp] 用户登录及退出功能实现
项目使用技术:servlet+jsp+mybatis 用户登录: 根据用户名和密码查询用户信息.查到则登录成功,查不到则登录失败. 用户退出: 销毁session 登录思路: 浏览器在登录页面发起登录 ...
- html退出登录_[实战小剧场servletamp;jsp] 用户登录及退出功能实现
项目使用技术:servlet+jsp+mybatis 用户登录: 根据用户名和密码查询用户信息.查到则登录成功,查不到则登录失败. 用户退出: 销毁session 登录思路: 浏览器在登录页面发起登录 ...
- PHP+jQuery+Ajax实现用户登录与退出
用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录,登录成功后只刷新页面局部,从而提升了用户体验度.本文将使用PHP和jQuery来实现登录和退出功能. 查看演示 下载 ...
- linux配置服务器超时退出,Linux下实现不活动用户登录超时后自动登出
摘要: 方法一:通过修改.bashrc或.bash_profile文件来实现通过修改home目录下的.bashrc或.bash_profile文件... 方法一:通过修改.bashrc或.bash_p ...
- php mysql ajax登录界面_PHP+jQuery+Ajax实现用户登录与退出
本文使用Ajax无刷新登录和退出,从而提升了用户体验. 若用户为登录状态,则显示用户相关登录信息,否则显示登录表单. 用户登录与退出功能应用在很多地方,而在有些项目中,我们需要使用Ajax方式进行登录 ...
- 怎么退出用户登录linux,怎样登录和退出Linux系统
1.启动和登录系统超级用户的用户名为root,密码在安装系统时已设定,系统启动成功后屏幕显示下面的提示:localhostlogin:这时输入超级用户名"root",然后键入回车键 ...
- 使用超级用户登录系统linux,登录和退出Linux系统
1. 启动和登录系统 超级用户的用户名为 root ,密码在安装系统时已设定.系统启动成功后输入超级用户名"root" 然后键入回车键,此时输入口令,输入口令时,口令不会在屏幕上显 ...
最新文章
- [转]Git远程操作详解
- cache-control_网站 cache control 最佳实践
- matPlotLib绘制决策树
- python杂记-读取png图像文件头数据
- Flask开发微电影网站(二)
- linux基础-第十六单元 yum管理RPM包
- 诗歌rails之获取本地ip地址
- 4g网络切换软件_5G 网络NSA与SA模式 互操作策略研究
- iOS-----线程同步与线程通信
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)转载自码农网
- 前期交互流程(PTES的第一步)
- 记一次联想Y7000P安装黑apple系统地经历
- 从新华字典释义的角度理解springboot中controller、service、dao各自的职责
- Java设计模式学习笔记
- docxtpl 学习笔记
- 用matlab写的视频截取图像桢,基于MATLAB的储粮害虫图像处理方法
- 4.R语言【dplyr包】使用方法
- 跳槽字节跳动,十年开发经验Android架构师,灵魂拷问
- java实验5_java实验5
- [ vulhub漏洞复现篇 ] Apereo-cas 4.1 反序列化远程代码执行漏洞
热门文章
- java类路径定制_设置Java类路径的注意事项
- 学校为什么要单位接收函_学校让我签三方,居然是因为···
- 简单的maven自定义webapp目录
- java jpa 教程 查询_Spring Boot JPA 使用教程
- 浅谈Java两种并发类型——计算密集型与IO密集型
- 数据分析第二章确定分析思路
- [Linux_Ubuntu13] 声音很小前台无法调节的处理方法
- xStream 的简单使用 xml to bean
- Eclipse切换IDE界面语言
- wait()、notify()、notifyAll()原理用法详解sleep()与wait()区别