package com.message.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.message.pojo.MsgUser;
public class LoginInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
//获取Session
HttpSession session = request.getSession();
//获取请求的URL
//String url = request.getRequestURI();
HandlerMethod hm=(HandlerMethod)handler;
String url = hm.getMethod().getName();
// String name = handler.getClass().getName();
System.out.println("请求url"+url);
//URL:login.jsp是公开的;这个demo是除了login.jsp是可以公开访问的,其它的URL都进行拦截控制
if(url.equals("login")){
return true;
}
//判断用户是否登陆过,登陆过,以后不管请求什么页面都可以访问,(再session有效时间内)就不用再判断
MsgUser user= (MsgUser)session.getAttribute("user");
if(user!=null){
// request.getRequestDispatcher("/WEB-INF/jsp/index.jsp").forward(request, response);
return true;
}
//request.setAttribute("user", session);
//不符合条件的,跳转到登录界面 -------转发+相对具体路径
request.getRequestDispatcher("/WEB-INF/jsp/login.jsp").forward(request, response);
return false;
}
@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 {
}
}
LoginInterceptor
package com.message.controller; import java.util.ArrayList; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.message.pojo.MsgUser; import com.message.pojo.MsgUserFind; import com.message.service.MsgUserService; import com.teacherXue.pojo.EasyUiDataGridResult; @Controller @RequestMapping("/msguser") public class MsgUserController { @Autowired private MsgUserService msgUserService; private Logger log = Logger.getLogger(this.getClass().getName()); /*设置初始化定义变量,与index页面加载无关*/ @RequestMapping("/") public String showindex(HttpServletRequest request){ // aplication ServletContext context = request.getSession().getServletContext(); context.setAttribute("allowMediaUpload", "false"); context.setAttribute("themeType", "simple"); return "index"; } @RequestMapping("{page}") public String showPage(@PathVariable String page){ log.debug("锟斤拷转锟斤拷页锟斤拷锟斤拷锟斤拷锟角o拷"+page); return page; }
HTTP Status 404 - /message/WEB-INF/jsp/+需要添加请求的index+.jsp
@RequestMapping("/user/login") // @RequestMapping 注解可以用指定的URL路径访问本控制层 public String login(HttpServletRequest request, MsgUser user) { log.debug("controller"+user.getPassword()+user.getUsername()); MsgUser login = msgUserService.login(user); //保存用户名和密码 if(login!=null){ HttpSession session = request.getSession(); MsgUser manager= (MsgUser)session.getAttribute("user"); //HttpSession session = request.getSession(); if(manager!=null){ //重定向---以为SpringMVC的InternalResourceViewResolver视图解析器已经配置了请求的路径前后缀,所以直 接重定向controller+jsp地址 return "redirect:/msguser/index"; } session.setAttribute("user", user); return "redirect:/msguser/index"; } return "redirect:/msguser/login"; } @RequestMapping("/user/send/") @ResponseBody public int addMsgUser(Long ids,HttpServletRequest request)throws Exception{ log.debug("cuntroller++++++++++++++"+ids.toString()+"==============="+ids.intValue()); HttpSession session = request.getSession(); MsgUser msgUser = msgUserService.getMsgUserById(ids); Object object = session.getAttribute("ids"); if(object!=null){ return 0; } session.setAttribute("ids", msgUser.getLimitcount()); session.setMaxInactiveInterval(60/msgUser.getLimitcount()); int i = msgUserService.sendPhone(ids); return i; } @RequestMapping("/user/list") @ResponseBody public EasyUiDataGridResult getAllMsgUser(int page, int rows){ log.debug("----------------------+++page"+page+"rows"+rows); EasyUiDataGridResult result = msgUserService.getMsgUserLists(page, rows); return result; } /*@RequestMapping("/user/list") @ResponseBody public List<MsgUser> getAllMsgUser(){ log.debug("----------------------+++page"); List<MsgUser> list = msgUserService.getMsgUserList(); return list; }*/ @RequestMapping("/user/findlist") @ResponseBody public EasyUiDataGridResult getAllMsgUser(int page, int rows, MsgUserFind user){ EasyUiDataGridResult result = msgUserService.listMsgUserById(page, rows, user); return result; } @RequestMapping("/user/add") @ResponseBody public int addMsgUser(MsgUser user){ log.debug("user"+user.getUsername()+user.getPassword()+user.getLimitcount()+user.getSumcount()); int i = msgUserService.addMsgUser(user); return i; } @RequestMapping("/user/delete") @ResponseBody public int deleteMsgUser(Long[] ids){ ArrayList<Long> array = new ArrayList<Long>(); for(int i=0;i<array.size();i++){ array.add(ids[i]); } int i = msgUserService.deleteByid(array); return i; } @RequestMapping("/user/update") @ResponseBody public int updateMsgUser(MsgUser user){ int i = msgUserService.updateMsgUser(user); return i; } @RequestMapping("/user/enable") @ResponseBody public String enable(Long[] ids){ System.out.println("-------------"+ids); ArrayList<Long> list = new ArrayList<Long>(); for(int i=0;i<ids.length;i++){ list.add(ids[i]); } int i = msgUserService.enable(list); if(i>0){ return "ok"; } return "err"; } @RequestMapping("/user/disable") @ResponseBody public String disable(Long[] ids){ System.out.println("-------------"+ids); ArrayList<Long> list = new ArrayList<Long>(); for(int i=0;i<ids.length;i++){ list.add(ids[i]); } int i = msgUserService.disable(list); if(i>0){ return "ok"; } return "err"; } }
MsgUserController
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"> <context:component-scan base-package="com.message.controller"></context:component-scan> <!-- <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven> --> <mvc:annotation-driven ></mvc:annotation-driven> <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <mvc:exclude-mapping path="/**/fonts/*"/> <mvc:exclude-mapping path="/**/*.js"/> <mvc:exclude-mapping path="/**/*.css"/> <mvc:exclude-mapping path="/img/*"/> <mvc:exclude-mapping path="/tools/*"/> <mvc:exclude-mapping path="/images/**/*"/> <mvc:exclude-mapping path="/**/*.jpg"/> <mvc:exclude-mapping path="/**/*.png"/> <mvc:exclude-mapping path="/**/*.gif"/> <mvc:exclude-mapping path="/**/*.jpeg"/> <mvc:exclude-mapping path="/**/*login*"/> <bean class="com.message.interceptor.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> </bean> <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver"> <property name="maxUploadSize" value="10485760"></property> <property name="defaultEncoding" value="UTF-8"></property> </bean> <mvc:resources location="/WEB-INF/css/" mapping="/css/**"></mvc:resources> <mvc:resources location="/WEB-INF/js/" mapping="/js/**"></mvc:resources> <mvc:resources location="/WEB-INF/img/" mapping="/img/**"></mvc:resources> <mvc:resources location="/WEB-INF/tools/" mapping="/tools/**"></mvc:resources> </beans>