# mvc-homework **Repository Path**: hwangrq/mvc-homework ## Basic Information - **Project Name**: mvc-homework - **Description**: 阶段三spring-mvc作业 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-20 - **Last Updated**: 2021-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mvc-homework ## 作业描述 阶段三spring-mvc作业 **一、编程题** 手写MVC框架基础上增加如下功能 1)定义注解@Security(有value属性,接收String数组),该注解用于添加在Controller类或者Handler方法上,表明哪些用户拥有访问该Handler方法的权限(注解配置用户名) 2)访问Handler时,用户名直接以参数名username紧跟在请求的url后面即可,比如http://localhost:8080/demo/handle01?username=zhangsan 3)程序要进行验证,有访问权限则放行,没有访问权限在页面上输出 注意:自己造几个用户以及url,上交作业时,文档提供哪个用户有哪个url的访问权限 **二、作业资料说明:** 1、提供资料:代码工程、验证及讲解视频。 2、讲解内容包含:题目分析、实现思路、代码讲解。 3、效果视频验证 1)展示关键实现代码 2)有访问权限则放行,没有访问权限在页面上输出 --- ## 代码工程 mvc-homework ## 验证 ```java @MySecurity("admin") @MyController @MyRequestMapping("/demo") public class DemoController { @MyAutowired private IDemoService demoService; @MyRequestMapping("/query") public String query(HttpServletRequest request, HttpServletResponse response, String name) { return demoService.get(name); } @MySecurity(value = {"吴宣仪","孟美岐","杨超越"}) @MyRequestMapping("produce101") public String produce101(String username) { return demoService.get(username); } } ``` - http://localhost:8080/demo/produce101?username=admin 可以访问`produce101`方法 - http://localhost:8080/demo/produce101?username=吴宣仪 可以访问`produce101`方法 - http://localhost:8080/demo/produce101?username=张三 不可以访问`produce101`方法 > @MySecurity加再类上,则该类所有方法,无论方法中有没有类中value(eg:admin),该用户都可以访问所有方法 > > @MySecurity加在方法上,则只对当前方法的验证权限有效 ## 讲解视频 百度云链接:https://pan.baidu.com/s/1H_MpBaWofdwGmkpxHpt9_w 提取码:j5k8 ## 笔记图片 SpringMVC.png ![](SpringMVC.png)