Cette fois, je vais vous présenter springmvc pour implémenter l'intercepteur d'annotations. Quelles sont les précautions pour que springmvc implémente l'intercepteur d'annotations. Ce qui suit est un cas pratique, jetons un coup d'œil.
Lorsque j'écrivais un projet avec SpringMvc récemment, j'ai rencontré un problème, qui était le problème d'authentification de la méthode. J'ai travaillé sur ce problème pendant une journée et je l'ai finalement résolu. à la solution ci-dessous
Exigences du projet : Lorsque l'authentification est requise, il me suffit de l'étiqueter. Par exemple, les opérations qui ne peuvent être effectuées que par connexion utilisateur sont généralement effectuées lorsque nous exécutons la méthode. l'identité de l'utilisateur ajoute beaucoup de charge de travail et réinvente la roue. Avec les annotations Java, il vous suffit de mettre une étiquette sur la méthode qui nécessite une authentification :
Solution :
1. Créez d'abord une classe d'annotation :
@Documented @Inherited @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Auth { boolean validate() default true; }
2. Créez un autre intercepteur :
public class AuthInterceptor extends BaseInterceptor{ @Override public Boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if(handler.getClass().isAssignableFrom(HandlerMethod.class)){ Auth authPassport = ((HandlerMethod) handler).getMethodAnnotation(Auth.class); //没有声明需要权限,或者声明不验证权限 if(authPassport==null){ return true; } else{ //在这里实现自己的权限验证逻辑 if(true){ //如果验证成功返回true(这里直接写false来模拟验证失败的处理) System.out.println("执行权限校验了"); return true; } else{ //如果验证失败 //返回到登录界面 // System.out.println("权限校验对了"); // response.sendRedirect("account/login"); return false; } } } else{ return true; } } }
3. Configurez l'intercepteur : Vous devez ajouter le code suivant à *-servlet.xml Si vous avez personnalisé le fichier de configuration , vous pouvez également le mettre directement dans le fichier de configuration que vous avez défini
<.><mvc:interceptors> <bean class="com.benxq.shop.user.interceptors.AuthInterceptor"/> </mvc:interceptors>
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern> </servlet-mapping>
Comment utiliser JSONAPI en PHP
Étapes détaillées pour utiliser le menu arborescent de zTree
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!