首页 » Web前端 » phpmethodgetpost技巧_SpringMvc一初识

phpmethodgetpost技巧_SpringMvc一初识

访客 2024-12-09 0

扫一扫用手机浏览

文章目录 [+]

<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>成功页面</title></head><body> <h2>KH96 Success Page</h2></body></html>2.3 测试

2.4 总结

springMvc利用流程小结:

phpmethodgetpost技巧_SpringMvc一初识

1、Tomcat做事器启动时,自动创建前端核心掌握器的实例-DispatcherServlet,同时自动读取配置的spring-mvc.xml核心配置文件,创建容器工具,并扫描组件加入到容器中;即:将掌握器组件(加了@Controller表明)加入到容器中,并自动解析加入的要求掌握器,可以得到要求处理url和要求处理方法的映射;2、客户端浏览器,发送要求:http://localhost:8080/springmvc-01/helloMvc3、要求会被 前端核心掌握器 拦截(匹配到前端核心掌握器的url-pattern)4、前端核心掌握器 ,自动根据要求url和要求处理方法的映射关系,进行映射查找,如果找到了对应关系,自动将当前要求发送给目标要求处理器的要求处理方法,进行业务处理,如果没有找到,直接报缺点404;5、目标要求处理方法,处理完业务后,返回一个目标视图的名称-success6、返回的目标视图名称,仍旧会交给 前端核心掌握器 进行视图解析(自动调用容器中添加的视图解析器解析),会得到一个真实的目标物理视图页面(要跳转的真实页面),进行相应跳转目标页面给浏览器显示;3、@RequestMapping3.1 @RequestMapping可以写的位置

类上和方法上 :

phpmethodgetpost技巧_SpringMvc一初识
(图片来自网络侵删)
类上:相对付web运用根目录的;方法上:相对付类上的映射,如果类上没有,便是相对付web运用根目录;3.1.1 只用方法上有

@RequestMapping("/testSpringMvcRequestMappingTarget")public String testMvcRequestMappingTarget(){ //返回成功页面 return "hello";}

测试

3.1.2 类上 和 方法上都有

@Controller@RequestMapping("/kh96")public class SpringMvcController { @RequestMapping("/testSpringMvcRequestMappingTarget") public String testMvcRequestMappingTarget(){ //返回成功页面 return "hello"; } }

测试

3.2 method属性浸染:指定当前要求处理方法的要求办法;一旦指定了要求办法,就只能利用指定的要求办法,才可以映射处理,不指定,自动适配(所有办法都可以);method 属性可以指定多个要求办法;3.2.1 method = RequestMethod.GET

@RequestMapping(value = "/testSpringMvcRequestMappingMethodGet",method = RequestMethod.GET)public String testSpringMvcRequestMappingMethodGet(){ System.out.println("----- @RequestMapping method = RequestMethod.GET ------"); //返回成功页面 return "hello";}

利用PostMan测试

Get测试

Post测试

3.2.2 method = RequestMethod.POST

@RequestMapping(value = "/testSpringMvcRequestMappingMethodPost",method = RequestMethod.POST)public String testSpringMvcRequestMappingMethodPost(){ System.out.println("----- @RequestMapping method = RequestMethod.Post ------"); //返回成功页面 return "hello";}

Get测试

Post测试

3.2.3 method = {RequestMethod.GET,RequestMethod.POST})

@RequestMapping(value = "/testSpringMvcRequestMappingMethodGetAndPost",method = {RequestMethod.GET,RequestMethod.POST})public String testSpringMvcRequestMappingMethodGetAndPost(){ System.out.println("----- @RequestMapping method = RequestMethod.Post ------"); //返回成功页面 return "hello";}

Get测试

Post测试

3.3 params属性

指定当前要求处理方法对付要求,必要携带的参数:

写法1:指定当前要求必须携带的参数名,没有参数值,可以指定多个(大括号,逗号分割),如果要求没有携带params的所有参数,要求404;写法2:指定当前要求必须携带的参数名和对应的参数值,可以指定多个(大括号,逗号分割),如果要求没有携带params指定的所有参数,要求404,如果要求携带的参数及对应的参数值不匹配,要求404;把稳:携带的参数值必须是指定的参数值总结,必须携带所有的参数,如果有指定参数值,必须携带参数值且携带的参数值必须同等;3.3.1 params ={"uname"}

指定一个参数,不指定参数值;

@RequestMapping(value = "/testSpringMvcRequestMappingParams",params ={"uname"} )public String testSpringMvcRequestMappingParams(){ System.out.println("----- @RequestMapping 属性 params------"); //返回成功页面 return "hello";}

测试,不带参数

测试,带参数,不带值

测试,带参数,带值

3.3.2 params ={"uname=kh96"}

指定一个参数,指定值;

@RequestMapping(value = "/testSpringMvcRequestMappingParams",params ={"uname=kh96"} )public String testSpringMvcRequestMappingParams(){ System.out.println("----- @RequestMapping 属性 params------"); //返回成功页面 return "hello";}

测试,带参数,带值,值不匹配

测试,带参数,带值,值匹配

3.3.3 params ={"uname=kh96","upwd=123"}

指定两个参数,并指定值;

@RequestMapping(value = "/testSpringMvcRequestMappingParams",params ={"uname=kh96","upwd=123"})public String testSpringMvcRequestMappingParams(){ System.out.println("----- @RequestMapping 属性 params------"); //返回成功页面 return "hello";}

测试,带一个参数,并指定值

测试,带两个参数,并指定第一个值

测试,带两个参数,并指定第两个值

3.4 headers属性

指定当前要求处理方法对付要求,必要携带的要求头参数,用法和params类似,参数位置不同;

@RequestMapping(value = "/testSpringMvcRequestMappingHeaders",headers = {"token=123"})public String testSpringMvcRequestMappingHeaders(){ System.out.println("----- @RequestMapping 属性 headers------"); //返回成功页面 return "hello";}

测试,紧张不雅观察参数位置,其他参数规则跟params同等

3.5 @RequestMapping + @PathVariable

要求映射表明:参数占位符表明 @PathVariable:

写法:只能携带要求处理方法的形参中,自动将RequestMapping中指定的url利用的占位符绑定参数值,即:要求地址映射为: /url/{参数名},目标要求为:/url/参数值,自动将参数值绑定到指定参数名上;哀求1:@RequestMapping("指定参数名")表明要求url中,指定的占位符参数名,必须跟当前要求方法形参中@PathVariable表明指定的参数名同等;否者报错: Could not find @PathVariable [utel] in @RequestMapping哀求2:@RequestMapping,只写表明,不指定参数名,指定的占位符参数名,必须跟当前要求方法形参名同等(也便是默认为形参名);否则,报错:Could not find @PathVariable [uemail] in @RequestMapping3.5.1 测试3.5.1.1 占位符与@PathVariable表明指定的参数名不一致

@RequestMapping("/testSpringMvcRequestMappingPathVariable/{utel#}/{uemail}")public String testSpringMvcRequestMappingPathVariable(@PathVariable("utel") String utel,@PathVariable("uemail") String uemail){ System.out.println("----- @RequestMapping + @PathVariable utel:"+utel+",uemail"+uemail+" ------"); //返回成功页面 return "hello";}

测试结果

3.5.1.2 占位符与@PathVariable表明指定的参数名同等

@RequestMapping("/testSpringMvcRequestMappingPathVariable/{utel}/{uemail}")public String testSpringMvcRequestMappingPathVariable(@PathVariable("utel") String utel,@PathVariable("uemail") String uemail){ System.out.println("----- @RequestMapping + @PathVariable utel:"+utel+",uemail"+uemail+" ------"); //返回成功页面 return "hello";}

测试结果

3.5.1.3 @PathVariable不指定参数名

测试,占位符与形参不一致

@RequestMapping("/testSpringMvcRequestMappingPathVariable/{utel}/{uemail#}")public String testSpringMvcRequestMappingPathVariable(@PathVariable("utel") String utel,@PathVariable String uemail){ System.out.println("----- @RequestMapping + @PathVariable utel:"+utel+",uemail"+uemail+" ------"); //返回成功页面 return "hello";}

测试结果

测试,占位符与形参同等

@RequestMapping("/testSpringMvcRequestMappingPathVariable/{utel}/{uemail}")public String testSpringMvcRequestMappingPathVariable(@PathVariable("utel") String utel,@PathVariable String uemail){ System.out.println("----- @RequestMapping + @PathVariable utel:"+utel+",uemail"+uemail+" ------"); //返回成功页面 return "hello";}

测试结果

4.Rest风格get------查询selectpost------新增insertput------更新updatedelete------删除delete

相同的要求路径,通过要求办法判断要求方法;

自定义要求办法,一定要带一个名字为_method的参数;

4.1 Rest风格 要求转换过滤器

<!-- Rest风格 要求转换过滤器--><filter> <filter-name>hiddenHttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class></filter><filter-mapping> <filter-name>hiddenHttpMethodFilter</filter-name> <url-pattern>/</url-pattern></filter-mapping>4.1 get------查询 select

要求方法

//要求映射表明:rest风格处理-get,查询select//@RequestMapping(value = "/testSpringMvcRequestMappingRestGet/{uid}",method = RequestMethod.GET)@RequestMapping(value = "/testSpringMvcRequestMappingRest/{uid}",method = RequestMethod.GET)public String testSpringMvcRequestMappingRestGet(@PathVariable("uid") String uid){ System.out.println("----- Rest Get 根据 uid:"+uid+" 查询用户详情 ------"); //返回成功页面 return "hello";}

jsp

<h3>Get 要求映射表明:rest风格处理-get,查询select</h3><h3><a href="${pageContext.request.contextPath}/testSpringMvcRequestMappingRest/KH96_01">Test SpringMvc Rest Get</a> </h3>

测试

4.2post------新增 insert

//要求映射表明:rest风格处理-post,新增insert//@RequestMapping(value = "/testSpringMvcRequestMappingRestPost",method = RequestMethod.POST)@RequestMapping(value = "/testSpringMvcRequestMappingRest",method = RequestMethod.POST)public String testSpringMvcRequestMappingRestPost(){ System.out.println("----- Rest Post 新增用户详情 ------"); //返回成功页面 return "hello";}

jsp

<h3>Post 求映射表明:rest风格处理-post,新增insert</h3><form action="testSpringMvcRequestMappingRest" method="post"> <input type="submit" value="Test SpringMvc Rest Post"></form>

测试

4.3 put------更新 update

//要求映射表明:rest风格处理-put,更新update//@RequestMapping(value = "/testSpringMvcRequestMappingRestPut",method = RequestMethod.PUT)@RequestMapping(value = "/testSpringMvcRequestMappingRest",method = RequestMethod.PUT)public String testSpringMvcRequestMappingRestPut(){ System.out.println("----- Rest Put 更新用户详情 ------"); //返回成功页面 return "hello";}

jsp

<h3>Put 要求映射表明:rest风格处理-put,更新update</h3><form action="testSpringMvcRequestMappingRest" method="post"> <input type="hidden" name="_method" value="put"> <input type="submit" value="Test SpringMvc Rest put"></form>

测试

4.4 delete------删除 delete

//要求映射表明:rest风格处理-delete,删除delete//@RequestMapping(value = "/testSpringMvcRequestMappingRestDelete/{uid}",method = RequestMethod.DELETE)@RequestMapping(value = "/testSpringMvcRequestMappingRest/{uid}",method = RequestMethod.DELETE)public String testSpringMvcRequestMappingRestDelete(@PathVariable("uid") String uid){ System.out.println("----- Rest Delete 根据 uid:"+uid+" 删除用户 ------"); //返回成功页面 return "hello";}

jsp

<h3>Delete 要求映射表明:rest风格处理-delete,删除delete</h3><form action="testSpringMvcRequestMappingRest/KH96_01" method="post"> <input type="hidden" name="_method" value="delete"> <input type="submit" value="Test SpringMvc Rest delete"></form>

测试

相关文章

大数据栅格,未来城市管理的智慧之翼

随着科技的飞速发展,大数据技术在各个领域的应用日益广泛,其中,大数据栅格技术在城市管理中的应用尤为引人注目。大数据栅格,作为城市管...

Web前端 2024-12-16 阅读0 评论0

大数据水泵,智慧农业的“心脏”泵动未来

在农业现代化进程中,智慧农业逐渐成为农业发展的新方向。其中,大数据水泵作为智慧农业的核心组成部分,为农业灌溉提供了高效、智能的解决...

Web前端 2024-12-16 阅读0 评论0