ps网站建设教程,wordpress程序建站,网站到期了怎么办,广告设计软件photoshop三、RequestMapping注解1、RequestMapping注解的功能从注解名称上我们可以看到#xff0c;RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来#xff0c;建立映射关系。SpringMVC 接收到指定的请求#xff0c;就会来找到在映射关系中对应的控制器方法来处理…三、RequestMapping注解1、RequestMapping注解的功能从注解名称上我们可以看到RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来建立映射关系。SpringMVC 接收到指定的请求就会来找到在映射关系中对应的控制器方法来处理这个请求。2、RequestMapping注解的位置RequestMapping标识一个类设置映射请求的请求路径的初始信息RequestMapping标识一个方法设置映射请求请求路径的具体信息Controller
RequestMapping(/test)
public class RequestMappingController {//此时请求映射所映射的请求的请求路径为/test/testRequestMappingRequestMapping(/testRequestMapping)public String testRequestMapping(){return success;}}3、RequestMapping注解的value属性RequestMapping注解的value属性通过请求的请求地址匹配请求映射RequestMapping注解的value属性是一个字符串类型的数组表示该请求映射能够匹配多个请求地址所对应的请求RequestMapping注解的value属性必须设置至少通过请求地址匹配请求映射a th:href{/testRequestMapping}测试RequestMapping的value属性--/testRequestMapping/abr
a th:href{/test}测试RequestMapping的value属性--/test/abrRequestMapping(value {/testRequestMapping, /test}
)
public String testRequestMapping(){return success;
}4、RequestMapping注解的method属性RequestMapping注解的method属性通过请求的请求方式get或post匹配请求映射RequestMapping注解的method属性是一个RequestMethod类型的数组表示该请求映射能够匹配多种请求方式的请求若当前请求的请求地址满足请求映射的value属性但是请求方式不满足method属性则浏览器报错405Request method POST not supported超链接方式只能是GET方式get和post区别get更快但是不安全get传输数据量小post大文件上传只能用posta th:href{/test}测试RequestMapping的value属性--/test/abr
form th:action{/test} methodpostinput typesubmit
/formRequestMapping(value {/testRequestMapping, /test},method {RequestMethod.GET, RequestMethod.POST}
)
public String testRequestMapping(){return success;
}注1、对于处理指定请求方式的控制器方法SpringMVC中提供了RequestMapping的派生注解处理get请求的映射--GetMapping处理post请求的映射--PostMapping处理put请求的映射--PutMapping处理delete请求的映射--DeleteMapping2、常用的请求方式有getpostputdelete但是目前浏览器只支持get和post若在form表单提交时为method设置了其他请求方式的字符串put或delete则按照默认的请求方式get处理若要发送put和delete请求则需要通过spring提供的过滤器HiddenHttpMethodFilter在RESTful部分会讲到3、 如果不设置method时则不以请求方式为匹配条件则认为是什么条件都可以5、RequestMapping注解的params属性了解RequestMapping注解的params属性通过请求的请求参数匹配请求映射RequestMapping注解的params属性是一个字符串类型的数组可以通过四种表达式设置请求参数和请求映射的匹配关系param要求请求映射所匹配的请求必须携带param请求参数!param要求请求映射所匹配的请求必须不能携带param请求参数paramvalue要求请求映射所匹配的请求必须携带param请求参数且paramvalueparam!value要求请求映射所匹配的请求必须携带param请求参数但是param!valuea th:href{/test(usernameadmin,password123456)测试RequestMapping的params属性--/test/abrRequestMapping(value {/testRequestMapping, /test},method {RequestMethod.GET, RequestMethod.POST},params {username,password!123456}
)
public String testRequestMapping(){return success;
}注若当前请求满足RequestMapping注解的value和method属性但是不满足params属性此时页面回报错400Parameter conditions username, password!123456 not met for actual request parameters: username{admin}, password{123456}6、RequestMapping注解的headers属性了解RequestMapping注解的headers属性通过请求的请求头信息匹配请求映射RequestMapping注解的headers属性是一个字符串类型的数组可以通过四种表达式设置请求头信息和请求映射的匹配关系header要求请求映射所匹配的请求必须携带header请求头信息!header要求请求映射所匹配的请求必须不能携带header请求头信息headervalue要求请求映射所匹配的请求必须携带header请求头信息且headervalueheader!value要求请求映射所匹配的请求必须携带header请求头信息且header!value若当前请求满足RequestMapping注解的value和method属性但是不满足headers属性此时页面显示404错误即资源未找到7、SpringMVC支持ant风格的路径模糊匹配表示任意的单个字符*表示任意的0个或多个字符**表示任意的一层或多层目录0层目录直接访问也可以注意在使用**时只能使用/**/xxx的方式8、SpringMVC支持路径中的占位符重点RestFul方式原始方式/deleteUser?id1rest方式/deleteUser/1SpringMVC路径中的占位符常用于RESTful风格中当请求路径中将某些数据通过路径的方式传输到服务器中就可以在相应的RequestMapping注解的value属性中通过占位符{xxx}表示传输的数据在通过PathVariable注解将占位符所表示的数据赋值给控制器方法的形参也只能通过这一种注解获取占位符a th:href{/testRest/1/admin}测试路径中的占位符--/testRest/abrRequestMapping(/testRest/{id}/{username})
public String testRest(PathVariable(id) String id, PathVariable(username) String username){System.out.println(id:id,username:username);return success;
}
//最终输出的内容为--id:1,username:admin注意这个占位符如果存在就必须配置相应参数只有斜线没有值值为空也不行四、SpringMVC获取请求参数1、通过ServletAPI获取将HttpServletRequest作为控制器方法的形参此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象我们可以调用HttpServletRequest因为ServletDispatcher可以自动为方法注入值RequestMapping(/testParam)
public String testParam(HttpServletRequest request){String username request.getParameter(username);String password request.getParameter(password);System.out.println(username:username,password:password);return success;
}2、通过控制器方法的形参获取请求参数在控制器方法的形参位置设置和请求参数同名的形参当浏览器发送请求匹配到请求映射时在DispatcherServlet中就会将请求参数赋值给相应的形参a th:href{/testParam(usernameadmin,password123456)}测试获取请求参数--/testParam/abrRequestMapping(/testParam)
public String testParam(String username, String password){System.out.println(username:username,password:password);return success;
}注若请求所传输的请求参数中**有多个同名的请求参数**此时可以在控制器方法的形参中设置字符串数组或者字符串类型的形参接收此请求参数若使用字符串数组类型的形参此参数的数组中包含了每一个数据若使用字符串类型的形参此参数的值为每个数据中间使用逗号拼接的结果3、RequestParamRequestParam是将请求参数和控制器方法的形参创建映射关系RequestParam注解一共有三个属性value指定为形参赋值的请求参数的参数名required设置是否必须传输此请求参数默认值为true若设置为true时则当前请求必须传输value所指定的请求参数若没有传输该请求参数且没有设置defaultValue属性则页面报错400Required String parameter xxx is not present若设置为false则当前请求不是必须传输value所指定的请求参数若没有传输则注解所标识的形参的值为nulldefaultValue不管required属性值为true或false当value所指定的请求参数没有传输或传输的值为时则使用默认值为形参赋值4、RequestHeaderRequestHeader是将请求头信息和控制器方法的形参创建映射关系RequestHeader注解一共有三个属性value、required、defaultValue用法同RequestParamRequestMapping(/testHeader)public String testHeader(RequestHeader(Host) String host){System.out.println(host: host);return success;}相比于RequestParam可用可不用想获取请求头信息必须用RequestHeader5、CookieValueCookieValue是将cookie数据和控制器方法的形参创建映射关系CookieValue注解一共有三个属性value、required、defaultValue用法同RequestParam6、通过POJO获取请求参数直接使用一个对象接受多个参数并封装进对象可以在控制器方法的形参位置设置一个实体类类型的形参此时若浏览器传输的请求参数的参数名和实体类中的属性名一致那么请求参数就会为此属性赋值form th:action{/testpojo} methodpost用户名input typetext nameusernamebr密码input typepassword namepasswordbr性别input typeradio namesex value男男input typeradio namesex value女女br年龄input typetext nameagebr邮箱input typetext nameemailbrinput typesubmit
/formRequestMapping(/testpojo)
public String testPOJO(User user){System.out.println(user);return success;
}
//最终结果--User{idnull, username张三, password123, age23, sex男, email123qq.com}7、解决获取请求参数的乱码问题servlet里面设置encoding在设置之前的请求是不生效的。baseServlet里面设置了encoding其他请求是可以生效的但是如果把设置放到具体处理请求的方法中不生效乱码问题也分post乱码和get乱码get请求的乱码一般是由tomcat造成的去修改tomcat配置文件server.xml URIEncodingUTF-8此处配置好之后则可以永远解决get乱码问题post请求乱码一般情况下dispatchServlet获取请求在设置request编码之前所以在方法中配置无效。需要找到一种技术比servlet加载更早加载顺序ServletContextListener-Filter-servlet同时listener仅做监听之用所以使用filter接下来对filter进行配置。解决获取请求参数的乱码问题可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter但是必须在web.xml中进行注册!--配置springMVC的编码过滤器--
filterfilter-nameCharacterEncodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-paraminit-paramparam-nameforceResponseEncoding/param-nameparam-valuetrue/param-value/init-param
/filter
filter-mappingfilter-nameCharacterEncodingFilter/filter-nameurl-pattern/*/url-pattern
/filter-mapping注SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前否则无效
文章转载自: http://www.morning.jzykw.cn.gov.cn.jzykw.cn http://www.morning.rggky.cn.gov.cn.rggky.cn http://www.morning.nkkpp.cn.gov.cn.nkkpp.cn http://www.morning.dqwkm.cn.gov.cn.dqwkm.cn http://www.morning.xnyfn.cn.gov.cn.xnyfn.cn http://www.morning.wxfgg.cn.gov.cn.wxfgg.cn http://www.morning.bpmnq.cn.gov.cn.bpmnq.cn http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com http://www.morning.jklns.cn.gov.cn.jklns.cn http://www.morning.tsynj.cn.gov.cn.tsynj.cn http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn http://www.morning.drbwh.cn.gov.cn.drbwh.cn http://www.morning.qfrsm.cn.gov.cn.qfrsm.cn http://www.morning.nytgk.cn.gov.cn.nytgk.cn http://www.morning.slwqt.cn.gov.cn.slwqt.cn http://www.morning.rqgbd.cn.gov.cn.rqgbd.cn http://www.morning.grcfn.cn.gov.cn.grcfn.cn http://www.morning.pqcrz.cn.gov.cn.pqcrz.cn http://www.morning.lthtp.cn.gov.cn.lthtp.cn http://www.morning.bsqbg.cn.gov.cn.bsqbg.cn http://www.morning.rswfj.cn.gov.cn.rswfj.cn http://www.morning.kpcjl.cn.gov.cn.kpcjl.cn http://www.morning.mghgl.cn.gov.cn.mghgl.cn http://www.morning.rklgm.cn.gov.cn.rklgm.cn http://www.morning.ynbyk.cn.gov.cn.ynbyk.cn http://www.morning.eviap.com.gov.cn.eviap.com http://www.morning.hbnwr.cn.gov.cn.hbnwr.cn http://www.morning.srltq.cn.gov.cn.srltq.cn http://www.morning.nypgb.cn.gov.cn.nypgb.cn http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn http://www.morning.mtbth.cn.gov.cn.mtbth.cn http://www.morning.bwnd.cn.gov.cn.bwnd.cn http://www.morning.drswd.cn.gov.cn.drswd.cn http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn http://www.morning.dwfzm.cn.gov.cn.dwfzm.cn http://www.morning.qfkxj.cn.gov.cn.qfkxj.cn http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn http://www.morning.rrxgx.cn.gov.cn.rrxgx.cn http://www.morning.prhqn.cn.gov.cn.prhqn.cn http://www.morning.fydsr.cn.gov.cn.fydsr.cn http://www.morning.cnxpm.cn.gov.cn.cnxpm.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.fhqdb.cn.gov.cn.fhqdb.cn http://www.morning.rqhdt.cn.gov.cn.rqhdt.cn http://www.morning.qxlxs.cn.gov.cn.qxlxs.cn http://www.morning.wgdnd.cn.gov.cn.wgdnd.cn http://www.morning.mwzt.cn.gov.cn.mwzt.cn http://www.morning.wnhsw.cn.gov.cn.wnhsw.cn http://www.morning.qyqmj.cn.gov.cn.qyqmj.cn http://www.morning.hjjhjhj.com.gov.cn.hjjhjhj.com http://www.morning.wsrcy.cn.gov.cn.wsrcy.cn http://www.morning.ktnmg.cn.gov.cn.ktnmg.cn http://www.morning.gfrjs.cn.gov.cn.gfrjs.cn http://www.morning.xxfxxf.cn.gov.cn.xxfxxf.cn http://www.morning.wfyzs.cn.gov.cn.wfyzs.cn http://www.morning.hlwzd.cn.gov.cn.hlwzd.cn http://www.morning.kngqd.cn.gov.cn.kngqd.cn http://www.morning.jqlx.cn.gov.cn.jqlx.cn http://www.morning.jqcrf.cn.gov.cn.jqcrf.cn http://www.morning.dbylp.cn.gov.cn.dbylp.cn http://www.morning.pxbky.cn.gov.cn.pxbky.cn http://www.morning.tqqfj.cn.gov.cn.tqqfj.cn http://www.morning.rfpxq.cn.gov.cn.rfpxq.cn http://www.morning.hmhdn.cn.gov.cn.hmhdn.cn http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn http://www.morning.bswhr.cn.gov.cn.bswhr.cn http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn http://www.morning.zqcdl.cn.gov.cn.zqcdl.cn http://www.morning.msgrq.cn.gov.cn.msgrq.cn http://www.morning.daidudu.com.gov.cn.daidudu.com http://www.morning.ntzbr.cn.gov.cn.ntzbr.cn http://www.morning.fpzpb.cn.gov.cn.fpzpb.cn http://www.morning.plchy.cn.gov.cn.plchy.cn http://www.morning.sgpny.cn.gov.cn.sgpny.cn http://www.morning.mxnhq.cn.gov.cn.mxnhq.cn http://www.morning.rpljf.cn.gov.cn.rpljf.cn http://www.morning.wkcl.cn.gov.cn.wkcl.cn http://www.morning.mmxnb.cn.gov.cn.mmxnb.cn http://www.morning.jlktz.cn.gov.cn.jlktz.cn