【Springboot总结】14 RestfulCRUD

本文详细介绍了如何使用SpringBoot快速搭建项目,包括DAO、entities的设置,静态资源的处理,以及Thymeleaf模板引擎的配置。此外,还深入探讨了登录功能的实现,从前端页面设计到后端请求处理,再到表单重复提交的预防和登录拦截器的自定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结

1. 项目的搭建

2. 登录

 

一、项目搭建

1. DAO、entities

 

2. 静态资源

 

3. 模板引擎Thymeleaf渲染的界面

4. 默认访问首页

因为springboot的自动化配置是默认加载静态文件夹下的index.html,但是该路径下的index.html不能被模板引擎渲染,所以要自定义视图解析器

(1)方式一 推荐

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能

@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {

    //所有的WebMvcConfigurerAdapter组件都会一起起作用
    @Bean //将组件注册在容器
    public WebMvcConfigurerAdapter webMvcConfigurerAdapter(){
        WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
            @Override
            public void addViewControllers(ViewControllerRegistry registry) {
                registry.addViewController("/").setViewName("login");
                registry.addViewController("/index.html").setViewName("login");
            }
        };
        return adapter;
    }
}

(2)方式二

当然,也可以使用RequestMapping

因为返回的index会被springboot自动化配置的部分去渲染 classpath:/templates/index.html 文件!其实就是springboot的自动化配置的视图解析器,前缀就是 classpath:/templates/, 后缀就是 .html

 

5. 导入bootstrap的webjar

 

6. 修改页面的引入静态资源的URL

 (1)bootstrap的webjar的资源的引入

         所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源;

 

(2)自定义的静态资源的引入

         /**访问当前项目的任何资源,都去(静态资源的文件夹)找映射 ,前提是你没有配置RequestMapping的请求。

 

这样引入静态资源的好处

(1)修改访问路径

(2)访问首页

(3)这种引入方式会自动适配路径,就是会根据你定义的路径,自动在资源前面加相应的配置!

7. 实时生效

 

二、登录

1. 前端

2. 服务端接收请求

3. 消息回显

 

<p style="color: red" th:text="${msg}" th:if="${not #strings.isEmpty(msg)}"></p>

4. 防止表单的重复提交

  页面登录成功之后,会转发给主页面,在主页面按住F5会出现表单的重复提交,为了防止表单的重复提交,作下面的配置

5. 拦截器的登录检查

 

(1)自定义登录拦截器

/**
 * 登陆检查,
 */
public class LoginHandlerInterceptor implements HandlerInterceptor {
    //目标方法执行之前
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        Object user = request.getSession().getAttribute("loginUser");
        if(user == null){
            //未登陆,返回登陆页面
            request.setAttribute("msg","没有权限请先登陆");
            request.getRequestDispatcher("/index.html").forward(request,response);
            return false;
        }else{
            //已登陆,放行请求
            return true;
        }

    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

 

(2)注册自定义的登录拦截器

【提示】静态资源的映射springboot已经做好了,这里面拦截器不需要特殊配置。而springMVC配置拦截器时却要自己特殊处理静态资源!

6. 前端显示登录用户名

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值