springmvc拦截器案例演示demo

1.1   拦截器案例应用,登录拦截器

1.1.1 思路

1、有一个登录页面,需要写一个controller访问页面

2、登录页面有一提交表单的动作。需要在controller中处理。

a)       判断用户名密码是否正确

b)       如果正确 想session中写入用户信息

c)       返回登录成功,或者跳转到商品列表

3、拦截器。

a)       拦截用户请求,判断用户是否登录

b)       如果用户已经登录。放行

c)       如果用户未登录,跳转到登录页面。

 

1.1.2 login.jsp

<%@ page language="java"contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>用户登录</title>

</head>

<body>

<form action="${pageContext.request.contextPath }/user/login.action">

用户名:<input type="text"name="username" /><br>

密码:<input type="password"name="password" /><br>

<input type="submit">

</form>

</body>

</html>

1.1.3 UserController

/**

 * 登录拦截器

 * @author Steven

 *

 */

@Controller

@RequestMapping("user")

publicclass UserController {

   

    /**

     * 跳转登录页面

     * @return

     */

    @RequestMapping("toLogin")

    public String toLogin(){

       return"login";

    }

   

    /**

     * 用户登录

     * @return

     */

    @RequestMapping("login")

    public String login(String username,String password,HttpSession session){

      

       String result = "login";

      

        //断定用户是否允许登录

       if(username != null){

           session.setAttribute("username", username);

           //登录成功,跳转商品列表

           result = "redirect:/itemList.action";

       }

       returnresult;

    }

}

 

1.1.4 LoginInterceptor拦截器编码

这里省略类声名和其它两个方法。

 

//处理执行前被执行

    //登录拦截、权限验证

   @Override

   publicboolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {

     

      Object attribute = request.getSession().getAttribute("username");

       if(attribute != null){

         //放行,执行处理器

         returntrue;

       }else{

           response.sendRedirect(request.getContextPath() + "/user/tologin.action");

         //放行,执行处理器

         returnfalse;

       }

   }

1.1.5 拦截器配置

<!-- 登录拦截器 -->

       <mvc:interceptor>

           <!-- path配置</**>拦截所有请求,包括二级以上目录,</*>拦截所有请求,不包括二级以上目录 -->

           <mvc:mapping path="/**"/>

           <!-- 配置不拦截请求的地址 -->

           <!--<mvc:exclude-mapping path="/user/toLogin.action"/>

           <mvc:exclude-mappingpath="/user/login.action"/> -->

           <mvc:exclude-mapping path="/user/*"/>

           <bean class="com.itheima.springmvc.interceptor.LoginInterceptor"/>

       </mvc:interceptor>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值