发表于: 2017-05-23 21:50:35
2 1140
【说明】今天学了几个知识点,对程序的理解又深了许多
一:今日完成
1)jsp标签和指令是不一样的
<%@ include file=” ”%> 这是指令
假如 在 B.jsp 中,使用 <%@ include file=”A.jsp”%> ,那么就是把 A.jsp 的内容 原封不动 引入到 B.jsp 中。
2)dispatcher和 redirect 的区别
dispatcher:用于页面转发,页面跳转过程一直是同一个线程,Action 中的数据一直保存在。
redirect:可用于返回一个页面、一个 action、链接到一个网址。
3)查看购物车
public String cart(HttpServletRequest request, HttpServletResponse response, Page page) {
User user =(User) request.getSession().getAttribute("user");
List<OrderItem> ois = orderItemDAO.listByUser(user.getId());
request.setAttribute("ois", ois);
return "cart.jsp";
}
4)查看状态的过滤器
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String contextPath=request.getServletContext().getContextPath();
String[] noNeedAuthPage = new String[]{
"homepage",
"checkLogin",
"register",
"loginAjax",
"login",
"product",
"category",
"search"};
String uri = request.getRequestURI();
uri =StringUtils.remove(uri, contextPath);
if(uri.startsWith("/fore")&&!uri.startsWith("/foreServlet")){
String method = StringUtils.substringAfterLast(uri,"/fore" );
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);
}
二:明日计划
我的订单和我的订单页
三:疑难问题
查看购物车之前,应该进行登录操作,但是又不能确保用户一定会记得登录
四:思考总结
准备一个过滤器,当访问那些需要登录才能做的页面的时候,进行是否登录的判断
评论