当前位置: 首页 > news >正文

博物馆网站建设的根本意义青岛做公司网站

博物馆网站建设的根本意义,青岛做公司网站,口碑好的南昌网站建设,镇海seo关键词优化费用基于 Spring Boot 博客系统开发#xff08;五#xff09; 本系统是简易的个人博客系统开发#xff0c;为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。#x1f33f;#x1f33f;#x1f33f; 基于 Spring Boot 博客系统开发#xff08;四#xff09;#x1f…基于 Spring Boot 博客系统开发五 本系统是简易的个人博客系统开发为了更加熟练地掌握 SprIng Boot 框架及相关技术的使用。 基于 Spring Boot 博客系统开发四 登录实现 本文使用拦截器Interceptor来实现登录功能。拦截器是Spring MVC提供的一种机制它允许你在请求处理之前或之后执行一些逻辑比如检查用户是否已登录。 1、创建拦截器类 首先创建一个实现了HandlerInterceptor接口的类。在这个类中你可以重写preHandle方法来执行登录检查。LoginInterceptor.java import org.springframework.stereotype.Component; 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;Component public class LoginInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {HttpSession session request.getSession();Object loginUser session.getAttribute(loginUser);if(loginUser null){response.sendRedirect(/login);return false;}return true;}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 {} }2、注册拦截器 接下来你需要在Spring MVC的配置中注册这个拦截器。如果你使用的是Java配置可以通过实现WebMvcConfigurer接口来完成。LoginInterceptor.java import cn.qvtu.web.interceptor.LoginInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;Configuration public class LoginConfig implements WebMvcConfigurer {Autowiredprivate LoginInterceptor loginInterceptor;Overridepublic void addInterceptors(InterceptorRegistry registry) {InterceptorRegistration registration registry.addInterceptor(loginInterceptor);registration.addPathPatterns(/admin/**); // 拦截/admin下的所有路径registration.excludePathPatterns(// 排除特定路径/login);}}3、创建登录控制器 这里需要一个密码加密的依赖 Spring Security Core dependencygroupIdorg.springframework.security/groupIdartifactIdspring-security-core/artifactIdversion5.7.6/version/dependency登录控制器代码LoginController.java import cn.qvtu.web.domain.User; import cn.qvtu.web.service.IUserService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession;Controller Slf4j public class LoginController {Autowiredprivate IUserService userService;GetMapping(/login)public String login(){return client/login;}PostMapping(/login)public String formLogin(String username, String password, HttpServletRequest request) {if(StringUtils.isBlank(username) || StringUtils.isBlank(password)){return redirect:/login?error;}QueryWrapperUser query new QueryWrapper();query.eq(username,username);User user userService.getOne(query);BCryptPasswordEncoder encoder new BCryptPasswordEncoder();String encode encoder.encode(password);if(!encoder.matches(password,user.getPassword())){return redirect:/login?error;}request.getSession().setAttribute(loginUser,user);log.info(登录成功:username);return redirect:/;}RequestMapping (/logout)public String logout(HttpServletRequest request) {HttpSession session request.getSession();session.invalidate();log.info(注销成功:);return redirect:/;}}登录前端代码 login.html 当账号或密码错误提示${param.error} 从URL中获取参数。 div classam-u-lg-3 am-u-md-6 am-u-sm-8 am-u-sm-centered log-contenth1 classlog-title am-animation-slide-top stylecolor: black;~欢迎登录博客~/h1brdiv stylecolor: red th:if${param.error}账号或密码错误/divform classam-form idloginForm action/login methodpostdiv classam-input-group am-radius am-animation-slide-leftinput typetext classam-radius placeholder用户名 nameusername /span classam-input-group-label log-icon am-radiusi classam-icon-user am-icon-sm am-icon-fw/i/span/divbrdiv classam-input-group am-animation-slide-left log-animation-delayinput typepassword classam-form-field am-radius log-input placeholder密码 namepassword /span classam-input-group-label log-icon am-radiusi classam-icon-lock am-icon-sm am-icon-fw/i/span/divdiv stylepadding-top: 10px;input typesubmit value登录classam-btn am-btn-primary am-btn-block am-btn-lg am-radius am-animation-slide-bottom log-animation-delay //div/form/div账号或密码错误提示效果 测试登录账号admin 测试登录密码123456 4、后台首页控制器 登录成功可以访问后台首页控制器AdminController.java。 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;Controller RequestMapping(/admin) public class AdminController {RequestMapping(/)public String home(){return admin/index;}}5、前台首页 header 修改 header 登录、退出、后台管理的访问 URL这里需要工具类 LoginUtils 处理登录和退出是否显示。 LoginUtils.java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.servlet.http.HttpServletRequest;Component public class LoginUtils {Autowiredpublic HttpServletRequest request;public boolean isLogin(){Object loginUser request.getSession().getAttribute(loginUser);System.out.println(loginUser);return loginUser!null;}}include.html div th:fragmentheader !--[if lt IE 8]div classbrowsehappy roledialog当前网页 strong不支持/strong 你正在使用的浏览器. 为了正常的访问, 请 a hrefhttp://browsehappy.com/ target_blank升级你的浏览器/a。/div![endif]--header idheader classheader bg-whitediv classnavbar-containera href/static classnavbar-logoCrazyStone个人博客小站/adiv classnavbar-menua classheader-info th:if${loginUtils.isLogin()} href/logout 退出/aa classheader-info th:if${!loginUtils.isLogin()} href/login 登录/aa classheader-info href/admin/后台管理/a/divdiv classnavbar-search onclickspan classicon-search/spanform rolesearch onsubmitreturn false;span classsearch-boxinput typetext idsearch-inp classinput placeholder搜索... maxlength30autocompleteoff//span/form/div/div/header /div6、实现效果 登录成功显示 没有登录显示
http://www.zqtcl.cn/news/414571/

相关文章:

  • 温州做网站公司哪家好购物网站的基本功能
  • 网站建设网站建设教程建设糖果网站的好处有哪些
  • 松原手机网站开发wordpress数据库设计优缺点
  • 惠州建设工程造价管理站网站中国海洋大学站群网站建设
  • 怎么做网站里面的模块太原做网络推广
  • 网站关键词排名优化应该怎么做wordpress实惠主机
  • 服装 营销型网站案例网站建设资料需要公司提交的吗
  • 网站权重高 做别的关键词怎么查看网站是否被百度收录
  • 沈阳网站开发培训多少钱广州做网站的公司哪家好
  • 宁波江北建设局网站建筑室内设计公司
  • 辽宁网站seo做网站的不给ftp
  • 南宁seo网站排名优化公司电商主图一键生成免费
  • 宁波论坛建站模板wordpress发布公告
  • 电子政务门户网站建设汇报班级优化大师官网登录
  • 做网站购买什么软件c 购物网站开发流程
  • 阿里云做网站送服务器赣州英文网站建设
  • 网站备案号官网黄山网站建设哪家好
  • 鞍山做网站排名滁州seo
  • 加关键词的网站seo服务外包公司
  • 大丰建站研究网站建设
  • 网站建设维护教程聊城做网站推广地方
  • 郑州七彩网站建设公司怎么样国内老牌的注册代理
  • 衡水外贸网站建设临清轴承网站建设
  • 上街郑州网站建设网站管理建设的需求分析
  • 厦门网站建设策划网站推广的常用方法有哪些
  • 做电脑图标的网站上海定制网站建设公司哪家好
  • 重庆seo网站推广工具济南网页设计师招聘信息
  • 甘肃永靖建设住建局网站深圳网络广告推广公司
  • 台州企业网站搭建电话厦门学网站建设
  • 做易经网站做网站布为网