接上上一篇博客的继续往下做,上一篇已经实现了mybatis自动生成代码,和连接数据库测试部分

本篇我们添加一些功能,实现登录注册,时间原因,前端实现的很粗糙,以后有时间再改吧

首先看一下数据库的构成,作为一个例子实现的简单点

看了一下mybatis自动生成的代码,不太好用,所以我们自己手写sql,然后按照Dao,Service,Controller的顺序修改代码

工程结构:

具体的代码放Github里了

看一下结果吧

首页:

点击注册:

下一步实现拦截器、shiro等功能

5.26更新:

实现拦截器的功能,如果不登录的话,就自动跳转到登录页面,只有登录了才能访问别的页面

这次的文件结构如下:

新加拦截器:

 import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class MyInterceptor implements HandlerInterceptor {
//在请求处理之前进行调用(Controller方法调用之前
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
HttpSession session = httpServletRequest.getSession();
Object user = session.getAttribute("session_user"); //获取登录的session信息
if(user != null){
System.out.println(user);
return true;
}
else{
System.out.println("没登录");
httpServletRequest.setAttribute("msg","没有权限请先登陆");
httpServletResponse.sendRedirect("/"); //未登录自动跳转界面
return false;
}
} //请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后)
@Override
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
System.out.println("postHandle被调用\n");
} //在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作)
@Override
public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {
System.out.println("afterCompletion被调用\n");
}
}

MyInterceptor

新加配置文件:

 import com.example.mybatis.interceptor.MyInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration
public class WebMvcConfig implements WebMvcConfigurer {
/**
* 注册拦截器
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
//addPathPattern后跟拦截地址,excludePathPatterns后跟排除拦截地址
registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**").excludePathPatterns("/userLogin").excludePathPatterns("/index").excludePathPatterns("/");
}
}

WebMvcConfig

并修改Controller中的一些东西

最新文章

  1. c#多态之抽象类与虚方法的异同点~
  2. Java基础相关总结
  3. 初学hibernate之缓存
  4. Python Django 的 django templatedoesnotexist
  5. Queuing
  6. 有图有真相,分享一款网页版HTML5飞机射击游戏
  7. jquery ui autoComplete自动完成
  8. Word删除复制后产生空行
  9. static timing analysis 基础
  10. 神马是AB測试?
  11. register_sysctl_table实现内核数据交互
  12. 自己做一台3D打印机到底有多难?(附教程)
  13. 团队项目——NABCD
  14. 阿里云已买到域名价格统计js代码
  15. 搭建SSM(Spring+SpringMVC+Mybatis)
  16. Structural Features for Predicting the Linguistic Quality of Text: Applications to Machine Translation, Automatic Summarization and Human-Authored Text -paper
  17. HTML 学习杂记
  18. 使用Spring框架入门三:基于XML配置的AOP的使用
  19. Spring-MVC配置Gson做为Message Converter解析Json
  20. 【转】java文件操作大全

热门文章

  1. 百度链接提交-js代码推送批量推送版
  2. 吴裕雄--天生自然 JAVASCRIPT开发学习: 表单
  3. bootstrap 网格
  4. Neo4j安装配置(mac)
  5. 关于PHP索引数组unset某key后json_encode相关问题踩坑记录
  6. HDU 3018 欧拉回路
  7. proto3 不支持内建类型的非空判断即 hasXXX
  8. Object arrays cannot be loaded when allow_pickle=False
  9. Spring DATA Neo4J(一)
  10. inotifywait命令详解及安装