⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rulefilter.java

📁 老师给的购物车
💻 JAVA
字号:
package com.tarena.shopcart.filter;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

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.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.tarena.shopcart.entity.Users;



public class RuleFilter 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 {
			HttpServletRequest req = (HttpServletRequest) request;
			HttpServletResponse res = (HttpServletResponse) response;
			HttpSession session = req.getSession();
			Users user= (Users) session.getAttribute("user");
			String admin=(String)session.getAttribute("admin");
			if (!this.isImageCssJs(req.getRequestURI())) {
				if (!this.judgeIsLogin(req.getRequestURI())) {
					if (user != null||admin!=null) {
						// 对用户权限进行限制
						filterChain.doFilter(request, response);
						
					}  else {
						req.getRequestDispatcher("/error.jsp")
								.forward(req, res);
					}
				} else {
					filterChain.doFilter(request, response);
				}
			} else {
				filterChain.doFilter(request, response);
			}
		} catch (ServletException sx) {
			filterConfig.getServletContext().log(sx.getMessage());
		} catch (IOException iox) {
			filterConfig.getServletContext().log(iox.getMessage());
		}
	}

	/**
	 * 判断是否是图片或者是css样式表,js脚本等
	 * 
	 * @param url
	 * @return
	 */
	private static List<String> start;
	static {
		start = new ArrayList<String>();
		start.add("/shopcart/images/");
		start.add("/shopcart/css/");
		start.add("/shopcart/js/");
	}

	/**
	 * 判断是否是图片什么的
	 * 
	 * @param url
	 * @return
	 */
	private boolean isImageCssJs(String url) {
		for (String path : start) {
			if (url.startsWith(path)) {
				return true;
			}
		}
		return false;
	}

	private static List<String> login;

	static {
		login = new ArrayList<String>();
		login.add("/shopcart/");
		login.add("/shopcart/success.jsp");
		login.add("/shopcart/login.do");
		login.add("/shopcart/login.jsp");
		login.add("/shopcart/init.do");
		login.add("/shopcart/register.do");
		login.add("/shopcart/register.jsp");
		login.add("/shopcart/listproducts.do");
		login.add("/shopcart/index.jsp");
		login.add("/shopcart/detail.do");
		login.add("/shopcart/productDetail.jsp");
		login.add("/shopcart/shopcart.jsp");
		login.add("/shopcart/addItem.do");
		login.add("/shopcart/clearcart.do");
		login.add("/shopcart/deleteItem.do");
		login.add("/shopcart/modifyProduct.do");
		login.add("/shopcart/searchProduct.do");
	}

	
	private boolean judgeIsLogin(String url) {
		for (String s : login) {
			if (url.equals(s)) {
				return true;
			}
		}
		return false;
	}

	// Clean up resources
	public void destroy() {
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -