用户登陆时候如何过滤jsp也面,只让他访问固定那个页面public class CharacterEncodingFilter extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
} //Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
Operator operator = (Operator) request.getAttribute("user");
HttpServletRequest hrequest = (HttpServletRequest)request;
HttpServletResponse hresponse=(HttpServletResponse)response;
if(operator==null){
//request.getRequestDispatcher("/netSign/login.jsp").forward(hrequest,hresponse); 此方法不好使
//hresponse.sendRedirect("/WEB-INF/administrator/login.jsp");此方法不好使 }else{
filterChain.doFilter(hrequest, hresponse);
}
} catch (Exception e) {
filterConfig.getServletContext().log(e.getMessage());
}
}
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
} //Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
Operator operator = (Operator) request.getAttribute("user");
HttpServletRequest hrequest = (HttpServletRequest)request;
HttpServletResponse hresponse=(HttpServletResponse)response;
if(operator==null){
//request.getRequestDispatcher("/netSign/login.jsp").forward(hrequest,hresponse); 此方法不好使
//hresponse.sendRedirect("/WEB-INF/administrator/login.jsp");此方法不好使 }else{
filterChain.doFilter(hrequest, hresponse);
}
} catch (Exception e) {
filterConfig.getServletContext().log(e.getMessage());
}
}
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 StudentAuthorityFilter implements Filter {
/*
* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
}
/*
* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response; HttpSession session = req.getSession(true);
//从session里取得用户名的身份
String username = (String)session.getAttribute("username");
//若没有取得用户信息或不符合角色权限则跳转到登陆界面
if("".equals(username) || username == null){
//跳转到登陆界面
res.sendRedirect("/TSIMS/NoAuthority.jsp"); }else{
if(!"10".equals(username.substring(0,2)))
{
res.sendRedirect("/TSIMS/NoAuthority.jsp");
}else{
//已经登陆,继续此次请求
chain.doFilter(request,response);
}
}
}
/*
* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig config) throws ServletException {
}
}这是我以前做练习时写的一个过滤器,用来过滤登录权限的。。
FilterChain filterChain) {
try {
//request.setCharacterEncoding("GBK");
//response.setCharacterEncoding("GBK"); request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
HttpServletRequest hrequest = (HttpServletRequest)request;
HttpServletResponse hresponse=(HttpServletResponse)response;
Operator operator = (Operator)hrequest.getSession().getAttribute("user");
String req_para=hrequest.getQueryString();
// String userName=(String) hrequest.getSession().getAttribute("operator.name");
// String userName=(String) hrequest.getSession().getServletContext().getAttribute("")
RequestDispatcher dispatcher = request.getRequestDispatcher("login.jsp");
try{
System.out.println(operator.getRealname()+"+++++++++++++++++++++++++++++");
filterChain.doFilter(hrequest, hresponse);
}
catch (Exception e) {
System.out.println("+++++++++++++++11++++++++++++++");
dispatcher.forward(hrequest, hresponse);
} } catch (Exception iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}web.xml 这样
<filter>
<filter-name>characterencodingfilter</filter-name>
<filter-class>com.zwhd.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>characterencodingfilter</filter-name>
<url-pattern>/administrator/*</url-pattern>
</filter-mapping>
调用的jsp放到administrator包外边
搞定