SpringBoot基础操作
一、获取url请求参数三种方法
注:前两种方法都使用了json打印,也可以手动打印,我这边用fastjson方便一点
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> </dependency>
1、使用HTTPServletRequest获取
@RequestMapping("index") @ResponseBody public String index(HttpServletRequest request){ System.out.println(JSON.toJSONString(request.getParameterMap())); return JSON.toJSONString(request.getParameterMap()); }
该方法需要引入Servlet包
<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency>
2、使用RequestParam注解获取
@RequestMapping("index2") @ResponseBody public String index2(@RequestParam Map<String,String> paramMap){ System.out.println(JSON.toJSONString(paramMap)); return JSON.toJSONString(paramMap); }
2、使用AOP切面获取
需要引入切面包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
@Component @Aspect public class WebControllerAop { @Pointcut("execution(* com.example..*(..))") public void executeService(){ } @Before("executeService()") public void doBeforeAdvice(JoinPoint joinPoint) { for (Object object : joinPoint.getArgs()) { System.out.println("类路径:"+joinPoint.getTarget().getClass().getName() + "." + joinPoint.getSignature().getName() + " : 请求参数 : " + object.toString()); } } }
注:我这里使用第一种一直获取不到,后来发现是引入web包错误
@RequestMapping("EPGModifiedInf") @ResponseBody public Map<String, Object> EPGModifiedInf(@RequestParam(required=false) Map<String, String> urlParams , @RequestBody(required=false) Map<String, Object> bodyParams){ log.info(" EPGModifiedInf 进入 "); if(urlParams!=null && urlParams.size()>0){ log.info(" EPGModifiedInf urlParams 请求参数为:"+JSON.toJSONString(urlParams)); } if(bodyParams!=null && bodyParams.size()>0){ log.info(" EPGModifiedInf bodyParams 请求参数为:"+JSON.toJSONString(bodyParams)); } Map<String,Object > map = new HashMap<>(); map.put("code",0); map.put("msg","Success"); log.info(" EPGModifiedInf 出去 "); return map; }