原始请求只支持Post Get请求(默认的)
<form action="springMVCHandler/test/1234" method="post">
<input type="submit" value="提交">
</form>
但是如果是post请求,并且有隐藏域(隐藏域格式必须如下)
<form action="springMVCHandler/test/1234" method="post">
<input type="hidden" name="_method" value="DELETE">
<input type="submit" value="提交">
</form>
则过滤器将原始的请求 request加入新的请求方式DELETE,并将原始请求转为requestToUse请求(request+Delete请求)
最后将requestToUse 放入请求链中,后续再申请request时,实际就使用改造后的requestToUse
@RequestParam(“uname”): 接受前台传递过来的值,等价于request.getparameter(“uname”);
贴在方法接收的参数里面
@RequestMapping(value="testParam")
public String testParam(@RequestParam("uname") String name,@RequestParam(value="uage",required=false,defaultValue="23")Integer age) {
System.out.println("!!!");
return "success";//view/success.jsp 默认使用了请求转发的跳转方式
}
如果前台一个表单里面有两个input,则需要设置第二个@RequestParam()里面的required=false
防止前台有一个input没有发送值,而defaultValue则是设置如果没有发送值的默认值
@RequestHeader(“Accept-Language”) String head) 获取请求头的值
同样放在方法的参数里面
@RequestMapping(value="testRequestHeader")
public String testHeader(@RequestHeader("Accept-Language") String head) {
System.out.println(":"+head);
return "success";
}
Cookie:(服务端再接受第一次请求的时候,会给客户端分配一个session,改session包含一个sessionID)
@CookieValue获取cookie的值
@RequestMapping(value="testCookeValue")
public String testCooke(@CookieValue("JSESSIONID")String jsessionId) {
System.out.println(":"+jsessionId);
return "success";
}
在springMVC中也可以使用原生态的servlet API
HttpServletRequest:直接将servlet-api 中的类,接口等 写在springMVC所映射的方法参数即可
@RequestMapping(value="testObjectProperties")
public String testServletAPI(HttpServletRequest request) {
request.getParameter("name");
System.out.println(request);
return "success";
}
@RequestMapping(value=“test/{id}”,method=RequestMethod.GET):方法调用进入接口,写在方法名上面里面可以设置一个参数method,规定请求的类型:post,get,delete,put
value里面的id是前台传递过来的函数参数里面用@PathVariable(“id”) Integer id接收
@RequestMapping(value="welcome/")
public String welcome() {
return "success";//xml配置里添加了前缀/ view/ 后缀.jsp//默认使用了请求转发的方式
}
@sessionAttributes如果需要将数据放在session中可以在该类中添加这个注解:括号里带上ModelAndView ,ModelMap,Map,Model的key值
@ModelAttribute:经常在更新时使用
在任何一次请求前,都会先执行@ModelAttribute修饰的方法.该方法的参数且该方法中的map.put(“student”,student)可以将 对象 放入即将查询的参数中.
必须满足的约定:其中key 必须是即将查询的方法参数的首字母小写
如果不一致需要通过@ModelAttribute声明(使用时需要注意)
以下为模拟方法:
Result风格:@RequestMapping里面的value一样,但是根据method里面传递的方法来判断进入那个方法
补充