開發者學堂課程【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;
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");
publie void postHandle(Http5ervletReauest request,
HttpServlet Respense response,Object handler,
ModelAndVicw modclAndVicw) throws Exception{
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>