登錄過濾
『壹』 java filter 登錄進入死循環
沒有解釋?什麼意思?登錄進入過濾器,過濾器檢測到沒有登錄又返回登錄界面?無法進入JDBCController類?在web.xml的配置里不讓它過濾login.do就ok了。
『貳』 設計用戶過濾器 對需要保護的頁面過濾 如果已經登錄則允許訪問 否則跳轉到login.jsp
比如你將要需要登錄後才能訪問的頁面放在main文件夾下,然後配置過濾器專時,將過濾路徑設置為/main/*就可以屬了,login.jsp不能放在main文件夾中,防止login.jsp也被過濾,造成死循環。。。。
『叄』 在頁面中進行session過濾未登錄訪問
實現思路:先設置下session超時時間,之後直接在jsp頁面中查看此session,如果沒有的話,直接返回登專錄界面
在屬web.xml中的session-config配置session-timeout元素(WEB.XML文件中的元素)用來指定默認的會話超時時間間隔,以分鍾為單位。該元素值必須為整數。如果 session-timeout元素的值為零或負數,則表示會話將永遠不會超時。如:<session-config><session-timeout>30</session-timeout></session-config> //30分鍾
在jsp頁面中:
<%if session.Contents("username")=false thenresponse.Redirect("/index.jsp")end if
%>
『肆』 怎麼搞一個servlet登錄過濾器
把JSP頁面全部放在WEB-INF下面 ,編寫一個BaseServlet繼承自HttpServlet,然後其餘的servlet集成自BaseServlet,在這個servlet裡面判斷session,有值的時候轉發到servlet裡面 沒有值的話 跳轉到登陸頁面 不就可以了?或者在filter裡面寫上
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
String uri = req.getRequestURI();
System.out.println( uri );
// 如果請求的路徑是首頁的資源,那麼不需要過濾
if ( !"/loginServlet".equals(uri) && !"/".equals(uri) && !uri.startsWith("/img/") && !uri.startsWith("images") ) {
// 過濾請求,保證訪問的資源一定要在用戶登錄後才可訪問
HttpSession session = req.getSession();
if ( session.isNew() ) {
// 跳轉到首頁
resp.sendRedirect("/");
} else {
User user = (User)session.getAttribute(Const.SESS_PARAM_USER);
if ( user == null ) {
// 跳轉到首頁
resp.sendRedirect("/");
} else {
chain.doFilter(request, response);
}
}
} else {
chain.doFilter(request, response);
}
『伍』 如何用Filter實現對注冊用戶是否登錄的過濾
下面是我從前寫的項目里用的用戶過濾。供你參考。你可以去www.mldn.cn上看看,那兒有過濾器的視頻教程。
package filter;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.* ;
//對用戶是否登錄進行過濾
public class UserFilter implements Filter
{
//過濾器初始化
public void init(FilterConfig filterConfig) throws ServletException
{
}
//實現Filter介面主方法
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws ServletException,IOException
{
response.setContentType("text/html ;charset=GBK");
request.setCharacterEncoding("GBK");
PrintWriter out=response.getWriter();
HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession();
//System.out.println(session.getAttribute("user"));
//user是用戶登錄後session.setAtrribute("user",×××)中的user
if(session.getAttribute("user")!=null){
chain.doFilter(request, response);
}
else{//未登錄,後退
out.println("<script language='javascript'>alert('你還未登錄');");
out.println("history.go(-1);</script>");
}
}
//過濾器銷毀
public void destroy(){}
}
『陸』 java單點登錄用過濾器怎麼實現
1、在普通站點A,B上配置抄過濾器,如果訪問到A的頁面時,先訪問本地SESSION看是否登錄,如果沒有,則訪問SSO看是否登錄,如果沒有則轉到公共登錄界面
2、公共登錄界面登錄完以後寫SSO的SESSION,並通過地址欄返回給A登錄的用戶名
3、A寫本地SESSION,完成登錄過程。
4、當訪問B應用時,先訪問本地SESSION,未登錄,則同樣跳轉到SSO,SSO取到本地SESSION的用戶名,返回給B已登錄。B寫本地SESSION。完成登錄過程。
5、A登出時,先殺本地SESSION,調用SSO的殺全局SESSION方法,SSO清空本地SESSION,同時也清空應用B的SESSION,完成單點登出。
『柒』 用過濾器判斷用戶是否登錄,並且可以進行操作
你在session中設置來的是User對象,所以自你通過session去取時,也只能取到User對象
User user = (User) Session.getAttribute("loginUser");
然後判斷user不為空和user.getUsername不為空
『捌』 使用filter過濾用戶是否登錄
登錄成功後 將用戶名放在session裡面 在過濾器裡面進行驗證session是否為空 為空跳轉到登錄頁面
『玖』 java程序實現登陸。用戶沒有登錄但訪問非登錄的頁面,使用過濾器跳轉到登錄頁,登錄後怎麼回到訪問頁
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
if(req.getSession().getAttribute("user")==null){
req.setAttribute("error", "請你先登錄");
//非法請求才會進到這裡面,在這里保存請求的url地址,在成功登錄後再進行跳轉
req.getSession().setAttribute("goUrl", req.getRequestURL()+"?"+ req.getQueryString());
request.getRequestDispatcher("/ulogin.jsp").forward(request, response);
}
else{
chain.doFilter(request, response);
}
}
上面的代碼是過濾器中的代碼
下面的是servlet中的代碼
if(request.getSession().getAttribute("goUrl")!=null){
String url = (String)request.getSession().getAttribute("goUrl");
response.sendRedirect(url);
}
else{
response.sendRedirect("/webshopping/index.jsp");
}