文件放置

  • 我的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的转发与重定向

⑤业务逻辑层

  1. 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;}
}
  1. UserService.java
/**1. 用户Service层接口*/
public interface UserService {// 通过账号和密码查询用户public User findUser(String usercode,String password);
}

⑥持久对象层

  1. UserDao.java
/**1. 用户DAO层接口*/
public interface UserDao {/*** 通过账号和密码查询用户*/public User findUser(@Param("usercode") String usercode,@Param("password") String password);
}
  1. 部分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)相关推荐

  1. MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中

    MD5算法原理简要介绍并采用C#应用在桌面应用系统的用户登录与注册中 接上文,本文简要介绍一下MD5加密算法的原理,并采用C#实现MD5算法的加密与解密过程,将这一实现过程应用在我自己开发的桌面办公应 ...

  2. 我是SQL小菜鸟---SQL全局临时表防止用户重复登录

    先介绍一下什么是sql临时表及使用方法 临时表  SQL Server 支持临时表.临时表就是那些名称以井号 (#) 开头的表.如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时 ...

  3. 计算机禁止用户登录,win7系统禁止显示用户登录信息的设置方法

    win7系统功能强大,有着xp系统不可比拟的其他功能,不过有些功能虽然强大,但为了保障系统安全信息,最好还是禁用掉为好.比如当用户登录系统桌面时,可以查看上次具体登录情况,包括时间和使用账号.虽然此功 ...

  4. 小编程(三):用户登录注册界面开发及用户信息管理案例代码详解

    用户登录注册界面开发及用户信息管理案例详解 刚开始接触Android编程,这算是我写的第一个简单工程,主要功能有:用户登录.注册.注销.修改密码.记住密码共5个基本操作,其内容涉及到以下几点: 1:B ...

  5. 小程序短视频项目———开发用户登录注册(一)

    二. 新建小程序注册模块,配置好注册页面. regist.wxml <view><view class="login-icon"><image cla ...

  6. ssm实现用户登录功能拦截

    拦截情况分为登,录页面不用拦截用户未登录要拦截,登录后根据用户的权限进行操作拦截:如果用户未登录就访问某些页面就拦截该页面请求跳到登录页面,如果用户登录后想执行增加操作,但该用户的权限中没有增加的权限 ...

  7. 文件上传与下载,用户登录和拦截与三层架构

    文件上传 文件上传: 将用户本地磁盘中的文件提交保存到服务器中的磁盘上. 搭建一个新 Web 项目编写 register.jsp 编写一个上传的表单,但要求如下: 上传表单的编码格式 enctype= ...

  8. java 登录过滤_Java 过滤器实现(登录) + 拦截器(两种方法)

    以下是实现未登录不能进入页面的实现 使用了thyemeleaf+SpringBoot+过滤器实现的,过滤器的核心代码如下: @Component @WebFilter(filterName= &quo ...

  9. Java web登录拦截器_SpringMVC拦截器(实现登录验证拦截器)

    本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 核心代码 首先是index.jsp,显示链接 String path = request.getContextPath(); String ...

最新文章

  1. CentOS设置ssh连接的方法
  2. Lin总线应用层代码
  3. 跟我一起学.NetCore之中间件(Middleware)简介和解析请求管道构建
  4. 最全金蝶KIS记账王使用问题汇总
  5. log4j 不同功能,同INFO级别,输出到不同log文件
  6. python实现最大公共子序列
  7. python中处理WordNet
  8. linux怎么用jconsole_怎么在linux jconsole
  9. 生活中的 真、善、美
  10. 台式机未插入扬声器或者耳机
  11. Nginx动静分离经典案例配置
  12. 这三款软件让你实现PDF批量转图片
  13. 网络协议MPL(3):RFC2606--The Trickle Algorithm文档翻译
  14. JAVA数据类型笔记
  15. 在群晖中批量删除重复文件
  16. 无线路由高级设置 虚拟服务器及DMZ主机
  17. Walle 瓦力 安装部署
  18. csapp-lad1
  19. Markdown笔记及常用快捷键(自用)
  20. 对未来计算机的畅想作文1500,新年畅想作文1500字

热门文章

  1. 中台的本质及中台建设的4点思考
  2. **PTA:浙大版《C语言程序设计(第3版)》编程题答案*
  3. virustotal-请求头参数逆向
  4. [飞腾]Trace32使用概述
  5. 如何描述问题的生命周期
  6. php fwrite 追加写入,PHP fwrite 函数:将字符串写入文件(追加与换行)
  7. 【Java在线问卷调查】Java ssm框架在线问卷调查系统的设计与实现
  8. windows 网络编程 WinNet
  9. 圆心科技冲刺港交所上市:收入主要靠卖药,毛利率仅在10%上下
  10. 架构大咖说丨顶级架构师 = 技术大牛?