servle 四大域对象保存数据
|
page域指的是pageContext. |
|
request域request HttpServletContext |
|
session域session HttpSession |
application(当前web应用) |
application域指的是application ServletContext; |
SpringMvc有三种保存数据的方法
类对象:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private Integer age;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date sr;
}
一.request 在同一次请求下有效 (请求转发)
@RequestMapping("index01")
public String index02(HttpServletRequest request){
User user2 = new User("李四",18,new Date());
request.setAttribute("user2",user2);
return "Hello";
}
因为这里有控制器所以字节也“Hello”jsp页面
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
jsp页面通过el表达式来获取保存到request中的数据
model:${user2}
访问结果
二,model在同一次请求下有效 (请求转发)
model和request相同有效期都是同一请求下
@Controller//声明控制层
@RequestMapping("hello01")//映射路径
public class Hello {
@RequestMapping("index")
public String index01(Model model){
User user = new User("张三",18,new Date());
model.addAttribute("user",user);
return "Hello";
}
同样用el表达式获取保存的数据
model:${user}
结果:
session 保存数据
用session 存储一个list集合 集合中放入User信息
@RequestMapping("index02")
public String index02(HttpSession httpSession){
User user3 = new User("李四",18,new Date());
User user4 = new User("王五",18,new Date());
User user5 = new User("赵六",18,new Date());
List<User> list=new ArrayList<User>();
list.add(user3);
list.add(user4);
list.add(user5);
httpSession.setAttribute("user3",list);
return "Hello";
}
jsp页面获取el表达式
session:${user3}
结果:
返回JSON类型数据
加入依赖 作用:jackson-databind依赖中自带转换
<!--jackson依赖 可以整合springmvc把java对象转换为json对象-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.4</version>
</dependency>
加入@ResponseBody注解 将返回值自动转为json类型
@RequestMapping("index2")
@ResponseBody
public List<Login> index2(){
Login login = new Login("麻子","Rqk6037","男",new Date());
Login login1 = new Login("老六","Rqk6037","男",new Date());
Login login2 = new Login("文武香贵","Rqk6037","男",new Date());
List<Login> list=new ArrayList<Login>();
list.add(login);
list.add(login1);
list.add(login2);
return list;
}
jsp页面
加入jsp 相关的jquery依赖
<script type="text/javascript" src="js/jquery-3.5.1.min.js"></script>
接受json数据并加入到表格中显示
<table id="usertable">
</table>
<script>
$.ajax({
url:"json1/index2",
type:"post",
success:function (result) {
alert(result)
var str="";
for (var i=0;i<result.length;i++){
str=str+"<tr><td>"+result[i].username+"</td><td>"+result[i].password+"</td><td>"+result[i].sex+"</td><td>"+result[i].sr+"</td></tr>"
}
$("#usertable").html(str)
},
dataType:"json",
})
</script>
jsp页面
时间的处理
如果时间类型为时间戳格式加入两个注解
时间戳:从1970年到现在经历的毫秒数
//Hh:24进制 接受前端传递时间格式参数时的转换
@DateTimeFormat(pattern = "yyyy-MM-dd")
//把java对象转换json格式时间
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")