1. 开发工具:eclipse、tomcat、navicat、mysql8.0
  2. 开发技术:Java、html、css、JavaScript、jsp、springmvc。
  3. 项目描述:该化妆品销售系统可以实现顾客的注册、登录、浏览化妆品、查询化妆品、查看购物车、加入购物车、退出、主页。
  4. 源码地址:https://download.csdn.net/download/m0_51152186/85262700

一、eclipse中新建web项目。

创建Dynamic Web Project–动态web项目。

打开eclipse,在工具栏选在New–>Dynamic Web Project

在打开的Dynamic Web Project窗口,输入项目名。选择tomcat,其他默认,然后Next。

这时你可以把Context directory名改为WebRoot,也可以默认为WebContent,完成。这样就在eclipse的左边窗口生成了一个名为dynamic_web_project_01的web项目,至此web项目创建完毕。

二、建立如下图所示的工程目录,导入连接MySQL的jar包

编写mvc中属于view的jsp代码

login.jsp(登录)

<%@ page contentType="text/html;charset=GB2312" %><jsp:useBean id="loginBean" class="mybean.data.Login" scope="session"/><HTML><HEAD><%@ include file="head.txt" %></HEAD><BODY background=image/back.jpg><font size=2><div align="center"><table border=2><tr> <th>登录</th></tr><FORM action="loginServlet" Method="post"><tr><td>登录名称:<Input type=text name="logname"></td></tr><tr><td>输入密码:<Input type=password name="password"></td></tr></table><Input type=submit name="g" value="提交"></FORM></div ><div align="center" >登录反馈信息:<jsp:getProperty name="loginBean" property="backNews"/><br>登录名称:<jsp:getProperty name="loginBean" property="logname"/><div ></font></BODY></HTML>

index.jsp(首页)

<%@ page contentType="text/html;charset=GB2312" %><HTML> <BODY><HEAD><%@ include file="head.txt" %></HEAD><title>首页</title><CENTER> <h1><font Size=4 color=blue>         欢迎光临“青山不老绿水无忧”化妆品销售网         </font></h1><img src="data:image/welcome.jpg" width=600 height=200 ></img></CENTER></BODY></HTML>

inputRegisterMess.jsp(注册)

<%@ page contentType="text/html;charset=GB2312" %><jsp:useBean id="userBean" class="mybean.data.Register" scope="request"/><HEAD><%@ include file="head.txt" %></HEAD><title>注册页面</title><HTML><BODY background=image/back.jpg><Font size=2><div align="center"><FORM action="registerServlet" method="post" name=form><table>    用户名由字母、数字、下划线构成,*注释的项必须填写。   <tr><td>*用户名称:</td><td><Input type=text name="logname" ></td>       <td>*用户密码:</td><td><Input type=password name="password">       </td></tr>   <tr><td>*重复密码:</td><td>       <Input type=password name="again_password"></td>       <td>联系电话:</td><td><Input type=text name="phone"></td></tr>   <tr><td>邮寄地址:</td><td><Input type=text name="address"></td>       <td>真实姓名:</td><td><Input type=text name="realname"></td>       <td><Input type=submit name="g" value="提交"></td> </tr></table></Form></div ><div align="center"><p> 注册反馈:<jsp:getProperty name="userBean"  property="backNews" /> <table border=3>     <tr><td>会员名称:</td>     <td><jsp:getProperty name="userBean" property="logname"/></td>     </tr>     <tr><td>姓名:</td>     <td><jsp:getProperty name="userBean" property="realname"/></td>     </tr>     <tr><td>地址:</td>     <td><jsp:getProperty name="userBean" property="address"/></td>     </tr>     <tr><td>电话:</td>     <td><jsp:getProperty name="userBean" property="phone"/></td>     </tr></table></div ></Body></HTML>

lookCosmetic.jsp(浏览化妆品)

<%@ page contentType="text/html;charset=GB2312" %><%@ page import="java.sql.*" %><HTML><HEAD><%@ include file="head.txt" %></HEAD><BODY background=image/back.jpg><font size=2><div align="center"><%   try {  Class.forName("com.mysql.cj.jdbc.Driver");      }      catch(Exception e){}       String uri="jdbc:mysql://localhost/shop?user=root&password=123456&useSSL=false&serverTimezone=GMT+8&characterEncoding=utf-8&autoReconnect=true";      Connection con;       Statement sql;      ResultSet rs;      try {        con=DriverManager.getConnection(uri);        sql=con.createStatement();        //读取classify表,获得分类:          rs=sql.executeQuery("SELECT * FROM classify  ");        out.print("<form action='queryServlet' method ='post'>") ;        out.print("<select name='fenleiNumber'>") ;        while(rs.next()){           int id = rs.getInt(1);           String name = rs.getString(2);           out.print("<option value ="+id+">"+name+"</option>");        }          out.print("</select>");        out.print("<input type ='submit' value ='提交'>");          out.print("</form>");        con.close();     }     catch(SQLException e){         out.print(e);     }%></div></font></BODY></HTML>

searchCosmetic.jsp(查询化妆品)

<%@ page contentType="text/html;charset=GB2312" %><HTML><HEAD><%@ include file="head.txt" %></HEAD><BODY background=image/back.jpg><font size=2><div align="center"><br>查询时可以输入化妆品的版本号或化妆品名称及价格。<br>化妆品名称支持模糊查询。<br>输入价格是在2个值之间的价格,格式是:价格1-价格2<br>例如 258-689 <FORM action="searchByConditionServlet" Method="post" >   <br>输入查询信息:<Input type=text name="searchMess"><br>   <Input type =radio name="radio" value="cosmetic_number">化妆品版本号   <Input type =radio name="radio" value="cosmetic_name" checked="ok">化妆品名称   <Input type =radio name="radio" value="cosmetic_price">化妆品价格   <br><Input type=submit name="g" value="提交"></Form></div></Font></BODY></HTML>

lookShoppingcar.jsp(查看购物车)

<%@ page contentType="text/html;charset=GB2312" %><%@ page import="mybean.data.Login" %><%@ page import="java.util.*" %><jsp:useBean id="loginBean" class="mybean.data.Login" scope="session"/><HTML><HEAD><%@ include file="head.txt" %></HEAD><BODY background=image/back.jpg><font size=2><div align="center"><%  if(loginBean==null){        response.sendRedirect("login.jsp");//重定向到登录页面    }    else {       boolean b =loginBean.getLogname()==null||                  loginBean.getLogname().length()==0;       if(b)         response.sendRedirect("login.jsp");//重定向到登录页面    }    LinkedList car =loginBean.getCar();    if(car==null)      out.print("<h2> 购物车没有物品.</h2>");    else {       Iterator<String> iterator=car.iterator();       StringBuffer buyGoods = new StringBuffer();       int n=0;       double priceSum =0;       out.print("购物车中的物品:<table border=2>");       while(iterator.hasNext()) {           String goods=iterator.next();           String showGoods="";           n++;            //购车车物品的后缀是“#价格数字",比如“化妆品价格3989 #3989”           int index=goods.lastIndexOf("#");           if(index!=-1){              priceSum+=Double.parseDouble(goods.substring(index+1));              showGoods = goods.substring(0,index);           }           buyGoods.append(n+":"+showGoods);           String del="<form  action='deleteServlet' method = 'post'>"+                     "<input type ='hidden' name='delete' value= "+goods+">"+                     "<input type ='submit'  value='删除' ></form>";                     out.print("<tr><td>"+showGoods+"</td>");           out.print("<td>"+del+"</td></tr>");       }       out.print("</table>");       String orderForm = "<form action='buyServlet' method='post'>"+              " <input type ='hidden' name='buy' value= "+buyGoods+" >"+               " <input type ='hidden' name='price' value= "+priceSum+" >"+                         "<input type ='submit'  value='生成订单'></form>";       out.print(orderForm);     } %></div></font></BODY></HTML>

 三、编写mvc中的moudle层和control层。

package mybean.data;import com.sun.rowset.*; public class DataByPage{    CachedRowSetImpl rowSet=null;         //存储表中全部记录的行集对象    int pageSize=1;                      //每页显示的记录数    int totalPages=1;                     //分页后的总页数    int currentPage =1   ;                 //当前显示页     public void setRowSet(CachedRowSetImpl set){       rowSet=set;    }    public CachedRowSetImpl getRowSet(){       return rowSet;    }    public void setPageSize(int size){       pageSize=size;    }    public int getPageSize(){       return pageSize;    }     public int getTotalPages(){       return totalPages;    }     public void setTotalPages(int n){       totalPages=n;     }    public void setCurrentPage(int n){       currentPage =n;    }    public int getCurrentPage(){       return currentPage ;    }}
package mybean.data;import java.util.*;public class Login {   String logname="",          backNews="未登录";   LinkedList<String> car; //用户的购物车   public Login() {      car = new LinkedList<String>();   }   public void setLogname(String logname){        this.logname = logname;   }   public String getLogname(){      return logname;   }   public void setBackNews(String s) {      backNews = s;   }    public String getBackNews(){      return backNews;   }   public LinkedList<String> getCar() {       return car;   }}
package mybean.data;public class Register{     String  logname="" , phone="",           address="",realname="",backNews="请输入信息";    public void setLogname(String logname){        this.logname=logname;   }   public String getLogname(){        return logname;   }   public void setPhone(String phone){        this.phone=phone;   }   public String getPhone(){        return phone;   }   public void setAddress(String address){        this.address=address;   }   public String getAddress(){        return address;   }   public void setRealname(String realname){        this.realname=realname;   }   public String getRealname(){        return realname;   }   public void setBackNews(String backNews){        this.backNews=backNews;   }   public String getBackNews(){        return backNews;   }}
package myservlet.control;import mybean.data.Login;import java.sql.*;import java.util.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HandleBuyGoods extends HttpServlet {   public void init(ServletConfig config) throws ServletException {       super.init(config);      try{            Class.forName("com.mysql.cj.jdbc.Driver");      }      catch(Exception e){}    }   public  void  doPost(HttpServletRequest request,HttpServletResponse response)                         throws ServletException,IOException {      request.setCharacterEncoding("gb2312");      String buyGoodsMess = request.getParameter("buy");      if(buyGoodsMess==null||buyGoodsMess.length()==0) {         fail(request,response,"购物车没有物品,无法生成订单");           return;      }      String price = request.getParameter("price");      if(price==null||price.length()==0) {         fail(request,response,"没有计算价格和,无法生成订单");           return;      }      float sum = Float.parseFloat(price);      Login loginBean=null;      HttpSession session=request.getSession(true);      try{  loginBean=(Login)session.getAttribute("loginBean");            boolean b =loginBean.getLogname()==null||            loginBean.getLogname().length()==0;            if(b)              response.sendRedirect("login.jsp");//重定向到登录页面      }      catch(Exception exp){           response.sendRedirect("login.jsp");//重定向到登录页面      }      String uri="jdbc:mysql://localhost/shop?user=root&password=123456&useSSL=false&serverTimezone=GMT+8&characterEncoding=utf-8&autoReconnect=true";      Connection con;       PreparedStatement sql;      try{ con=DriverManager.getConnection(uri);           String insertCondition="INSERT INTO orderform VALUES (?,?,?,?)";           sql=con.prepareStatement(insertCondition);           sql.setInt(1,0); //订单序号会自定增加           sql.setString(2,loginBean.getLogname());           sql.setString(3,buyGoodsMess);           sql.setFloat(4,sum);           sql.executeUpdate();           LinkedList car=loginBean.getCar();           car.clear();  //清空购物车           success(request,response,"生成订单成功");      }      catch(SQLException exp){           fail(request,response,"生成订单失败"+exp);      }   }   public  void  doGet(HttpServletRequest request,HttpServletResponse response)                        throws ServletException,IOException {      doPost(request,response);   }   public void success(HttpServletRequest request,HttpServletResponse response,                      String backNews) {        response.setContentType("text/html;charset=GB2312");        try {         PrintWriter out=response.getWriter();         out.println("<html><body>");         out.println("<h2>"+backNews+"</h2>") ;         out.println("返回主页<br>");         out.println("<br><a href =index.jsp>主页</a>");         out.println("查看订单<br>");         out.println("<br><a href =lookOrderForm.jsp>查看订单</a>");         out.println("</body></html>");        }        catch(IOException exp){}    }   public void fail(HttpServletRequest request,HttpServletResponse response,                      String backNews) {        response.setContentType("text/html;charset=GB2312");        try {         PrintWriter out=response.getWriter();         out.println("<html><body>");         out.println("<h2>"+backNews+"</h2>") ;         out.println("返回主页:");         out.println("<a href =index.jsp>主页</a>");         out.println("</body></html>");        }        catch(IOException exp){}    }}

四、运行截图

 

五、spingmvc总结

springmvc运行原理
核心架构的具体流程步骤如下:
1、 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;
2、DispatcherServlet——>HandlerMapping,HandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;
3、 DispatcherServlet——>HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;
4、 HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);
5、 ModelAndView的逻辑视图名——> ViewResolver, ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;
6、 View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;
7、返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束。

基于(springmvc+tomcat+JavaScript)实现化妆品商城系统相关推荐

  1. mysql基于微信小程序的化妆品商城系统设计与实现毕业设计源码041152

    基于springboot微信小程序的化妆品商城系统 摘  要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户 ...

  2. 基于(springmvc+tomcat+JavaScript)的化妆品商城系统

    开发工具:eclipse.tomcat.navicat.mysql8.0 开发技术:Java.html.css.JavaScript.jsp.springmvc. 源码地址:基于(springmvc+ ...

  3. java项目-第71期基于ssm的化妆品商城系统【毕业设计】

    java项目-第71期基于ssm的化妆品商城系统 1.项目简述 网上化妆品商城系统, 前台+后台管理,用户注册,登录,商品展示, 分组展示,搜索,收货地址管理, 购物车管理,添加,购买,个人信息修改. ...

  4. Java毕设项目-商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现

    题目:商城管理系统-基于J2EE/SSM化妆品商城系统的设计与实现 重点作为毕设项目 1.开发环境 语言:Java       Spring+Springmvc+Mybatis[简称SSM] 数据库: ...

  5. 基于javaweb的个人pc电脑商城系统(java+ssm+jsp+jquery+mysql)

    基于javaweb的个人pc电脑商城系统(java+ssm+jsp+jquery+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/mye ...

  6. 基于微信小程序的球鞋商城系统的设计及实现

    基于微信小程序的球鞋商城系统的设计及实现 后台springboot 前台模块: 登录:用户进入商场微信小程序系统,登陆小程序. 编辑收货地址:用户增加收货地址界面与修改收货地址. 商品详情页面:用户可 ...

  7. 基于javaweb+springboot的仿天猫商城系统(java+jsp+Springboot+SSM+mysql+maven)

    基于javaweb+springboot的仿天猫商城系统(java+jsp+Springboot+SSM+mysql+maven) 一.项目介绍: 迷你天猫商城是一个基于SSM框架的综合性B2C电商平 ...

  8. java项目-第90期基于ssm的嘟嘟二手书商城系统

    源码获取:本博客首页"资源"专栏下载! java项目-第90期基于ssm的嘟嘟二手书商城系统 1.项目简述 该项目是二手书城商城系统,包含普通用户和管理员两个角色.普通用户可以购买 ...

  9. 基于SSM框架开发的零食商城系统

    本系统是基于ssm架构(Spring+SpringMVC+MyBatis)开发的零食商城系统,系统以Java作为编程语言,采用Mysql数据库作为后台数据库.它是基于Browser/Server结构下 ...

  10. 基于SSM+MySQL+Bootstrap的在线购物商城系统

    登陆注册 注册 添加商品 登陆 订单 添加商品 留言列表 首页 添加购物车 购物清单 购物车 修改密码 技术描述 开发工具: Idea/Eclipse 数据库: mysql Jar包仓库:普通jar包 ...

最新文章

  1. 归纳苹果,Facebook大规模部署的Spark-用户界面详细执行操作。
  2. Redisbook学习笔记(3)数据类型之对象处理机制
  3. mysql gtid 1236_MYSQL主从搭建GTID报错 error 1236 master has purged binary logs containing GTIDs?...
  4. js 字符串操作函数有哪些
  5. 好看的按钮html,html-好看的CSS按钮
  6. 制作windows启动盘-大于4GB镜像
  7. python的缩进规则具体是什么_python语句首字缩进规则
  8. NRF24L01使用外部中断读取数据的问题
  9. 图书管理系统/库存管理系统等计算机毕业论文设计
  10. 提高WordPress访问速度的十种方法
  11. 经过了多种方法的尝试,终于找到Quartus破解成功但是没有办法编译的解决方法
  12. 【教程】鼠标右键新建添加RTF文档
  13. movs 数据传送指令_数据传送汇编指令
  14. 用 LSTM 预测股票价格
  15. 上架Google Play Store,国内这些SDK千万不能用,小心被拒!
  16. Unity3D游戏开发案例学习——Tanks!(基本完结)
  17. #2阴阳师首页模块模拟
  18. 刀客传说html5游戏在线玩,影子刀客传说
  19. MPU6050陀螺仪 GY-25模块调试
  20. 钟南山腾讯团队用ML算法验证:这三种防疫措施效果最显著,严格防控要趁早,7至14天起效...

热门文章

  1. “陪伴是最长情的告白”:可是又有多少人真正懂得它的含义呢
  2. 信息爆炸时代的知识获取
  3. 联想linux改windows,G40-70、G50-70联想小新笔记本SR1000随机Linux改Windows 7系统操作指导...
  4. [SQL SERVER 2016]ABF文件的还原
  5. 办公室装修风格都有哪些?
  6. 习题 5.7 找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)。
  7. Mean Shift Segmentation Assessment for Individual Forest Tree Delineation from Airborne Lidar Data
  8. you-get使用教程
  9. 【2013Esri中国用户大会】盘点影像技术三大亮点
  10. 从零开始学习演讲|职场小白演讲成长之路