总结:前期的一个小商城项目
2017-09-27 21:48
232 查看
在开始这个小商城项目之前,就有开始写另一个学生系统的小项目。
在学生系统上面就碰到了问题!
不会打包!不知如何分类!
发现每个业务都要创建一个Servlet!
例如:登录loginServlet用来处理login.jsp页面的数据。
注册registerServlet用来处理register.jsp。。
【秉承着jsp最佳实践的原则】
不算问题把,前端不是我们的重点。
然后正式开始商城项目之后,这些问题也迎刃而解了。
而且这种方法很。。。牛!
第一,包装方法。如下
补充:一般还会有service包和service.Impl包处理实体类数据库业务!
第二,关于Servlet。
我的理解是这样的,
i),浏览器访问服务器的时候都会带着method参数
ii),我们将关于浏览器的请求业务分类,例如在商品项目中,可以分userServlet,productServlet,indexServlet(首页)…【这些servlet不继承HttpServlet】
iii),然后,在这些servlet当中实现对应的方法!例如注册,登录。。等法。如果方法有需要转发至那个页面的就将路径作为返回值!这样我们就可以尽量的少创建Servlet!
列入userServlet下面的方法;
login()如下:
iv)重点是,我们需要创建一个父类的baseServlet这个会继承HttpServlet! 让上面的servlet继承之!
然后,在baseServlet中实现service方法,然后用反射机制获取对应的方法!并激活。然后或去返回值,并转发!
整个的逻辑如下,画了张潦草的图。
在学生系统上面就碰到了问题!
不会打包!不知如何分类!
发现每个业务都要创建一个Servlet!
例如:登录loginServlet用来处理login.jsp页面的数据。
注册registerServlet用来处理register.jsp。。
【秉承着jsp最佳实践的原则】
不算问题把,前端不是我们的重点。
然后正式开始商城项目之后,这些问题也迎刃而解了。
而且这种方法很。。。牛!
第一,包装方法。如下
补充:一般还会有service包和service.Impl包处理实体类数据库业务!
第二,关于Servlet。
我的理解是这样的,
i),浏览器访问服务器的时候都会带着method参数
ii),我们将关于浏览器的请求业务分类,例如在商品项目中,可以分userServlet,productServlet,indexServlet(首页)…【这些servlet不继承HttpServlet】
iii),然后,在这些servlet当中实现对应的方法!例如注册,登录。。等法。如果方法有需要转发至那个页面的就将路径作为返回值!这样我们就可以尽量的少创建Servlet!
列入userServlet下面的方法;
login()如下:
public String login(HttpServletRequest request, HttpServletResponse response) { System.out.println("login~~~"); String username = request.getParameter("username"); String pswbefore = request.getParameter("psw"); String psw = MD5Utils.md5(pswbefore); User user = new UserServiceImpl().login(username,psw); if(user==null) { request.setAttribute("msg", "日本人与狗禁止入内"); return "/jsp/login.jsp"; } else { if(user.getState() == utils.Const.ACTIVE) { //登录成功,且邮箱激活 //1,将user存入session HttpSession session = request.getSession(); session.setAttribute("user", user); //2,回到首页 baseServlet----date----->index.jsp首页 try { response.sendRedirect(request.getContextPath()+"/indexServlet?method=getData"); } catch (IOException e) { e.printStackTrace(); } } else { //未激活 request.setAttribute("msg", "没激激激激活"); return "/jsp/login.jsp"; } } return null; }
iv)重点是,我们需要创建一个父类的baseServlet这个会继承HttpServlet! 让上面的servlet继承之!
然后,在baseServlet中实现service方法,然后用反射机制获取对应的方法!并激活。然后或去返回值,并转发!
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Class<? extends BaseServlet> claz = this.getClass(); //获取方法名参数 String metd = request.getParameter("method"); //根据反射获取方法 Method method = claz.getMethod(metd, HttpServletRequest.class,HttpServletResponse.class); //这里的this,就是浏览器请求的子类servlet //调用该方法,并将该方法的返回值返回给path String path = (String) method.invoke(this,request,response); System.out.println("path=="+path); if (path!=null) { //转发到方法返回的路径 request.getRequestDispatcher(path).forward(request, response); } } catch exception... }
整个的逻辑如下,画了张潦草的图。
相关文章推荐
- 项目管理心得:一个项目经理的个人体会、经验总结
- 【SSH网上商城项目实战30】项目总结(附源码下载地址)
- 项目管理心得:一个项目经理的个人体会、经验总结
- 一个项目结构--源自《learn python hard way》的项目结构总结
- 项目管理心得:一个项目经理的个人体会、经验总结
- 项目管理心得:一个项目经理的个人体会、经验总结
- ###Jsp+Servlet购物商城day04.2:订单模块难点总结。【购物商城最大的难点:【封装一个Order对象】查询封装三张表】
- 项目管理心得:一个项目经理的个人体会、经验总结
- 同一个项目的不同的项目工作经验总结--程序员乙
- 学院有意找你开发一个“毕业论文选题管理”的软件,在正式承接本项目的开发任务之前,你认为需要做哪些前期准备工作。
- 一个WPF小项目总结
- 一个项目经理的经验总结
- 电信采集项目的一个小总结
- 项目管理心得:一个项目经理的个人体会、经验总结
- 摘要:本篇是本人在做一个大数据项目时,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度。
- [置顶]团队开发经验:如何带领一个项目团队并做好项目总结
- 项目管理心得:一个项目经理的个人体会、经验总结
- 如何架构一个ios项目 个人经验总结
- 基于vue-cli网上商城项目实战开发——搭建一个完整的SPA项目开发框架(一)
- 项目管理心得:一个项目经理的个人体会、经验总结