小菜鸟的BBS系统之用户登录及拦截器(SSM)
文件放置
- 我的login.jsp放置在WEB-INF的jsp下面,所以在springmvc-config.xml里面配置了视图解释器ViewResolver
①web表现层(login.jsp页面点击用户登录超链接)
<a href="${pageContext.request.contextPath }/login.action">用户登录</a>
- href里面看不懂的可以去这个 链接 看一下,我放上面的login.action是我给login.jsp自己写的一个名字,待会数据访问层会用到
②springmvc-config.xml的部分代码
<!-- 注解驱动:配置处理器映射器和适配器 --><mvc:annotation-driven /><!--配置静态资源的访问映射,此配置中的文件,将不被前端控制器拦截 --><mvc:resources location="/js/" mapping="/js/**" /><mvc:resources location="/css/" mapping="/css/**" /><mvc:resources location="/fonts/" mapping="/fonts/**" /> <mvc:resources location="/image/" mapping="/image/**" /> <!-- 配置视图解释器ViewResolver --><bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><property name="suffix" value=".jsp" /></bean> <!-- 配置拦截器 --><mvc:interceptors><mvc:interceptor><mvc:mapping path="/person.action" /> <bean class="cn.edu.csxy.interceptor.LoginInterceptor" /></mvc:interceptor></mvc:interceptors>
- cn.edu.csxy.interceptor是我拦截器的包名,以及person.action是我BBS系统的个人中心person.jsp,我给的设定是用户登录了才能访问,所以就拦截它。
- 如果要问什么这个拦截器只拦截这个页面,是因为我在其他地方限制了不让评论等功能。(听起来好像很厉害的样子?其实我真的是莫得其他办法了加上赶着交课设)
③拦截器(LoginInterceptor.java)
/*** 登录拦截器*/
public class LoginInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {HttpSession session = request.getSession();User user = (User) session.getAttribute("USER_SESSION");if (user != null) {return true;}// 不符合条件的给出提示信息,并转发到登录页面request.setAttribute("msg", "您还没有登录,请先登录!");request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);return false;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,ModelAndView modelAndView) throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {}
}
- 有关于拦截器的讲解,我十分推荐这位大佬的,快看快看 拦截器
④数据访问层(UserController.java)
/*** 用户登录*/@RequestMapping(value = "/login.action", method = RequestMethod.POST)public String login(String usercode, String password, Model model, HttpSession session) {// 通过账号和密码查询用户User user = userService.findUser(usercode, password);if (user != null) {// 将用户对象添加到Sessionsession.setAttribute("USER_SESSION", user);// 跳转到主页面return "redirect:person.action";}model.addAttribute("msg", "账号/密码错误,或你没有权限登录!");// 返回到登录页面return "login";}
- 这里补充一下一小点,是关于Spring MVC的转发与重定向的,不知道的兄弟们可以看它看它 SpringMVC的转发与重定向
⑤业务逻辑层
- UserServiceImpl.java
/**1. 用户Service接口实现类*/
@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {// 注入UserDao@Autowiredprivate UserDao userDao;// 通过账号和密码查询用户@Overridepublic User findUser(String usercode, String password) {User user = this.userDao.findUser(usercode, password);return user;}
}
- UserService.java
/**1. 用户Service层接口*/
public interface UserService {// 通过账号和密码查询用户public User findUser(String usercode,String password);
}
⑥持久对象层
- UserDao.java
/**1. 用户DAO层接口*/
public interface UserDao {/*** 通过账号和密码查询用户*/public User findUser(@Param("usercode") String usercode,@Param("password") String password);
}
- 部分UserDao.xml
<!-- 查询用户 --><select id="findUser" parameterType="String" resultType="user">select *from sys_userwhere user_code = #{usercode}and user_password =#{password}and user_state = '1'</select>
- 很奇怪为什么要这样写接口吗?看看这个 @Param绑定参数
- sys_user是我mysql数据库中的用户表,user_code是账号字段,user_password是密码字段
因为这次课设做的管理员和用户的表是分开的,所以基本操作跟用户的差不多,就不贴出来了。
小菜鸟的BBS系统之用户登录及拦截器(SSM)相关推荐
- MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中
MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中 接上文,本文简要介绍一下MD5加密算法的原理,并采用C#实现MD5算法的加密与解密过程,将这一实现过程应用在我自己开发的桌面办公应 ...
- 我是SQL小菜鸟---SQL全局临时表防止用户重复登录
先介绍一下什么是sql临时表及使用方法 临时表 SQL Server 支持临时表.临时表就是那些名称以井号 (#) 开头的表.如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时 ...
- 计算机禁止用户登录,win7系统禁止显示用户登录信息的设置方法
win7系统功能强大,有着xp系统不可比拟的其他功能,不过有些功能虽然强大,但为了保障系统安全信息,最好还是禁用掉为好.比如当用户登录系统桌面时,可以查看上次具体登录情况,包括时间和使用账号.虽然此功 ...
- 小编程(三):用户登录注册界面开发及用户信息管理案例代码详解
用户登录注册界面开发及用户信息管理案例详解 刚开始接触Android编程,这算是我写的第一个简单工程,主要功能有:用户登录.注册.注销.修改密码.记住密码共5个基本操作,其内容涉及到以下几点: 1:B ...
- 小程序短视频项目———开发用户登录注册(一)
二. 新建小程序注册模块,配置好注册页面. regist.wxml <view><view class="login-icon"><image cla ...
- ssm实现用户登录功能拦截
拦截情况分为登,录页面不用拦截用户未登录要拦截,登录后根据用户的权限进行操作拦截:如果用户未登录就访问某些页面就拦截该页面请求跳到登录页面,如果用户登录后想执行增加操作,但该用户的权限中没有增加的权限 ...
- 文件上传与下载,用户登录和拦截与三层架构
文件上传 文件上传: 将用户本地磁盘中的文件提交保存到服务器中的磁盘上. 搭建一个新 Web 项目编写 register.jsp 编写一个上传的表单,但要求如下: 上传表单的编码格式 enctype= ...
- java 登录过滤_Java 过滤器实现(登录) + 拦截器(两种方法)
以下是实现未登录不能进入页面的实现 使用了thyemeleaf+SpringBoot+过滤器实现的,过滤器的核心代码如下: @Component @WebFilter(filterName= &quo ...
- Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)
本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 核心代码 首先是index.jsp,显示链接 String path = request.getContextPath(); String ...
最新文章
- CentOS设置ssh连接的方法
- Lin总线应用层代码
- 跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建
- 最全金蝶KIS记账王使用问题汇总
- log4j 不同功能,同INFO级别,输出到不同log文件
- python实现最大公共子序列
- python中处理WordNet
- linux怎么用jconsole_怎么在linux jconsole
- 生活中的 真、善、美
- 台式机未插入扬声器或者耳机
- Nginx动静分离经典案例配置
- 这三款软件让你实现PDF批量转图片
- 网络协议MPL(3):RFC2606--The Trickle Algorithm文档翻译
- JAVA数据类型笔记
- 在群晖中批量删除重复文件
- 无线路由高级设置 虚拟服务器及DMZ主机
- Walle 瓦力 安装部署
- csapp-lad1
- Markdown笔记及常用快捷键(自用)
- 对未来计算机的畅想作文1500,新年畅想作文1500字