201711671133 张芳维 课程设计

本文档详细介绍了基于JSP技术的智能手机销售系统的开发过程,包括系统需求分析、模块设计、页面实现及测试方法。系统涵盖了用户注册、登录、商品浏览、购物车管理等功能,并针对管理员提供了用户管理、订单管理等后台操作界面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

 

web课程设计

 

 

智能手机销售系统

 

 

 

 

学生姓名

张芳维

学号

201711671133

所在学院

数学与计算机学院

班级

信管1171

所在专业

信息管理与信息系统

申请学位

 

指导教师

涂超

职称

 

副指导教师

 

职称

 

答辩时间

年     月    日

 

 

目录

 

一、 系统开发的背景 3

二、 系统分析与设计 3

(一) 系统功能要求 3

(二) 系统模块结构设计 3

三、 系统的设计与实现 4

(一) 页面管理 4

(二) 注册 4

(三)会员登录 5

(四)浏览手机 6

(五)菜单的实现 11

四、 系统测试 12

(一) 页面管理 12

(二) 注册模块 12

(三) 浏览手机模块 13

(四) 查询模块 13

(五) 后台维护 13

 

 

 

说明书

 

使用JSP技术建立一个简单的手机销售网(货到付款),其目的是掌握一般WEB应用中常用基本模块的开发方法。

 

    用户可以进行注册,登录,浏览手机以及确认订单等等操作。

管理员可以进行对用户,订单等等增删查改的操作。

 

  通过对系统功能的分析,系统主要模块如下:

    

    

通过上图的功能分析,把整个系统划分为8个模块:

1、注册,该模块主要实现:用户的基本信息(用户名、密码、电话等)的输入,借助javabean跟servlet实现。

2、登录,该模块主要实现:用户的基本信息(用户名、密码、电话等)的输出,借助javabean跟servlet实现。

3、购物车,该模块主要实现:手机的基本信息的输入,借助javabean跟servlet实现。

4、浏览手机,该模块主要实现:手机的基本信息的输出,借助javabean跟servlet实现。

5、查询手机,该模块主要实现:通过手机名称、手机的编号来查找想要的数据,借助javabean跟servlet实现。

6、确认订单,该模块主要实现:确认要买的手机型号或者是手机的名称,借助javabean跟servlet实现。

7、查询订单,该模块主要实现:负责查找到相应的订单并确认价格,借助javabean实现。

8、退出登录,该模块主要实现:以防其他用户对此用户进行任何操作,借助servlet实现。

 

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="image/welcome.jpg" width=500 height=400 >

</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 bgcolor=cyan><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>

 

(三)会员登录

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 bgcolor=cyan><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" >

登录反馈信息:<br>

<jsp:getProperty name="loginBean" property="backNews"/>

<br>登录名称:<br><jsp:getProperty name="loginBean" property="logname"/>

</div>

</font>

</BODY></HTML>

 

(四)浏览手机

lookMobile.jsp

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="java.sql.*" %>

<HTML><HEAD><%@ include file="head.txt" %></HEAD>

<BODY bgcolor=cyan><font size=2>

<div align="center">

<h2>选择某类手机<br>分页显示这类手机</h2>

<%   try {  Class.forName("com.mysql.jdbc.Driver");

      }

      catch(Exception e){} 

      String uri="jdbc:mysql://127.0.0.1/mobileshop?"+

                             "user=root&password=123456&characterEncoding=GB2312";

      Connection con; 

      Statement sql;

      ResultSet rs;

      try {

        con=DriverManager.getConnection(uri);

        sql=con.createStatement();

        //读取mobileClassify表,获得分类:  

        rs=sql.executeQuery("SELECT * FROM mobileclassify  ");

        out.print("<form action='queryServlet' method ='post'>") ;

        out.print("<select name='fenleiNumber'>") ;

        while(rs.next()){

           int id = rs.getInt(1);

           String mobileCategory = rs.getString(2);

           out.print("<option value ="+id+">"+mobileCategory+"</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>

 

 

byPageShow.jsp

 

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="mybean.data.DataByPage" %>

<%@ page import="com.sun.rowset.*" %>

<jsp:useBean id="dataBean" class="mybean.data.DataByPage" scope="session"/>

<%@ include file="head.txt" %></HEAD>

<HTML><Body bgcolor=#66FFAA><center>

<BR>当前显示的内容是:

  <table border=2>

  <tr>

    <th>手机标识号</th>

    <th>手机名称</th>

    <th>手机制造商</th>

    <th>手机价格</th>

    <th>查看详情</th>

    <td><font color=blue>添加到购物车</font></td>

  </tr>

<jsp:setProperty name="dataBean" property="pageSize" param="pageSize"/>

<jsp:setProperty name="dataBean" property="currentPage" param="currentPage"/>

<%    

      CachedRowSetImpl rowSet=dataBean.getRowSet();

      if(rowSet==null) {

         out.print("没有查询到结果,无法浏览");

         return;  

      }

      rowSet.last(); 

      int totalRecord=rowSet.getRow();

      out.println("全部记录数"+totalRecord); //全部记录数

      int pageSize=dataBean.getPageSize();  //每页显示的记录数

      int totalPages = dataBean.getTotalPages();

      if(totalRecord%pageSize==0)

           totalPages = totalRecord/pageSize;//总页数

      else

           totalPages = totalRecord/pageSize+1;

      dataBean.setPageSize(pageSize);

      dataBean.setTotalPages(totalPages);

      if(totalPages>=1) {

         if(dataBean.getCurrentPage()<1)

              dataBean.setCurrentPage(dataBean.getTotalPages());

         if(dataBean.getCurrentPage()>dataBean.getTotalPages())

              dataBean.setCurrentPage(1);

         int index=(dataBean.getCurrentPage()-1)*pageSize+1;

         rowSet.absolute(index);  //查询位置移动到currentPage页起始位置

         boolean boo=true;

         for(int i=1;i<=pageSize&&boo;i++) { 

            String number=rowSet.getString(1);

            String name=rowSet.getString(2);

            String maker=rowSet.getString(3);

            String price=rowSet.getString(4);

            String goods =

            "("+number+","+name+","+maker+

             ","+price+")#"+price;//便于购物车计算价格,尾缀上"#价格值"

            goods = goods.replaceAll("\\p{Blank}","");

            String button="<form  action='putGoodsServlet' method = 'post'>"+

                     "<input type ='hidden' name='java' value= "+goods+">"+

                     "<input type ='submit'  value='放入购物车' ></form>";

            String detail="<form  action='showDetail.jsp' method = 'post'>"+

                     "<input type ='hidden' name='xijie' value= "+number+">"+

                     "<input type ='submit'  value='查看细节' ></form>";

            out.print("<tr>");

            out.print("<td>"+number+"</td>");

            out.print("<td>"+name+"</td>");

            out.print("<td>"+maker+"</td>");

            out.print("<td>"+price+"</td>");

            out.print("<td>"+detail+"</td>");

            out.print("<td>"+button+"</td>");

            out.print("</tr>");

            boo=rowSet.next();

         }

     }

%>

 </table>

 <BR>每页最多显示<jsp:getProperty name="dataBean" property="pageSize"/>条信息

 <BR>当前显示第<Font color=blue>

     <jsp:getProperty name="dataBean" property="currentPage"/>

   </Font>页,共有

   <Font color=blue><jsp:getProperty name="dataBean" property="totalPages"/>

   </Font>页。

<Table>

  <tr><td><FORM action="" method=post>

          <Input type=hidden name="currentPage" value=

         "<%=dataBean.getCurrentPage()-1 %>">

           <Input type=submit name="g" value="上一页"></FORM></td>

      <td><FORM action="" method=post>

          <Input type=hidden name="currentPage"

           value="<%=dataBean.getCurrentPage()+1 %>">

          <Input type=submit name="g" value="下一页"></FORM></td></tr>

 <tr><td> <FORM action="" method=post>

          每页显示<Input type=text name="pageSize" value =2 size=3>

          条记录<Input type=submit name="g" value="确定"></FORM></td>

      <td> <FORM action="" method=post>

           输入页码:<Input type=text name="currentPage" size=2 >

           <Input type=submit name="g" value="提交"></FORM></td></tr>

</Table>

</Center>

</BODY></HTML>

 

 

showDetail.jsp

 

<%@ page contentType="text/html;charset=GB2312" %>

<%@ page import="mybean.data.Login" %>

<%@ page import="java.sql.*" %>

<jsp:useBean id="loginBean" class="mybean.data.Login" scope="session"/>

<%@ include file="head.txt" %></HEAD>

<HTML><Body bgcolor=#99FFCC ><center>

<% if(loginBean==null){

        response.sendRedirect("login.jsp");//重定向到登录页面

   }

   else {

       boolean b =loginBean.getLogname()==null||

                  loginBean.getLogname().length()==0;

       if(b)

         response.sendRedirect("login.jsp");//重定向到登录页面

   }

   String mobileID = request.getParameter("xijie"); 

   out.print("<th>产品号"+mobileID);

   if(mobileID==null) {

       out.print("没有产品号,无法查看细节");

       return;

   } 

   Connection con;

   Statement sql; 

   ResultSet rs;

   try {  Class.forName("com.mysql.jdbc.Driver");

   }

   catch(Exception e){} 

   String uri="jdbc:mysql://127.0.0.1/mobileshop";

   try{ 

     con=DriverManager.getConnection(uri,"root","111111");

     sql=con.createStatement();

     String cdn="SELECT * FROM mobileForm where mobile_version = '"+mobileID+"'";

     rs=sql.executeQuery(cdn);

     out.print("<table border=2>");

     out.print("<tr>");

     out.print("<th>产品号");

     out.print("<th>名称");

     out.print("<th>制造商");

     out.print("<th>价格");

     out.print("<th><font color=blue>放入购物车</font>");

     out.print("</TR>");

     String picture="welcome.jpg";

     String detailMess="";

     while(rs.next()){

       String number=rs.getString(1);

       String name=rs.getString(2);

       String maker=rs.getString(3);

       String price=rs.getString(4);

       detailMess=rs.getString(5);

       picture=rs.getString(6); 

       String goods =

       "("+number+","+name+","+maker+

             ","+price+")#"+price;//便于购物车计算价格,尾缀上"#价格值"

        goods = goods.replaceAll("\\p{Blank}","");

        String button="<form  action='putGoodsServlet' method = 'post'>"+

                     "<input type ='hidden' name='java' value= "+goods+">"+

                     "<input type ='submit'  value='放入购物车' ></form>";

        out.print("<tr>");

        out.print("<td>"+number+"</td>");

        out.print("<td>"+name+"</td>");

        out.print("<td>"+maker+"</td>");

        out.print("<td>"+price+"</td>");

        out.print("<td>"+button+"</td>");

        out.print("</tr>");

     } 

     out.print("</table>");

     out.print("产品详情:<br>");

     out.println("<div align=center>"+detailMess+"<div>");

     String pic ="<img src='image/"+picture+"' width=260 height=200 ></img>";

     out.print(pic); //产片图片

     con.close();                 

  }

  catch(SQLException exp){}

%>

</Center>

</BODY></HTML> 

adminUser.jsp

<%@ page language="java" contentType="text/html;charset=GB2312"

    pageEncoding="UTF-8"%>

<%@ page import="mybean.data.*" %>

<%@ page import="java.sql.*" %>

<%@ page import="mydatabase.DBConfig" %>

<jsp:useBean id="loginBean" class="mybean.data.Login" scope="session"/>

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<link rel="stylesheet" type="text/css" href="style/style.css" />

<title>后台管理</title>

</head>

<body>

<%@ include file="head.txt" %>

<%

if (loginBean == null || !loginBean.isLoggedIn()) {

response.sendRedirect("login.jsp");

return;

}

%>

 

<div id="nav">

<a href="adminUser.jsp">用户管理</a><br>

<a href="adminCategory.jsp">类别管理</a><br>

<a href="adminProduct.jsp">产品管理</a><br>

<a href="adminOrder.jsp">订单管理</a><br>

</div>

 

<div id="section">

<table border="1">

<thead>

<th>用户名</th>

<th>电话</th>

<th>地址</th>

<th>姓名</th>

</thead>

<tbody>

<% try {

Class.forName("com.mysql.jdbc.Driver");

} catch (Exception e) {}

Connection conn = null;

Statement stat;

ResultSet rs;

try {

conn = DriverManager.getConnection(DBConfig.DB_URI);

stat = conn.createStatement();

rs = stat.executeQuery("SELECT logname,phone,address,realname FROM user");

while (rs.next()) {

out.print("<tr>");

out.print("<td>" + rs.getString(1) + "</td>");

out.print("<td>" + rs.getString(2) + "</td>");

out.print("<td>" + rs.getString(3) + "</td>");

out.print("<td>" + rs.getString(4) + "</td>");

out.print("</tr>");

}

} catch (Exception e) {

 

} finally {

if (conn != null) conn.close();

}%>

</tbody>

</table>

</div>

</body>

</html>

 

adminOrder.jsp

<%@ page language="java" contentType="text/html;charset=GB2312"

    pageEncoding="UTF-8"%>

<%@ page import="mybean.data.*" %>

<%@ page import="java.sql.*" %>

<%@ page import="mydatabase.DBConfig" %>

<jsp:useBean id="loginBean" class="mybean.data.Login" scope="session"/>

 

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<link rel="stylesheet" type="text/css" href="style/style.css" />

<title>后台管理</title>

</head>

<body>

<%@ include file="head.txt" %>

<%

if (loginBean == null || !loginBean.isLoggedIn()) {

response.sendRedirect("login.jsp");

return;

}

%>

 

<div id="nav">

<a href="adminUser.jsp">用户管理</a><br>

<a href="adminCategory.jsp">类别管理</a><br>

<a href="adminProduct.jsp">产品管理</a><br>

<a href="adminOrder.jsp">订单管理</a><br>

</div>

 

<div id="section">

<table border="1">

<thead>

<th>订单号</th>

<th>用户</th>

<th>信息</th>

<th>价格</th>

</thead>

<tbody>

<%

Connection conn = null;

Statement stat;

ResultSet rs;

try {

conn = DriverManager.getConnection(DBConfig.DB_URI);

stat = conn.createStatement();

rs = stat.executeQuery("SELECT id,logname,mess,sum FROM orderform");

while (rs.next()) {

out.print("<tr>");

out.print("<td>" + rs.getString(1) + "</td>");

out.print("<td>" + rs.getString(2) + "</td>");

out.print("<td>" + rs.getString(3) + "</td>");

out.print("<td>" + rs.getString(4) + "</td>");

out.print("</tr>");

}

} catch (Exception e) {

 

} finally {

if (conn != null) conn.close();

}

%>

</tbody>

</table>

</div>

</body>

</html>  

电动汽车数据集:2025年3K+记录 真实电动汽车数据:特斯拉、宝马、日产车型,含2025年电池规格和销售数据 关于数据集 电动汽车数据集 这个合成数据集包含许多品牌和年份的电动汽车和插电式车型的记录,捕捉技术规格、性能、定价、制造来源、销售和安全相关属性。每一行代表由vehicle_ID标识的唯一车辆列表。 关键特性 覆盖范围:全球制造商和车型组合,包括纯电动汽车和插电式混合动力汽车。 范围:电池化学成分、容量、续航里程、充电标准和速度、价格、产地、自主水平、排放、安全等级、销售和保修。 时间跨度:模型跨度多年(包括传统和即将推出的)。 数据质量说明: 某些行可能缺少某些字段(空白)。 几个分类字段包含不同的、特定于供应商的值(例如,Charging_Type、Battery_Type)。 各列中的单位混合在一起;注意kWh、km、hr、USD、g/km和额定值。 列 列类型描述示例 Vehicle_ID整数每个车辆记录的唯一标识符。1 制造商分类汽车品牌或OEM。特斯拉 型号类别特定型号名称/变体。型号Y 与记录关联的年份整数模型。2024 电池_类型分类使用的电池化学/技术。磷酸铁锂 Battery_Capacity_kWh浮充电池标称容量,单位为千瓦时。75.0 Range_km整数表示充满电后的行驶里程(公里)。505 充电类型主要充电接口或功能。CCS、NACS、CHAdeMO、DCFC、V2G、V2H、V2L Charge_Time_hr浮动充电的大致时间(小时),上下文因充电方法而异。7.5 价格_USD浮动参考车辆价格(美元).85000.00 颜色类别主要外观颜色或饰面。午夜黑 制造国_制造类别车辆制造/组装的国家。美国 Autonomous_Level浮点自动化能力级别(例如0-5),可能包括子级别的小
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值