Spring MVC(三)
参考:http://c.biancheng.net/view/4406.html
讨论前端发送请求
1、发送方式
常见的有get、post、put和delete
其中get方式的发送信息可见,在请求的URL上
而其它三种信息不可见,put和delete是特殊的post
2、特殊
值直接在URL中,类似
http://a.b.c/doLogin/username/password
3、发送格式
这主要是针对post和put、delete方式来说
json格式,或者xml格式
4、多媒体格式
前后端不分离数据接收
1、通过实体Bean接收请求参数
- 适用于get和post提交请求方式
- Bean的属性名称必须与请求参数名称相同
@RequestMapping("/login")
public String login(UserForm user){}
2、通过处理方法的形参接收请求参数
- 适用于get和post提交请求方式
- 形参名必须与请求参数名称相同
- 该方法不会报404错误
@RequestMapping("/register")
public String register(String uname,String upass){}
3、通过HttpServletRequest接收请求参数
- 适用于get和post提交请求方式
@RequestMapping("/register")
public String register(HttpServletRequest request){}
4、通过@PathVariable接收URL中的请求参数
@RequestMapping("/user/{uname}/{upass}")
public String register(@PathVariable String uname,@PathVariable String upass){}
5、通过@RequestParam接收请求参数
- 适用于get和post提交请求参数
- 该方式会报404错误
@RequestMapping("/register")
public String register(@RequestParam String uname,
@RequestParam String upass){}
6、通过@ModelAttribute接收请求参数
- 适用于get和post提交请求方式
- 当 @ModelAttribute 注解放在处理方法的形参上时,用于将多个请求参数封装到一个实体对象,从而简化数据绑定流程,而且自动暴露为模型数据,在视图页面展示时使用
@RequestMapping("/register")
public String register(@ModelAttribute("user") UserForm user) {}
转发与重定向
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/login")
public String login() {
//转发到一个请求方法(同一个控制器类可以省略/index/)
return "forward:/index/isLogin";
}
@RequestMapping("/isLogin")
public String isLogin() {
//重定向到一个请求方法
return "redirect:/index/isRegister";
}
@RequestMapping("/isRegister")
public String isRegister() {
//转发到一个视图
return "register";
}
}
在 Spring MVC 框架中,不管是重定向或转发,都需要符合视图解析器的配置,如果直接转发到一个不需要 DispatcherServlet 的资源,例如:
return "forward:/html/my.html";
则需要使用 mvc:resources 配置:
<mvc:resources location="/html/" mapping="/html/**" />
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战