文件放置

  • 我的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. 【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
  2. Linux下判断字符串长度
  3. IP地址与无符号整数值相互转换
  4. 兵团职称计算机准考证查询,兵团初级会计准考证打印入口官网
  5. 【计算几何】点在多边形内部
  6. 手把手教你用Python实现查找算法
  7. css3 position: fixed 居中问题,移动端,旁边留白的情况fixed不能居中的问题;
  8. Python学习入门8:新人怎么学习Python
  9. 在JSP中应用JavaBean
  10. 为什么越有钱的人越轻松
  11. SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
  12. 授权MySQL账户访问指定数据库
  13. OpenCV 直方图均衡化 equalizeHist
  14. Java Web提交参数到Spark集群执行任务
  15. 今日头条推广视频教程自媒体推广短视频教程今日头条引流小白入门视频解析下载支持今日头条快手抖音火...
  16. 办公室计算机如何互传文件,办公室电脑互联,打印机共享,方便快速的网内文件传输...
  17. 如何使用shared_preferences?
  18. 搜索关键词优化 助力全网霸屏营销
  19. “消费盲返”的商业模式,你知道多少?
  20. 主机Nginx的错误日志分析整理

热门文章

  1. LaTex中的绝对值符号
  2. 单词记忆系统三:优化音标输入(允许键盘字符直接输入和音标序号混合输入)
  3. matlab绘制加速度曲线,科学网-Matlab编写由加速度积分得到速度和位移函数-王德才的博文...
  4. 仿牛客网社区项目 全栈总结
  5. java不定积分计算,高等数学——求解不定积分经典换元法
  6. fopen及fwrite函数详解
  7. linux fwrite 头文件,linux的fwrite()使用方法
  8. FFT运算的加深理解——栅栏效应、补零、物理分辨率、计算分辨率
  9. Android tombstone 分析案例
  10. Solidworks二次开发系列入门1