SpringMVC-第二章

本文详细介绍了SpringMVC中视图解析器的作用,它负责将逻辑视图转换为物理视图。SpringMVC提供多种视图解析策略,允许配置多个解析器并指定优先级。内容还涵盖了界面跳转方式,包括转发和重定向,以及参数传递的多种方法,如Model、Session和Cookie。同时,讨论了Session与Cookie的安全性和性能差异。
摘要由CSDN通过智能技术生成

视图解析器(ViewResolver)
  视图解析器的作用是将逻辑视图转为物理视图,所有的视图解析器都必须实现ViewResolver接口。
   SpringMVC为逻辑视图名的解析提供了不同的策略,可以在Spring WEB上下文中配置一种或多种解析策略,并指定他们之间的先后顺序。每一种映射策略对应一个具体的视图解析器实现类。程序员可以选择一种视图解析器或混用多种视图解析器。可以通过order属性指定解析器的优先顺序,order越小优先级越高,SpringMVC会按视图解析器顺序的优先顺序对逻辑视图名进行解析,直到解析成功并返回视图对象,否则抛出ServletException异常。

界面跳转

  1. 经过视图解析器。根据return的值到springmvc-servlet.xml配置,经过视图解析器的拼接,组成一个新的URI地址,默认方法为转发
 <!-- 视图解析器   -->
	 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	 	<property name="prefix" value="/"></property>
	 	<property name="suffix" value=".jsp"></property>
	 </bean>
  1. 不经过视图解析器直接跳转,转发:return"forward:/***.jsp";

  2. 不经过视图解析器直接跳转,重定向:return"redirect:/***.jsp";

转发和重定向的区别

区别转发重定向
根目录包含项目访问地址没有项目访问地址
地址栏不会发生变化会发生变化
哪里跳转服务器端进行的跳转浏览器端进行的跳转
请区域中的数据不会丢失会丢失

request传递参数

  1. Servlet传统API
public String test(HttpServletRequest request) {
		request.setAttribute("tag", "HttpServletRequest request");
		return null;
	}
  1. Map/ Model/ModelMap
public String test(Map map) {
		map.put("tag", "Map map");
		return null;
	}
public String test(Model model) {
		model.addAttribute("tag", "Model model");
		return null;
	}
public String test(ModelMap modelMap) {
		modelMap.addAttribute("ModelMap modelMap");
		return null;
	}

**Session参数传递 **

  1. 传统方法HttpServletSession
public String test(HttpServletRequest request) {
		HttpSession session = request.getSession();
		session.setAttribute("tag", "HttpServletRequest request");
		return null;
	}
  1. HttpSession 直接放置在参数上
public String test(HttpSession session) {
		session.setAttribute("tag", "HttpServletRequest request");
		return null;
	}

session和cookie的区别

  1. cookie数据存放在客户的浏览器上,session数据放在服务器上。

  2. cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。

  3. session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。

  4. 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

  5. 可以考虑将登陆信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值