要创建过滤器,只需创建一个实现javax.servlet.Filter的类,就您而言,可能是这样
public class cookieFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; cookie[] cookies = request.getcookies(); if (cookies != null){ for (cookie ck : cookies) { if ("nameOfMycookie".equals(ck.getName())) { // read the cookie etc, etc // .... // set an object in the current request request.setAttribute("myCoolObject", myObject) } } chain.doFilter(request, res); } public void init(FilterConfig config) throws ServletException { // some initialization pre called when the filter is loaded } public void destroy() { // executed when the filter is unloaded }}
然后在您的web.xml中声明过滤器
<filter> <filter-name>cookieFilter</filter-name> <filter-class> my.package.cookieFilter </filter-class></filter><filter-mapping> <filter-name>cookieFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
此时,在您的控制器中,只需使用request.getAttribute(“ myCoolObject”)检查该请求中是否存在该外观即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)