开发者学堂课程【SpringMVC框架入门:登录拦截器实现】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/22
登录拦截器实现
目录
一.如果被拦截-能否到达指定的页面?
二.拦截器应用--登录拦截器
三.拦截器的配置
1.如果被拦截-能否到达指定的页面?
使用HttpServletResposne或者HttpServletRequest可以实现转发或重定向
//在请求处理的方法之前执行
//如果返回true 那么执行下一个拦截器,如果返回false那么不执行下一个拦截器
@Override
public boolean preHandle(HttpServletReguest request ,
HttpServletigresponse response,object handler)
throws Exception {
System.out,println-(--------处理前
");
response.sendRedirect(reguest.getContextPath()+"/index.isp");
return false;
}
2.拦截器应用--登录拦截器
public class LoginInterceptor implements HandlerInterceptorf
//允许哪些url不被拦截,哪些需要被拦截
private List<String> allowedPass;
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws
Exception{
String url=request.getRequestJRL().toString();
//先判断session中是否有
Object user =
request. getSession().getAttribute("user");
if(user!=null)
return true ;
for(String temp:?llowedPass){
if(url.endsWith(temp))({
return true;
}
Response.sendRedirect(request.getContextPath()+'/login.jsp");
return false;
@Override
publie void postHandle(Http5ervletReauest request,
HttpServlet Respense response,Object handler,
ModelAndVicw modclAndVicw) throws Exception{
}
@Override
public vold afterConpletion(HttpServletRequest request,
HttpSeruletResponse response, 0bject handler,
Exception ex)
throw Exception {
}
publie void setAllouedPass(list<string> allowedPass) {
This.allowedPass = allowedPass;
}
3.拦截器的配置
<!拦截器的配置--》
<mvc interreptors>
<mvc interscepter>
<!--包括路径及其子路径- 拦截所有controller
如果是/admin/*拦截的是/admin/add,/admin/list
etc./admin/user/add不被拦截
如果是/alnin/**-拦截:
/admin/add,/admin/list,/admin/user/add
<mvc:mapping path="/product/*"/》
<mvc:mapping path="/cart/*"/>-->
<mvc:mapping path="/*"/>
<l--对应的拦截器-->
<bean class="cn.sxt.interceptor.LoginInterceptor">
<property name "allowedpass">
<list>
<value>1ogin,do.</value>
</list>
</property>