日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java web实现页面跳转页面_JavaWeb过滤器实现页面跳转至登录页面

發(fā)布時(shí)間:2025/4/5 java 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java web实现页面跳转页面_JavaWeb过滤器实现页面跳转至登录页面 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

需求說明:

1、用戶登錄某頁(yè)面一段時(shí)間之內(nèi),如果無任何操作,跳轉(zhuǎn)至登錄頁(yè)面。

2、用戶在非登錄狀態(tài)下,無法訪問項(xiàng)目下的某些頁(yè)面。

解決方式:

通過session過濾器實(shí)現(xiàn)對(duì)請(qǐng)求的過濾,如果未登錄跳轉(zhuǎn)至登錄頁(yè)面,如果已登錄直接放行。在過濾器中不對(duì)登錄頁(yè)面進(jìn)行過濾,不對(duì)css、js、img資源進(jìn)行過濾。

如果不是前面說的兩種資源,則判斷記錄用戶信息的session是否為空,空則跳轉(zhuǎn)至登錄頁(yè)面、非空則放行。

方法一:Java過濾器實(shí)現(xiàn)(推薦)

解決步驟:

步驟一:在項(xiàng)目下配置web.xml文件中配置session

1、設(shè)置session失效時(shí)間(時(shí)間單位為分鐘)

30

2、配置過濾器

session過濾器

sessionFilter

com.filter.SessionFilter

sessionFilter

/*

注意:這里對(duì)所有的請(qǐng)求都進(jìn)行了過濾。也可以在配置過濾器的時(shí)候設(shè)置某些請(qǐng)求不進(jìn)行過濾,這里不進(jìn)行具體的介紹。

步驟二:編寫過濾器類

packagecom.filter;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importcom.model.user.User;public class SessionFilter implementsFilter {public void init(FilterConfig filterConfig) throwsServletException {

}public voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {

HttpServletRequest req=(HttpServletRequest) request;

HttpServletResponse res=(HttpServletResponse) response;

res.addHeader("Access-Control-Allow-Origin", "*");

String uri=req.getRequestURI();if (uri.indexOf("login") != -1 || uri.indexOf("Login") != -1) {

chain.doFilter(req, res);

}else if ((uri.contains(".css") || uri.contains(".js") || uri.contains(".jpg") || uri.contains(".png")|| uri.contains(".jpng") && !uri.contains(".jsp")) {

chain.doFilter(req, res);

}else{HttpSession session=req.getSession();

User user = (User) session.getAttribute("user");

String username= "";if (user != null && !user.equals("")) {

username=user.getLoginName();

}if (username != "" && username != null) {chain.doFilter(req, res);

}else{session.invalidate();

res.setContentType("text/html;charset=utf-8");

PrintWriter out=res.getWriter();

out.println("

out.println("window.top.location.href='" + req.getContextPath() + "/jsp/login.jsp'");

out.println("");

}

}if (uri.indexOf("redirect") != -1) {if (null != request.getParameter("userimg")) {chain.doFilter(req, res);

}

}

}public voiddestroy() {

}

}

注意:1、這里使用window.top.location.herf,如果使用window.location.herf有時(shí)候無法完成跳轉(zhuǎn)。2、上面的代碼執(zhí)行時(shí)需要用戶在登錄時(shí)將用戶信息放入session中。

方法二:Jsp頁(yè)面Java代碼實(shí)現(xiàn)(了解)

完成方法一的步驟就可以實(shí)現(xiàn)一個(gè)session過濾器了,過濾器會(huì)對(duì)請(qǐng)求想要訪問的頁(yè)面進(jìn)行進(jìn)行請(qǐng)求判斷。如果我們只想對(duì)某一個(gè)頁(yè)面進(jìn)行session判斷又不想使用過濾器,可以在頁(yè)面上使用java代碼進(jìn)行判斷。

注意這里只對(duì)某一個(gè)特定的頁(yè)面,其他頁(yè)面是不能用的。

if(session.getAttribute("user")== null) {%>

top.location.href="jsp/login.jsp";

總結(jié)

以上是生活随笔為你收集整理的java web实现页面跳转页面_JavaWeb过滤器实现页面跳转至登录页面的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。