天天看點

登入攔截器實作|學習筆記登入攔截器實作

開發者學堂課程【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>

繼續閱讀