发表于: 2017-05-27 22:24:25
3 1316
【说明】今天做了什么呢,,说说我在项目中用到的设计模式吧
一:今日完成
1)filter
这个是所有前台servlet要用到了的过滤器,可以对请求进行转发
String uri = request.getRequestURI();
uri =StringUtils.remove(uri, contextPath);
//以fore开头 而不是 foreServlet开头
if(uri.startsWith("/fore")&&!uri.startsWith("/foreServlet")){
//StringUtils 源码,使用的是 commons-lang3-3.1 包。
//substringAfterLast() 返回最后一个指定字符串之后的所有字符
String method = StringUtils.substringAfterLast(uri,"/fore" );
//将数组变成链表 ,然后判断 里面 有没有包含 mothid方法,不包含(也即需要验证)的话继续
if(!Arrays.asList(noNeedAuthPage).contains(method)){
User user =(User) request.getSession().getAttribute("user");
if(null==user){
response.sendRedirect("login.jsp");
return;
}
}
}
chain.doFilter(request, response);
}
2)servlet
前台只有一个servlet!!包含所有的业务方法
通过引用的包可以看出我用了那些东西
import java.io.BufferedWriter;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.math.RandomUtils;
import org.springframework.web.util.HtmlUtils;
import tmall.bean.Category;
import tmall.bean.Order;
import tmall.bean.OrderItem;
import tmall.bean.Product;
import tmall.bean.ProductImage;
import tmall.bean.PropertyValue;
import tmall.bean.Review;
import tmall.bean.User;
import tmall.comparator.ProductAllComparator;
import tmall.comparator.ProductDateComparator;
import tmall.comparator.ProductPriceComparator;
import tmall.comparator.ProductReviewComparator;
import tmall.comparator.ProductSaleCountComparator;
import tmall.dao.CategoryDAO;
import tmall.dao.OrderDAO;
import tmall.dao.ProductDAO;
import tmall.dao.ProductImageDAO;
import tmall.util.Page;
public class ForeServlet extends BaseForeServlet {
3)java反射
对方法进行的映射
Method m = this.getClass().getMethod(method, javax.servlet.http.HttpServletRequest.class,
javax.servlet.http.HttpServletResponse.class,Page.class);
String redirect = m.invoke(this,request, response,page).toString();
if(redirect.startsWith("@"))
response.sendRedirect(redirect.substring(1));
else if(redirect.startsWith("%"))
response.getWriter().print(redirect.substring(1));
else
request.getRequestDispatcher(redirect).forward(request, response);
二:明日计划
明天回家了,到时候找时间看一些知识点吧
三:疑难问题
四:思考总结
果然还是坚持继续提升技术啊
评论