好程序员-千锋教育旗下高端IT职业教育品牌

400-811-9990
我的账户
好程序员

专注高端IT职业培训

亲爱的猿猿,欢迎!

已有账号,请

如尚未注册?

  • 客服QQ
  • 官方微信

    好程序员

    专注高端IT职业培训

[JavaEE] 好程序员Java培训分享SpringMVC之请求和响应

[复制链接]
751 0
叶子老师 发表于 2019-8-16 14:00:23 | 只看该作者 |阅读模式 打印 上一主题 下一主题
好程序员Java培训分享SpringMVC之请求和响应,前面我们学习了SpringMVC的基本配置,接下来一个非常重要的知识点是如何接受用户的请求以及如何将数据发送给用户。       
获得请求参数
获得页面参数的几种方式
1)通过参数名获得
给控制器的方法设置参数名和表单name相同
2)通过@RequestParam("参数名")注解设置参数
@RequestParam("表单元素的name") 参数类型 参数名
3)自动装箱,创建属性名和表单名称一样的类
把类作为方法的参数
通过参数名获得
页面表单:
<form action=”/user/login” method=”post”>
<input type=”text” name=”username”><br>
<input type=”password” name=”password”><br>
<input type=”submit” value=”登录”><br>
</form>
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(String username,String password){
System.out.println(“username : ” + username);
System.out.println(“password: ” + password);
return “index”;
}
}
注意:这里login方法的参数名必须和表单元素的name属性一致
通过@RequestParam("参数名")注解设置参数
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwd){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
return “index”;
}
}
注意:这里login方法的参数名必须和表单元素的name属性不需要一致,只需要在参数前面的注解@RequestParam中设置表单元素的名称就可以了。
自动装箱,创建属性名和表单名称一样的类
定义User类:
public class User{
private String username;
private String password;
省略getset方法
}
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(User user){
System.out.println(“username : ” + user.getName());
System.out.println(“password: ” + user.getPassword());
return “index”;
}
}
注意:login方法的参数使用了自定义类,该类的属性名称必须和表单元素名称一致,必须提供get和set方法。
将数据返回给页面
前面我们了解了如何从页面获取数据,下面我们将学习如何将数据返回给页面。
1)通过Map集合
在方法的参数中,添加Map集合,把数据存入集合
2)通过Model模型
在方法的参数中,添加Model参数,使用ModeladdAttribute("名称",) 添加数据
3)通过请求对象、Session对象
在方法中添加HttpServletRequest参数或HttpSession参数
通过Map集合
index.jsp页面中使用EL表达式来绑定数据:
<h2>你好,欢迎 ${username}</h2>
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwdMap<String,String> map){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
map.put(“username”,name);
return “index”;
}
}
注意:Map集合可以作为login方法的参数放在任意位置,在集合中存入的键username将是EL表达式${username}对应的名称,集合中存入的值会在页面中显示出来。
通过Model模型
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwdModel model){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
model.addAttribute(“username”,name);
return “index”;
}
}
注意:这里使用的是Mode对象,此对象的作用类似于前面的Map集合,不过它是专门用于保存数据,然后发送给页面的,实际开发中用得更多。
通过请求对象、Session对象
控制器:
@Controller
@RequestMapping(“/user”)
public class UserController{
@RequestMapping(“/login”)
public String login(@RequestParam(“username”)String name,
@RequestParam(“password”)String pwdHttpServletRequest req){
System.out.println(“username : ” + name);
System.out.println(“password: ” + pwd);
req.setAttribute(“username”,name);
return “index”;
}
}
注意:这里使用了JavaWeb中常用的HttpServletRequest请求对象,用于将数据传递给页面,也可以使用HttpSession对象,HttpSession中的对象在用户的所有组件中共享,对象保存在内存的时间比较长,所以尽量使用HttpServletRequest,以更加高效的使用内存。
总结
本章我们学习了控制器从页面获得数据的几种方式,以及将数据从控制器返回给页面的几种方式。通过本章的学习我们掌握了SpringMVC操作数据的基本方法,结合数据库我们将能实现一个基本的JavaWeb项目。
好程序员Java培训官网:http://cdxfjz.com/

精彩内容,一键分享给更多人!
收藏
收藏0
转播
转播
分享
淘帖0
支持
支持0
反对
反对0
回复

使用道具 举报

您需要登录后才可以回帖

本版积分规则

关注我们
千锋好程序员

开心飞艇官网北京校区(总部):北京市海淀区宝盛北里西区28号中关村智诚科创大厦

开心飞艇官网深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷B座A区605-619

杭州龙驰智慧谷校区:浙江省杭州市下沙经济技术开发区元成路199号龙驰智慧谷B座7层

郑州校区:郑州市二七区航海中路60号海为科技园C区10层、12层

开心飞艇官网Copyright 2007-2019 北京千锋互联科技有限公司 .All Right

京ICP备12003911号-5 京公安网11010802011455号

请您保持通讯畅通1对1咨询马上开启