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

新竹市网站建设_网站建设公司_VS Code_seo优化

网站建设域名,自己的服务器 做网站,天水做网站,怎么刷网站点击量如何实现session共享问题#xff1a; 1、session都在内存里面存储的#xff0c;只要有session对象我都分发出去#xff0c;让其他应用都可以拿到#xff08;同步#xff09; 缺点#xff1a;只要有session对象都要广播出去#xff0c;而且用户应用比较多了就会导致服务…如何实现session共享问题 1、session都在内存里面存储的只要有session对象我都分发出去让其他应用都可以拿到同步 缺点只要有session对象都要广播出去而且用户应用比较多了就会导致服务压力大 2、使用token登录完之后给你一个token然后加密完之后发给服务器用的时候直接把token给带过来即可别的应用调用的时候就会拿到token相应的信息这样就解决了session共享问题。 Spring MVC 的拦截器Interceptor与 Java Servlet 的过滤器Filter类似它主要用于拦截用户的请求并做相应的处理通常应用在权限验证、记录请求信息的日志、判断用户是否登录等功能上。 1.1 拦截器的定义 在 Spring MVC 框架中定义一个拦截器需要对拦截器进行定义和配置 定义一个拦截器可以通过两种方式 一种是通过实现 HandlerInterceptor 接口实现类来定义一种是通过实现 WebRequestInterceptor 接口或继承 WebRequestInterceptor 接口的实现类来定义 代码编辑在interceptor包下创建 public class TokenInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle方法处理控制器controller方法调用之前);String tokenrequest.getParameter(token);return true;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(preHandle方法处理控制器controller方法调用之后在解析视图之前执行);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion在视图渲染之后执行);} } 配置类里面配置拦截器 EnableWebMvc Configuration public class WebConfig  implements  WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new TokenInterceptor()).addPathPatterns(/**);} 对token进行验证判断 Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle方法处理控制器controller方法调用之前);String tokenrequest.getParameter(token);//对token进行判断if(token !null token.equals(206)){return true;}System.out.println(不是206学员);return false;} 访问测试http://localhost:8080/gff/mother?token206 如果被拦截了是不是要给一个响应信息或错误信息。 另外jwt里面也介绍说明需要放到请求头里面 JWT跨域认证解决方案_赵同学的博客-CSDN博客 运行测试 除了返回状态码还可以指定放回格式 Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle方法处理控制器controller方法调用之前);//获取请求头 getheaderString tokenrequest.getHeader(token);if(token !null token.equals(206)){return true;}System.out.println(不是正牌男友);//错误状态码// onse.setStatus(HttpServletResponse.SC_UNAUTHORIZED);//指定返回格式response.setContentType(application/json;charsetutf-8);response.getWriter().write({\code\:401,\message\:\token必须传入\});return false;} 如果第一个拦截器出现问题了怎么办 可以在添加一个新创建一个SexInterceptor public class SexInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle方法处理控制器controller方法调用之前);String tokenrequest.getParameter(sex);if(token !null token.equals(girl)){return true;}System.out.println(什么玩意);response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);return false;} 配置类配置多拦截配置 Overridepublic void addInterceptors(InterceptorRegistry registry) {//order值越小越先执行registry.addInterceptor(new TokenInterceptor()).addPathPatterns(/**);registry.addInterceptor(new SexInterceptor()).addPathPatterns(/**);} 使用order调整顺序 order值越小越先执行 Overridepublic void addInterceptors(InterceptorRegistry registry) {//order值越小越先执行registry.addInterceptor(new TokenInterceptor()).addPathPatterns(/**).order(2);registry.addInterceptor(new SexInterceptor()).addPathPatterns(/**).order(1);} 放行验证创建一个controller RestController RequestMapping(/glf) public class GirlFriendController { ​GetMapping(/old)public String select(){ ​return 这是你们前女友;} 比如针对性拦截api路径  Overridepublic void addInterceptors(InterceptorRegistry registry) {//order值越小越先执行registry.addInterceptor(new TokenInterceptor()).addPathPatterns(/api/**).order(2); ​} public class TokenInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println(preHandle方法在HandlerMethod执行之前);//获取tokenString token request.getHeader(token);//如果token不为空进行token验证if (token.equals(123456)) {return true;}//没有token直接返回401// response.setStatus(401);//或者response.setContentType(application/json;charsetutf-8);response.getWriter().write({\code\:401,\message\:\token必需传\});return false;}Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {System.out.println(postHandle方法在HandlerMethod调用之后解析视图之前执行);}Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println(afterCompletion方法在视图渲染结束之后执行);} } 在上述拦截器的定义中实现了 HandlerInterceptor 接口并实现了接口中的 3 个方法。有关这 3 个方法的描述如下。 preHandle 方法该方法在控制器的处理请求方法前执行其返回值表示是否中断后续操作返回 true 表示继续向下执行返回 false 表示中断后续操作。 postHandle 方法该方法在控制器的处理请求方法调用之后、解析视图之前执行可以通过此方法对请求域中的模型和视图做进一步的修改。 afterCompletion 方法该方法在控制器的处理请求方法执行完成后执行即视图渲染结束后执行可以通过此方法实现一些资源清理、记录日志信息等工作。 1.2 配置代码 Configuration //开启 Spring MVC注解驱动 EnableWebMvc public class WebConfig implements WebMvcConfigurer {Overridepublic void addInterceptors(InterceptorRegistry registry) {// 可添加多个// order 谁小谁先拦截registry.addInterceptor(new TokenIntercepter()).addPathPatterns(/**).order(2);registry.addInterceptor(new SexIntercepter()).addPathPatterns(/**).order(1);}/*** 视图配置*/Overridepublic void configureViewResolvers(ViewResolverRegistry registry) {WebMvcConfigurer.super.configureViewResolvers(registry);registry.viewResolver(resourceViewResolver());/*registry.jsp(/WEB-INF/jsp/,.jsp);*/}/*** 配置请求视图映射*/private InternalResourceViewResolver resourceViewResolver(){InternalResourceViewResolver internalResourceViewResolver new InternalResourceViewResolver();//请求视图文件的前缀地址internalResourceViewResolver.setPrefix(/WEB-INF/jsp/);//请求视图文件的后缀internalResourceViewResolver.setSuffix(.jsp);return internalResourceViewResolver;} }
http://www.ihoyoo.com/news/34276.html

相关文章:

  • 泰州网站建设价格网站建设设计服务公司
  • pr模板免费下载网站网站开发商城图片上传
  • 如何在建设部网站补录项目网站建设与管理项目1项目规划
  • 营销型企业网站的功能免费正能量erp软件下载
  • 山西长治做网站公司有哪些关键词排名的排名优化
  • 网站开发的需求文档模板营销网站大全
  • 一个ip做几个网站吗上海网站建设知识 博客
  • 乐清网站推广制作哈尔滨模板建站公司
  • 做牛仔裤的小视频网站爱站网工具
  • 做复刻手表的网站太原网站建设网格未来
  • 保险网站厦门建模培训
  • 电子政务网站建设背景sae 企业网站
  • 网站如何做电脑和手机软件个人做网站费用
  • 网站开发本地环境织梦网站做图床
  • 网站项目计划书钦州建设局网站
  • 嘉兴网站定制公司免费做橙光封面的网站
  • 价格划算的做pc端网站阿里云网站建设的功能
  • 永康网站推广网络推广活动方案策划
  • 加粉网站开发网站注册转化率
  • 企业官方网站怎么查福州网站提升排名
  • 平面设计好找工作不河北网站优化建设
  • 营销型网站建设就找山东艾乎建站wordpress 自定义字段 排序
  • 网站建设江西有多少家wordpress静态分页
  • 临沂做网站费用三维宣传片制作公司
  • 加强校园网站建设网站开发技术现状
  • 怀集网站建设办公室电脑局域网组建
  • 网站一级页面标题怎么做的营销型网站应用
  • 域名网站免费建站商务网站规划与设计
  • 怎么采集网站内容楼市最新消息2022
  • 最好看的网站设计手机设计企业网站