當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
给JSP页面加过滤器
生活随笔
收集整理的這篇文章主要介紹了
给JSP页面加过滤器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
很簡單的一個功能,如果用戶沒有登錄之前訪問其他頁面時轉到登錄頁面.用過濾器來實現.
一、在web-xml 中添加:
[code]
<filter><!-- 是否登錄用戶的驗證filter -->
<filter-name>author</filter-name>
<filter-class>lw.filter.AuthorFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/grsz/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/khcx/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/khpf/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/tjbb/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/tjjs/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/main.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/top.jsp</url-pattern>
</filter-mapping>
[/code]
實現類的代碼如下:
[code]
package lw.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class AuthorFilter implements Filter {
private String strRedirect = "";
protected FilterConfig filterConfig;
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig = null;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest hreq = (HttpServletRequest) req;
HttpServletResponse hres = (HttpServletResponse) res;
HttpSession session = hreq.getSession(true);
String isLogin = "";
strRedirect = "http://" + hreq.getServerName() + ":" + hreq.getServerPort() +hreq.getContextPath()+ "/login.jsp";
System.out.println("web URL 路徑:"+strRedirect);
try {
if (null != session.getAttribute("isLogin")) {
isLogin = session.getAttribute("isLogin").toString();
}
if (isLogin.equals("true")) {
System.out.println("驗證通過");
chain.doFilter(req, res);
} else {
hres.sendRedirect(strRedirect);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig = arg0;
}
}
[/code]
獲得login路徑的過程:
"http://" + hreq.getServerName() + ":" + hreq.getServerPort() +hreq.getContextPath()+ "/login.jsp";
一、在web-xml 中添加:
[code]
<filter><!-- 是否登錄用戶的驗證filter -->
<filter-name>author</filter-name>
<filter-class>lw.filter.AuthorFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/grsz/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/khcx/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/khpf/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/tjbb/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/tjjs/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/main.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>author</filter-name>
<url-pattern>/top.jsp</url-pattern>
</filter-mapping>
[/code]
實現類的代碼如下:
[code]
package lw.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class AuthorFilter implements Filter {
private String strRedirect = "";
protected FilterConfig filterConfig;
public void destroy() {
// TODO Auto-generated method stub
this.filterConfig = null;
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest hreq = (HttpServletRequest) req;
HttpServletResponse hres = (HttpServletResponse) res;
HttpSession session = hreq.getSession(true);
String isLogin = "";
strRedirect = "http://" + hreq.getServerName() + ":" + hreq.getServerPort() +hreq.getContextPath()+ "/login.jsp";
System.out.println("web URL 路徑:"+strRedirect);
try {
if (null != session.getAttribute("isLogin")) {
isLogin = session.getAttribute("isLogin").toString();
}
if (isLogin.equals("true")) {
System.out.println("驗證通過");
chain.doFilter(req, res);
} else {
hres.sendRedirect(strRedirect);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig = arg0;
}
}
[/code]
獲得login路徑的過程:
"http://" + hreq.getServerName() + ":" + hreq.getServerPort() +hreq.getContextPath()+ "/login.jsp";
總結
以上是生活随笔為你收集整理的给JSP页面加过滤器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用Axis创建的Webservice的集
- 下一篇: 先判断对象是否为NULL再进行操作