在Util层内新建 UrlFilter
package cn.trade.util;
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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebFilter("/UrlFilter")
public class UrlFilter implements Filter {
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
HttpServletResponse resp = (HttpServletResponse) response;
HttpServletRequest req = (HttpServletRequest) request;
HttpSession session = req.getSession();
Object obj = session.getAttribute("ss_user");
String path = req.getServletPath();
// 输出每次请求的地址 根据这个来在if里面加或者不加
System.out.println("请求的地址:"+path);
String action = req.getParameter("action");
if (obj!=null
|| "/firststep.jsp".equals(path)
|| "/IndexPageServlet".equals(path)
|| "/LoginServlet".equals(path)
|| "/index.jsp".equals(path)
|| "/registe.jsp".equals(path)
|| "/RegisteServlet".equals(path)
|| "/KeyServlet".equals(path)
|| "/ProductDetailServlet".equals(path)
|| "/login.jsp".equals(path)
|| path.endsWith(".js")
|| path.endsWith(".css")
|| path.endsWith(".jpg")
|| path.endsWith(".png")
|| path.endsWith(".gif")) {
// pass the request along the filter chain
chain.doFilter(request, response);
} else{
// resp.sendRedirect("firstStep.jsp");
//跳转到登录界面
resp.getWriter().print("<script type='text/javascript'>top.location.href='login.jsp'</script>");
}
// chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
System.out.println("初始化UrlFilter.....");
}
}
xeb。xml文件内添加
<filter>
<filter-name>UrlFilter</filter-name>
<filter-class>cn.trade.util.UrlFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在Util层内新建EncodingFilter
package cn.trade.util;
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.annotation.WebFilter;
/**
* Servlet Filter implementation class EncodingFilter
*/
@WebFilter("/EncodingFilter")
public class EncodingFilter implements Filter {
private String encoding = "";
private String contenttype = "";
/**
* Default constructor.
*/
public EncodingFilter() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
response.setContentType(contenttype);
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
encoding = fConfig.getInitParameter("Encoding");
contenttype = fConfig.getInitParameter("ContentType");
}
}
web.xml里添加
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>cn.trade.util.EncodingFilter</filter-class>
<init-param>
<param-name>Encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>ContentTpye</param-name>
<param-value>text/html;charset=utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>