SpringMVC:SessionAttribute注解

在开发Web项目时,通常都会需要使用到Session域和Request域,比如在浏览器Cookie中加载基本的用户名信息。如果在Spring的控制器映射方法中获取Servlet原生API(HttpServletRequest)来实现,会导致程序的耦合性大大提高,需要引入相应的炸包。

所以我们为了减少相应的依赖,完全使用SpringMVC提供的注解来解决这个问题。


@Controller("annoController")
@RequestMapping(value = "/anno")
@SessionAttributes(value = {"liqiaoyu"})    //相当于Request域中key值为liqiaoyu的这个对象已经被存入到了session域
public class AnnoController {

    @RequestMapping("/getRequestParam")
    public String getRequestParam(){
        System.out.println("getRequestParam");
        return "success";
    }

    /**
     * 在Request域中添加键值对
     * @param model
     * @return
     */
    @RequestMapping(value = "/getSessionAttributes",method = RequestMethod.GET)
    public String getSessionAttributes(Model model){
        System.out.println("getSessionAttributes...");
        //底层仍然是帮你存进request域对象中,但不用你自己再去获取原生Api来操作了。
        model.addAttribute("liqiaoyu","黎桥宇");
        return "success";
    }

    /**
     * 从浏览器Request域中获取键值对
     * @param modelMap
     * @return
     */
    @RequestMapping(value = "/getSessionAttributesVal",method = RequestMethod.GET)
    public String getSeesionAttributeVal(ModelMap modelMap){
        System.out.println(modelMap.get("liqiaoyu"));
        return "success";
    }

    /**
     * 清除session域的内容
     * @param sessionStatus
     * @return
     */
    @RequestMapping(value = "/delSessionAttribute",method = RequestMethod.GET)
    public String delSessionAttribute(SessionStatus sessionStatus){
        System.out.println("delSessionAttribute...");
        sessionStatus.setComplete();
        return "success";
    }
}

 首先是使用import org.springframework.ui.Model类,这个是Spring框架为我们提供的一个工具类,它可以帮助我们将所需要的对象封装到浏览器的Request域中,而不用自己引入。

@SessionAttribute(value={""})则可以将Request域中的key值对应的对象放入到Session域当中。便于在View层的各个页面之间公共使用。

另外就是Session的获取和删除,主要是注意一下使用的对象不同的问题。除了model的addAttribute方法,其他的都是与Session域的交互,这一点要注意。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值