中介专门做别墅的网站,宁波网站建设与设计制作,wordpress文章提交,网易企业邮箱登入路口【知识要点】
方法映射概念 所谓的方法映射就是将前端发送的请求地址和后端提供的服务方法进行关联。在springMVC框架中主要使用Controller和RequestMapping两个注解符#xff0c;实现请求和方法精准匹配。注解符Controller Spring中包含了一个Controller接口#xff0c;但是…【知识要点】
方法映射概念 所谓的方法映射就是将前端发送的请求地址和后端提供的服务方法进行关联。在springMVC框架中主要使用Controller和RequestMapping两个注解符实现请求和方法精准匹配。注解符Controller Spring中包含了一个Controller接口但是实现Controller接口只能处理一个单一的请求使用起来非常不灵活。使用Controller注解可以标记类的实例是一个SpringMVC控制器对象并可以支持同时处理多个请求动作相对于实现变得更加简单更加灵活分发处理器会扫描使用了该注解类的方法注解符RequestMapping SpringMVC中使用RequestMapping来映射请求也就是通过它来指定控制器可以处理哪些URL请求。注解符RequestMapping可以使用到方法上也可以使用到类上。注解符RequestMapping使用在方法上与URL中最后一个反斜杠后值与方法建立映射关系注解在方法上时RequestMapping很多属性常用属性如下表所示使用这些属性规定匹配规则。注解在类上代表该类中所有方法都将映射为相对于类级别的请求该控制器所处理的所有请求都被映射到value属性值所指定的路径下起到窄化路径的作用 4方法映射的组合注解 Spring框架的4.3版本中引入了新的组合注解来帮助简化常用的HTTP方法的映射并更好的表达被注解方法的语义如下表所示。
【实验目的】
了解注解符Controller熟悉springMVC请求映射过程熟悉组合注解的使用掌握RequestMapping的使用
【实验内容】
编写前端控制器StudentController注解符Controller的使用验证注解符RequestMapping及其属性的使用
【实验步骤】
1. 创建SpringMVC工程demo2
2. 代码编写
在com.bjwl.controller包中添加学生控制类StudentController其代码如下所示
Controller
RequestMapping(student)
public class StudentController { RequestMapping(list) public void getAllStudent(HttpServletResponse response) throws IOException { response.setContentType(text/html;charsetutf-8); response.getWriter().write(测试注解符RequestMapping中value); }
} 代码的第1行使用注解符Controller标注该类的实例是一个控制器对象第2行在类上使用RequestMapping注解进行路径窄化表示请求路径必须包括student第4行在方法使用RequestMapping注解请求url中最后一部分值与注解符value中的值进行匹配从而建立请求与方法的映射关系
3. 验证RequestMapping属性
验证method属性下述代码中请求方法只能使用post方法代码如下所示
RequestMapping(valuelist2,method {RequestMethod.POST})
public void InsertStudent(HttpServletResponse response) throws IOException { response.setContentType(text/html;charsetutf-8); response.getWriter().write(测试注解符RequestMapping中method的使用);
} 验证params属性示例代码中匹配请求参数必须包含username和password且username的值不能是李四代码如下所示
RequestMapping(value verify3,params {username!李四,password})
public void handle3(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType(text/html;charsetutf-8); response.getWriter().write(测试注解符RequestMapping中paramsshuxing );
} 验证consumes和produces。示例代码中匹配的方法仅处理请求Content-Type为application/json类型的请求produces标识代表返回的内容类型为application/json代码如下所示
RequestMapping(value verify5,consumesapplication/json, producesapplication/json)
public void handle5(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType(application/json;charsetutf-8); response.getWriter().write(验证consumes和produces);
}4 验证headers属性。使用headers可以更精确的映射请求指定request中必须包含某些指定的header值才能让该方法处理请求代码如下所示。
RequestMapping(value verify6,headers Content-Typeapplication/json;charsetutf-8)
public void handle6(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setContentType(application/json;charsetutf-8); response.getWriter().write(验证headers属性);
} 4. 组合注解的使用
以下仅验证PostMapping和PutMapping注解示例代码如下。 PostMapping(insert)public void insert(HttpServletResponse response) throws IOException {response.setContentType(application/json;charsetutf-8);response.getWriter().write(验证PostMapping,新增成功);}PutMapping(update)public void update(HttpServletResponse response) throws IOException {response.setContentType(application/json;charsetutf-8);response.getWriter().write(验证PutMapping,修改成功);}修改请求方法类型返回404