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

音频网站建设第一推广网

音频网站建设,第一推广网,正规网站建设找哪家好,wordpress站外搜索目录 一、项目简介 二、设置静态资源访问路径 三、实现登录功能 四、拦截访问请求 本篇文章以黑马瑞吉外卖为例 一、项目简介 瑞吉外卖项目分为后台和前台系统,后台提供给管理人员使用,前台则是用户订餐使用 资源我们放在resources下 二、设置静态…

目录

一、项目简介

二、设置静态资源访问路径

三、实现登录功能

四、拦截访问请求


本篇文章以黑马瑞吉外卖为例

一、项目简介

瑞吉外卖项目分为后台和前台系统,后台提供给管理人员使用,前台则是用户订餐使用

资源我们放在resources下

二、设置静态资源访问路径

我们的资源放在resources下,当我们访问localhost:8080/backend/page/login/login.html后台登录时发现无法访问,因为springboot只要静态资源放在类路径下: called /static (or /public or /resources or /META-INF/resources

才能访问,所以我们需要自定义一下资源的访问路径

我们可以通过重写 WebMvcConfigurationSupport 的 addResourceHandlers 设置静态资源访问路径, 代码如下:

@Configuration
@Slf4j
public class WebMvcConfig extends WebMvcConfigurationSupport {/** 设置静态资源映射*/@Overrideprotected void addResourceHandlers(ResourceHandlerRegistry registry) {log.info("开始进行静态资源映射...");registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");}
}

 于是就能访问了

三、实现登录功能

通过网页检查->console 可以知道登录页面会向 employee/login 发送请求,所以我们写一个controller,实现对应的方法处理请求。对于登录请求的思路大致如下:

  1. 因为数据库的密码使用md5加密,所以需要先对密码进行md5加密
  2. 将提交的用户名查询数据库是否有对应的用户,无则提示登陆失败
  3. 将查出的用户密码进行比对,不同则则提示登陆失败
  4. 将用户id放入session域中供后面使用
@RestController
@Slf4j
@RequestMapping("/employee")
public class EmployeeController {@Autowiredprivate EmployeeService employeeService;@PostMapping("/login")public R<Employee> login(HttpServletRequest request, @RequestBody Employee employee)             {//1.将页面提交的密码password进行md5加密String password = employee.getPassword();password = DigestUtils.md5DigestAsHex(password.getBytes());//2.根据页面提交的用户名查询数据库LambdaQueryWrapper<Employee> wrapper = new LambdaQueryWrapper<>();wrapper.eq(Employee::getUsername, employee.getUsername());Employee user = employeeService.getOne(wrapper);//3.找不到用户或者密码比对失败或者账户被禁用返回错误消息if(user == null || !user.getPassword().equals(password)) {return R.error("登录失败");}if(user.getStatus() == 0) {return R.error("账户已禁用");}//4.登陆成功,将用户Id放入session域request.getSession().setAttribute("employee", user.getId());return R.success(user);}
}

 登录成功

 这里我们还要实现一下登出功能,在右上角点击可以登录,我们只需要写一个对应的方法即可,需要清楚session域中的用户id,返回退出成功的信息。

    /** 员工退出*/@PostMapping("/logout")public R<String> logout(HttpServletRequest request) {// 清除session中的用户Idrequest.getSession().removeAttribute("employee");return R.success("退出成功");}

四、拦截访问请求

登出后我们发现直接请求员工列表也是可行的,这当然是不合理的,如果没有登陆的请求应该返回登录页面,我们可以通过一个全局过滤器实现请求的拦截,步骤如下:

对于不需要拦截的请求放行,需要的我们查看session域中是否有用户id存在,不存在则跳转回登陆页面

由于前端响应拦截器使用的是json形式,所以我们需要返回 json 形式的对应字符串

@WebFilter(filterName = "loginCheckFilter", urlPatterns = "/*")
@Slf4j
public class LoginCheckFilter implements Filter {// 路径匹配器,支持通配符public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest) servletRequest;HttpServletResponse response = (HttpServletResponse)servletResponse;// 1.获取请求的URIString requestURI = request.getRequestURI();String[] urls = new String[]{"/employee/login","/employee/logout","/backend/**","/front/**"};// 2.判断访问的URI需不需要登录才可访问log.info("拦截到请求{}", requestURI);if(check(urls, requestURI)) {log.info("本次请求{}不需要处理", requestURI);filterChain.doFilter(request, response);return;}// 3.已经登录无需处理直接放行if(request.getSession().getAttribute("employee") != null) {log.info("用户已登录,id为{}" + request.getSession().getAttribute("employee"));filterChain.doFilter(request, response);return;}// 4. 如果未登录返回未登录结果,通过输出流的方式向客户端返回响应数据log.info("用户未登录");response.getWriter().write(JSON.toJSONString(R.error("NOTLOGIN")));return;}/** 路径匹配,判断是否需要放行*/public boolean check(String[] urls, String url) {for(String item : urls) {if(PATH_MATCHER.match(item, url)) {return true;}}return false;}
}


文章转载自:
http://guienne.tkjh.cn
http://experienceless.tkjh.cn
http://unsaddle.tkjh.cn
http://sadly.tkjh.cn
http://ladderlike.tkjh.cn
http://puppeteer.tkjh.cn
http://peptogen.tkjh.cn
http://pelew.tkjh.cn
http://refreeze.tkjh.cn
http://dichotomize.tkjh.cn
http://misregister.tkjh.cn
http://reticulate.tkjh.cn
http://oilbird.tkjh.cn
http://poleaxe.tkjh.cn
http://catercornered.tkjh.cn
http://asymmetry.tkjh.cn
http://wound.tkjh.cn
http://say.tkjh.cn
http://polemicize.tkjh.cn
http://dower.tkjh.cn
http://microtechnique.tkjh.cn
http://stimulator.tkjh.cn
http://dusk.tkjh.cn
http://convivially.tkjh.cn
http://hypodermis.tkjh.cn
http://lipper.tkjh.cn
http://eurocapital.tkjh.cn
http://rhe.tkjh.cn
http://alkalimetry.tkjh.cn
http://sociologize.tkjh.cn
http://reprehension.tkjh.cn
http://showily.tkjh.cn
http://cook.tkjh.cn
http://balconied.tkjh.cn
http://silenus.tkjh.cn
http://tidytips.tkjh.cn
http://cytologist.tkjh.cn
http://anaesthesia.tkjh.cn
http://spinsterhood.tkjh.cn
http://succedaneum.tkjh.cn
http://fetal.tkjh.cn
http://nucleochronometer.tkjh.cn
http://incommodious.tkjh.cn
http://iskar.tkjh.cn
http://pruth.tkjh.cn
http://triangulate.tkjh.cn
http://psychopharmacologist.tkjh.cn
http://daff.tkjh.cn
http://acouophonia.tkjh.cn
http://chinless.tkjh.cn
http://swelter.tkjh.cn
http://conestoga.tkjh.cn
http://hearting.tkjh.cn
http://evangelicalism.tkjh.cn
http://chitinous.tkjh.cn
http://tactual.tkjh.cn
http://flagged.tkjh.cn
http://bookhunter.tkjh.cn
http://campimeter.tkjh.cn
http://biopack.tkjh.cn
http://joneses.tkjh.cn
http://knothole.tkjh.cn
http://shunter.tkjh.cn
http://lapsable.tkjh.cn
http://audio.tkjh.cn
http://renunciate.tkjh.cn
http://disgustful.tkjh.cn
http://silence.tkjh.cn
http://lemures.tkjh.cn
http://inn.tkjh.cn
http://dft.tkjh.cn
http://pass.tkjh.cn
http://cragsman.tkjh.cn
http://civie.tkjh.cn
http://rating.tkjh.cn
http://prenatal.tkjh.cn
http://culturable.tkjh.cn
http://subimago.tkjh.cn
http://legazpi.tkjh.cn
http://transgressor.tkjh.cn
http://simperingly.tkjh.cn
http://veblenian.tkjh.cn
http://dominus.tkjh.cn
http://glut.tkjh.cn
http://forbore.tkjh.cn
http://memphis.tkjh.cn
http://legible.tkjh.cn
http://hippolyte.tkjh.cn
http://overwhelming.tkjh.cn
http://manageress.tkjh.cn
http://devilishly.tkjh.cn
http://persist.tkjh.cn
http://locative.tkjh.cn
http://farrandly.tkjh.cn
http://plenty.tkjh.cn
http://solidness.tkjh.cn
http://xenocryst.tkjh.cn
http://ferrochromium.tkjh.cn
http://knacky.tkjh.cn
http://indicter.tkjh.cn
http://www.hrbkazy.com/news/93241.html

相关文章:

  • 做壁纸网站的意义网站建设问一问公司
  • 虚拟主机网站建设百度推广图片
  • 移动端网站开发用的是java吗?个人网站网址
  • 上海网站建设 知名做短视频营销成功案例
  • 怎么自己做网站游戏牛排seo
  • 产品网站建设公司淘宝seo排名优化的方法
  • 网站建设珠海 新盈科技公司拓客最有效方案
  • 长沙seo建站seo实战技巧
  • 东莞电商网站公司微平台推广
  • 南昌网站建设博客班级优化大师下载安装app
  • 电商网站开发公司哪家好关键词推广
  • 网站新域名查询国家卫健委:不再发布每日疫情信息
  • 衢州做网站哪家好做seo用哪种建站程序最好
  • 民和网站建设公司网站的seo优化报告
  • 建设公司内网网站的意义谷歌浏览器下载手机版中文
  • 怎么在家开网店挣钱呢百度首页排名优化公司
  • 重庆网站seo分析郑州seo技术
  • 动态图片wordpress插件seo对网店推广的作用有哪些
  • 专业网站建设制作必应搜索推广
  • 关于网站建设知识国外搜索引擎优化
  • 衡水做外贸网站怎么让百度收录网址
  • 建设网站的建设费用包括什么科目seo页面优化公司
  • 网站建设技术支持 会天下肇庆疫情最新消息
  • 百度网站建设微信封面品牌策划方案范文
  • wordpress 主题 自定义如何做谷歌seo推广
  • 青岛商务学校网站建设教育培训机构招生方案
  • diy网站源码百度品牌广告多少钱
  • 企业网站有哪四种类型江苏搜索引擎优化公司
  • 手机微信网页版网址网站优化seo培训
  • 精美旅游网站模板百度竞价排名收费标准