仅供参考

  设置session值,根据自己的需求设置值

/**
* 登入验证
*
* @return
*/
@RequestMapping(value = "/loginCheck.htm", method = RequestMethod.POST)
@ResponseBody
public Response loginCheck(User user) {
responseUtil = new Response();
List<User> list = userService.getUser(user);
if (list != null && list.size() > 0) {
this.getSession().setAttribute("user", list.get(0));//向session中填入登入信息
responseUtil.setStatusAndMessage(HttpStatus.HTTP_SUCCESS, "验证成功");
}
return responseUtil;
}

  web.xml设置session时间

<!-- session60分钟时间  -->
<session-config>
<session-timeout>60</session-timeout>
</session-config>

  设置拦截器,可以在这里设置日志、权限、是否登入。下面是判断是否登入,如果没有登入就跳转登入页面

package com.springmvc.util.action;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Repository;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import com.springmvc.model.User; @Repository
public class SystemInterceptor extends HandlerInterceptorAdapter{
/**
* 访问前判断session是否有值,是否登入
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
User user = (User)request.getSession().getAttribute("user");
if (user == null) {
// 未登录
PrintWriter out = response.getWriter();
StringBuilder builder = new StringBuilder();
builder.append("<script type=\"text/javascript\" charset=\"UTF-8\">");
builder.append("alert(\"页面过期,请重新登录\");");
builder.append("window.top.location.href=\"");
String basePath = String.valueOf(request.getAttribute("basePath"));
builder.append(basePath+"101/login.htm\";</script>");
out.print(builder.toString());
out.close();
return false;
} else {
return true;
} }
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}

  在对应dispatcher-servlet.xml,也就是servlet中设置需要拦截的路径、不需要拦截的、拦截之后需要在哪个类中处理

<mvc:interceptors>
<mvc:interceptor>
<!-- 需拦截的地址 -->
<!-- 一级目录 -->
<mvc:mapping path="/*.do" />
<mvc:mapping path="/*.ajax" />
<mvc:mapping path="/*.htm" /> <!-- 二级目录 -->
<mvc:mapping path="/*/*.do" />
<mvc:mapping path="/*/*.ajax" />
<mvc:mapping path="/*/*.htm" />
<!-- 需排除拦截的地址 -->
<mvc:exclude-mapping path="/*/login.htm"/>
<mvc:exclude-mapping path="/*/loginCheck.htm"/>
<!-- 拦截之后处理类 -->
<bean class="com.springmvc.util.action.SystemInterceptor" />
</mvc:interceptor>
</mvc:interceptors>

  可以在baseAction中添加session获取方法

public User getSessionObject(){
User user = (User)getRequest().getSession().getAttribute("user");
return user;
}

springMvc(三)session、HandlerInterceptorAdapter的更多相关文章

  1. SpringMVC从Session域中获取值

    SpringMVC从Session域中获取值 SpringMVC环境自行搭建 第一步:前端页面 第二步.后台代码 第三步.响应视图 第四步.在当前处理器所在的类设置@SessionAttributes ...

  2. SpringMVC 三种异常处理方式

    SpringMVC 三种异常处理方式 在 SpringMVC, SpringBoot 处理 web 请求时, 若遇到错误或者异常,返回给用户一个良好的错误信息比 Whitelabel Error Pa ...

  3. springMVC+request.session实现用户登录和访问权限控制

    用springmvc mybatis实现用户登录登出功能,使用session保持登录状态,并实现禁止未登录的用户访问.感谢谷歌资源,在这里做个学习记录加深自己的印象. 原文在我的https://my. ...

  4. SpringMVC(三) —— 参数绑定和数据回显

    参数绑定的过程:就是页面向后台传递参数,后台接受的一个过程. 默认支持的参数类型:(就是你在方法上以形参的形式去定义一下的类型,就可以直接使用它) HttpServletRequest HttpSer ...

  5. Hibernate基础学习(三)—Session

    一.概述      Session接口是Hibernate向应用程序提供的操纵数据库最主要的接口,它提供了基本的保存.更新.删除和加载Java对象的方法.      Session具有一个缓存,位于缓 ...

  6. springmvc(三) 参数绑定、

    前面两章就介绍了什么是springmvc,springmvc的框架原理,并且会简单的使用springmvc以及ssm的整合,从这一章节来看,就开始讲解springmvc的各种功能实现,慢慢消化 --W ...

  7. SpringMVC(三十) 实例:SpringMVC_RESTRUL_CRUD_显示所有员工信息

    Step by step to create a springMVC demo. 1. 创建一个dynamic web 工程. 2. 添加需要的jar文件,如下图: 3. 配置web.xml:配置di ...

  8. SpringMVC(三):参数绑定、输入输出转换

    一.参数解析绑定 1. 自定义绑定:不绑定某些项 @InitBinder private void initBinder(WebDataBinder dataBinder) { dataBinder. ...

  9. SpringMVC中session的使用

    SpringMVC中仍然可以使用传统方式使用session /** * 使用session - 传统方式 */ @RequestMapping("/hello13.action") ...

随机推荐

  1. [Angular 2] Order Dynamic Components Inside an Angular 2 ViewContainer

    By default, when you generate components, they will simply be added to the page in order, one after ...

  2. android genymation eclipse安装

    http://www.cnblogs.com/1114250779boke/p/3657996.html

  3. Web前段优化,提高加载速度 css

    前言:  在同样的网络环境下,两个同样能满足你的需求的网站,一个"Duang"的一下就加载出来了,一个纠结了半天才出来,你会选择哪个?研究表明:用户最满意的打开网页时间是2-5秒, ...

  4. js json与对象的相互转换

    var str = '{ "name": "cxh", "sex": "man" }'; //JSON字符串:var o ...

  5. 基于jQuery向下弹出遮罩图片相册

    今天给大家分享一款基于jQuery向下弹出遮罩图片相册.单击相册图片时,一个遮罩层从上到下动画出现.然后弹出显示图片.这款插件适用浏览器:IE8.360.FireFox.Chrome.Safari.O ...

  6. kmp算法简明教程

    在字符串s中寻找模式串p的位置,这是一个字符串匹配问题. 举例说明: i = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 s = a b a a c a b a a a b a a ...

  7. 顺丰快递单号查询api对接(全代码)

    接口支持的消息接收方式:HTTP POST 请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8" 请 ...

  8. Remap BMW F11 2010 all ECUs with E-Sys and ENET cable

    Just wanted to share some experiences remaping all the ECUs in my F11 2010 BMW, hopefully other BMW ...

  9. Android进阶笔记20:Android手机屏幕坐标系

    1. 手机屏幕坐标系: 整个坐标系是以手机屏幕左上角为原点(0,0),如下:

  10. Android 高级UI设计笔记11:Gallery(画廊控件)之Gallery基本使用

    1. 这里要向大家介绍Android控件Gallery(画廊控件) Gallery控件主要用于横向显示图像列表,不过按常规做法.Gallery组件只能有限地显示指定的图像.也就是说,如果为Galler ...