怎麼使用filter實現未登入使用者自動跳轉到登入頁面 未登入的過濾器怎麼寫
- 綜合知識
- 關注:1.87W次
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");
}
2.怎麼使用filter實現未登入使用者自動跳轉到登入頁面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");}。
3.如何用Filter實現對註冊使用者是否登入的過濾下面是我從前寫的專案裡用的使用者過濾。供你參考。你可以去上看看,那兒有過濾器的視訊教程。
package filter;
import java.io.*;
import javax.servlet.*;
import javax.servlet. ;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(){}
}
4.如何使用filter實現未登入使用者自動跳轉到登入頁面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");}。
5.java過濾器怎麼寫 用的是SSH框架 主要目的是防止有些比如登入不填在web.xml中配置過濾器
<filter>
<filter-name>encoding</filter-name>
<filter-class>;此處是自己已實現filter類的目錄</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<url-pattern>;此處是要過濾的路徑</url-pattern>
<filter-name>encoding</filter-name>
</filter-mapping>
- 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/zonghezhishi/lyw45w.html