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

平台网站设计wordpress阿里百秀5.4

平台网站设计,wordpress阿里百秀5.4,青岛标志设计公司,全球设计学院排名使用拦截器 在方法前标注自定义注解拦截所有请求&#xff0c;只处理带有该注解的方法 自定义注解&#xff1a; 常用元注解&#xff1a;Target, Rentention, Document, Inherited如何读取注解&#xff1a; - Method.getDeclaredAnnotations() - Method.getAnnotaion(Class<T&…
  • 使用拦截器
    • 在方法前标注自定义注解
    • 拦截所有请求,只处理带有该注解的方法
  • 自定义注解:
    • 常用元注解:@Target, @Rentention, @Document, @Inherited
    • 如何读取注解:
      - Method.getDeclaredAnnotations()
      - Method.getAnnotaion(Class<T> annotationClass)

业务场景:未登陆状态下,用户不能访问需要登陆才能访问的页面,例如修改个人信息页面等。

1. 自定义注解

package com.nowcoder.community.annotation;import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LoginRequired {}

2. 在方法前加上该注解

@LoginRequired
@RequestMapping(path = "/setting",method = RequestMethod.GET)
public String getSettingPage(){return "/site/setting";
}

3. 定义拦截器

package com.nowcoder.community.controller.Interceptor;import com.nowcoder.community.annotation.LoginRequired;
import com.nowcoder.community.entity.User;
import com.nowcoder.community.util.HostHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.lang.reflect.Method;@Component
public class LoginRequireInterception implements HandlerInterceptor {@Autowiredprivate HostHolder hostHolder;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {if(handler instanceof HandlerMethod) {  // 拦截到类型为方法HandlerMethod handlerMethod = (HandlerMethod) handler;Method method = handlerMethod.getMethod();  // 获取方法LoginRequired loginRequired = method.getAnnotation(LoginRequired.class);  // 获取方法的注解if (loginRequired != null && hostHolder.getUser() == null) {  // 方法是loginRequired且user没登陆,需要拦截response.sendRedirect(request.getContextPath() + "/login");return false;}}return true;}
}

4. 配置拦截器

package com.nowcoder.community.config;import com.nowcoder.community.controller.Interceptor.AlphaInterceptor;
import com.nowcoder.community.controller.Interceptor.LoginRequireInterception;
import com.nowcoder.community.controller.Interceptor.LoginTicketInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configurationpublic class WebMvcConfig implements WebMvcConfigurer {@Autowiredprivate AlphaInterceptor alphaInterceptor;@Autowiredprivate LoginTicketInterceptor loginTicketInterceptor;@Autowiredprivate LoginRequireInterception loginRequireInterception;@Overridepublic void addInterceptors(InterceptorRegistry registry) {// 通过重写addInterceptors()方法,可以配置拦截器,对请求进行预处理或后处理。registry.addInterceptor(loginRequireInterception).excludePathPatterns("/**/*.css", "/**/*.js", "/**/*.png", "/**/*.jpg", "/**/*.jpeg");}}
http://www.yayakq.cn/news/947330/

相关文章:

  • 天门网站设计WordPress在线课堂
  • 英文网站建设 深圳开发公司组织架构及岗位职责
  • php网站开发有什么优点河南省建设厅陈华平官方网站
  • 网站开发使用什么软件建设部四库一平台查询网站
  • 未备案网站通知微商软文范例大全100
  • 学校网站建设解决方案wordpress已运行时间
  • 赞皇建站建设电商网站建设需要
  • 利用js做网站触屏手机网站建设
  • 好看的网站在哪里好找开发网站做什么
  • 炫丽的网站wordpress红酒主题
  • 建设网站管理规定太原网站制作计划
  • 芜湖新芜湖网站建设招标文件免费下载网站
  • 书法网站建站目标泉港网站建设推广服务公司
  • 卓商网站建设电商平台排行榜
  • p2p网站开发用什么平台企业分类信息网
  • 深圳网站建设外包公司排名用python 做网站
  • 建一个类似亨物说网站建设费用360建设网站免费
  • 深圳宝安建网站网站建设安全方案
  • 自己的网站怎么做app如何看一个站点是不是有wordpress
  • 保定网站制作专业外贸网站关键词
  • 公司网站设计建议北京百度seo代理
  • 给单位做网站需要多少钱帮做网站的网站
  • Paas网站建设网站备案填写电话号码
  • 做网站 南京如何在网上建立自己的网站
  • 中英文公司网站网络营销的相关知识
  • 嘉兴 网站 建设一亩田的网络营销方式
  • 信息发布网站模板下载监理网站建设价格多少
  • 网站开发 营业执照西城网站建设浩森宇特
  • 网站建设合同验收标准云匠网接单能信吗
  • 苏州网站建设网站优化3合1网站建设价格