您当前的位置: 首页 >  spring

杨林伟

暂无认证

  • 3浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

57SpringMVC - 拦截器案例

杨林伟 发布时间:2019-04-08 17:46:07 ,浏览量:3

处理流程
  1. 有一个登录页面,需要写一个Controller访问登录页面

  2. 登录页面有一提交表单的动作。需要在Controller中处理。 a)判断用户名密码是否正确(在控制台打印) b)如果正确,向session中写入用户信息(写入用户名username) c)跳转到商品列表

  3. 拦截器。 a)拦截用户请求,判断用户是否登录(登录请求不能拦截) b)如果用户已经登录。放行 c)如果用户未登录,跳转到登录页面。

编写登录jsp




	
		
		Insert title here
	

	

		
			用户名:
			
			
			
			密码:
			
			
			
			

		

	


用户登陆Controller
@Controller
@RequestMapping("user")
public class UserController {

	/**
	 * 跳转到登录页面
	 * 
	 * @return
	 */
	@RequestMapping("toLogin")
	public String toLogin() {
		return "login";
	}

	/**
	 * 用户登录
	 * 
	 * @param username
	 * @param password
	 * @param session
	 * @return
	 */
	@RequestMapping("login")
	public String login(String username, String password, HttpSession session) {
		// 校验用户登录
		System.out.println(username);
		System.out.println(password);

		// 把用户名放到session中
		session.setAttribute("username", username);

		return "redirect:/item/itemList.action";
	}

}

编写拦截器
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
	// 从request中获取session
	HttpSession session = request.getSession();
	// 从session中获取username
	Object username = session.getAttribute("username");
	// 判断username是否为null
	if (username != null) {
		// 如果不为空则放行
		return true;
	} else {
		// 如果为空则跳转到登录页面
		response.sendRedirect(request.getContextPath() + "/user/toLogin.action");
	}

	return false;
}
配置拦截器

只拦截商品的url,所以需要修改ItemController,让所有的请求都必须以item开头,如下图: 在这里插入图片描述 在springmvc.xml配置拦截器


	
	
	
	

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.3380s