javaEE過濾器的實作分為兩步走
1.(1).在相應的類中也就是你的過濾器類中拱寫相應的代碼,
注意:,這個類要繼承Filter這個接口,
主要的代碼是在dofilter這個方法中實作的,,大緻思路是這樣的,從session中取出使用者的登入對象
然後進行判斷如果這個對象不為空,就讓他繼續進行通路這個項目,如果為空就強制讓他轉到登入界面,提示他登入失效等等,
@Override
public void init(FilterConfig filterConfig) throws ServletException {
config=filterConfig;
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 獲得在下面代碼中要用的request,response,session對象
HttpServletRequest servletRequest = (HttpServletRequest) request;
HttpSession session = servletRequest.getSession();
TbUser admin=(TbUser)session.getAttribute("admin");
if(admin != null) {
chain.doFilter(request, response);
}else {
// 當使用者為登入或登入逾時時提醒并跳轉到登入界面
String returnUrl = servletRequest.getContextPath() + "/login";
response.getWriter().println("<script language=\"javascript\">" + "alert(\"登入失效!請重新登入\");"
+ "if(window.opener==null){window.top.location.href=\"" + returnUrl
+ "\";}else{window.opener.top.location.href=\"" + returnUrl + "\";window.close();}</script>");
return;
}
public void destroy() {
this.config = null;
2.在你的web.xml中配置你的過濾路徑,注意這時的過濾的就是你要通路的網址的路徑,
<!-- 配置管理者登陸過濾器 -->
<filter>
<filter-name>AdminFilter</filter-name>
<filter-class>com.torrow.school.filter.AdminFilter</filter-class>
</filter>
<filter-mapping>
<url-pattern>/link/*</url-pattern>
</filter-mapping>
<filter-mapping>
<url-pattern>/category/*</url-pattern>
<url-pattern>/general/*</url-pattern>
<url-pattern>/message/*</url-pattern>
<url-pattern>/others/*</url-pattern>
<url-pattern>/news/*</url-pattern>
<url-pattern>/user/*</url-pattern>