手机销售网后台设计
《JSP程序设计》手机销售网后台设计
学号:201711671215
本次实验设计以《JSP程序设计》课本第十章的例子项目为基础进行设计添加后台功能,后台页面分成左右两个框,左边显示一个树形菜单,右边根据菜单选择显示相应的交互界面。以实现对用户,产品分类,产品,订单等的后台管理。
一、前期工作
安装myeclipse2018,将课本第十章的例子项目导入软件并调试好相关环境,保证项目的正常运行使用。所有的页面包括一个导航条,导航条由注册、登录、浏览手机、查看订单功能。
检测各功能的正常使用
二、后台设计与实验
首先在导航栏添加后台链接选项
在dtree官网下载dtree菜单源码,对源码更改实现具体功能,后台页面实现功能如下:
登录代码如下:
inputRegister.jsp
<%@ page contentType="text/html;charset=GB2312" %>
<jsp:useBean id="userBean" class="classes.mybean.data.Register" scope="request"/>
<HEAD><%@ include file="head.txt" %></HEAD>
<title>注册页面</title>
<HTML><BODY background-color=pink><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>
登陆验证控制器代码:
HandleRegister.java
package classes.myservlet.control;
import classes.mybean.data.*;
import java.sql.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HandleRegister extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
try { Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){System.out.println("驱动加载出错");}
}
public String handleString(String s)
{ try{ byte bb[]=s.getBytes("iso-8859-1");
s=new String(bb);
}
catch(Exception ee){}
return s;
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=GB2312";
Connection con;
PreparedStatement sql;
Register userBean=new Register(); //创建的Javabean模型
request.setAttribute("userBean",userBean);
String logname=request.getParameter("logname").trim();
String password=request.getParameter("password").trim();
String again_password=request.getParameter("again_password").trim();
String phone=request.getParameter("phone").trim();
String address=request.getParameter("address").trim();
String realname=request.getParameter("realname").trim();
if(logname==null)
logname="";
if(password==null)
password="";
if(!password.equals(again_password)) {
userBean.setBackNews("两次密码不同,注册失败,");
RequestDispatcher dispatcher=
request.getRequestDispatcher("inputRegisterMess.jsp");
dispatcher.forward(request, response);//转发
return;
}
boolean isLD=true;
for(int i=0;i<logname.length();i++){
char c=logname.charAt(i);
if(!((c<='z'&&c>='a')||(c<='Z'&&c>='A')||(c<='9'&&c>='0')))
isLD=false;
}
boolean boo=logname.length()>0&&password.length()>0&&isLD;
String backNews="";
try{ con=DriverManager.getConnection(uri,"root","123456");
String insertCondition="INSERT INTO user VALUES (?,?,?,?,?)";
sql=con.prepareStatement(insertCondition);
if(boo)
{ sql.setString(1,handleString(logname));
sql.setString(2,handleString(password));
sql.setString(3,handleString(phone));
sql.setString(4,handleString(address));
sql.setString(5,handleString(realname));
int m=sql.executeUpdate();
if(m!=0){
backNews="注册成功";
userBean.setBackNews(backNews);
userBean.setLogname(logname);
userBean.setPhone(handleString(phone));
userBean.setAddress(handleString(address));
userBean.setRealname(handleString(realname));
}
}
else {
backNews="信息填写不完整或名字中有非法字符";
userBean.setBackNews(backNews);
}
con.close();
}
catch(SQLException exp){
backNews="该会员名已被使用,请您更换名字"+exp;
userBean.setBackNews(backNews);
}
RequestDispatcher dispatcher=
request.getRequestDispatcher("inputRegisterMess.jsp");
dispatcher.forward(request, response);//转发
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doPost(request,response);
}
}
登陆页面:
用户删除代码:
deleteUer.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<body bgcolor="cyan">
<div align=center>
<form action="deleteUser"method="post">
<br/>
输入要删除的用户名:<input type=text name="username">
<input type=submit name="submit"value="提交">
</form>
</div>
</body>
</html>
删除用户控制器:
deleteUser.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deleteUser 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 {
PrintWriter out=response.getWriter();
Connection con;
Statement sql;
response.setContentType("text/html;charset=GB2312");
response.setCharacterEncoding("gb2312");
String username=request.getParameter("username").trim();
if(username==null) {
username="";
}
else {
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
int m=sql.executeUpdate("DELETE FROM user WHERE logname='"+username+"'");
if(m!=0) {
out.println("删除成功");
response.sendRedirect("index.jsp");
}
else {
out.println("删除失败,或不存在该用户!");
response.sendRedirect("index.jsp");
}
out.println("</body></html>
运行界面界面图:
用户查询代码:
selectUser.jsp //直接与数据库交互
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery("select logname from user");
out.println("<div align=center backgroud-color=blue>");
out.println("<table border=2>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</div>");
con.close();
}
catch(SQLException e){
out.println(e);
}
%>
运行结果图:
手机分类添加源代码:
addmobileClassify.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<body>
<div align=center>
<form action="addmobileClassify",method="post">
手机类别信息添加
<table border=2 >
<tr><td>手机类别标识符:</td><td><input type="text"name="id"></tr>
<tr><td>手机类别名:</td><td><input type="text"name="name"></td></tr>
</table>
<input type=submit name="submit" value="提交">
</form>
</div>
</body>
</html>
运行界面图:
手机类别添加控制器:
addmobileClassify.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class addmobileClassify 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 {
PrintWriter out=response.getWriter();
Connection con;
PreparedStatement sql;
response.setContentType("text/html;charset=GB2312");
String id=request.getParameter("id").trim();
String name=request.getParameter("name").trim();
out.println("<html><body>");
if(id==null) {
id="";
}
if(name==null) {
name="";
}
int ID=Integer.parseInt(id);
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
String str="insert into mobileClassify values(ID,name)";
sql=con.prepareStatement(str);
sql.setInt(1,ID);
sql.setString(2,name);
int m=sql.executeUpdate();
if(m!=0) {
out.println("插入成功");
response.sendRedirect("index.jsp");
}
else {
out.println("插入失败,或已存在!");
response.sendRedirect("index.jsp");
}
out.println("</body></html>
手机类别删除代码:
delectmobileClassify.jsp
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deletemobileClassify 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 {
PrintWriter out=response.getWriter();
Connection con;
Statement sql;
String mess="";
response.setContentType("text/html;charset=GB2312");
String name=request.getParameter("radio");
String message=request.getParameter("message");
if(name=="id") {
int Message=Integer.parseInt(message);
mess="delete * from mobileClassify where id='"+Message+"'";
}
else if(name=="name") {
mess="delete * from mobileClassify where name='"+message+"'";
}
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
int m=sql.executeUpdate(mess);
if(m!=0) {
out.println("删除成功");
response.sendRedirect("index.jsp");
}
else {
out.println("删除失败,或不存在该用户!");
}
out.println("</body></html>
手机类别删除控制器:
deletemobileClassify.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deletemobileClassify 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 {
PrintWriter out=response.getWriter();
Connection con;
Statement sql;
String mess="";
response.setContentType("text/html;charset=GB2312");
String name=request.getParameter("radio");
String message=request.getParameter("message");
if(name=="id") {
int Message=Integer.parseInt(message);
mess="delete * from mobileClassify where id='"+Message+"'";
}
else if(name=="name") {
mess="delete * from mobileClassify where name='"+message+"'";
}
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
int m=sql.executeUpdate(mess);
if(m!=0) {
out.println("删除成功");
response.sendRedirect("index.jsp");
}
else {
out.println("删除失败,或不存在该用户!");
}
out.println("</body></html>
手机分类信息查询代码:
selectmobileClassify.jsp
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery("select * from mobileClassify");
out.println("<div align=center backgroud-color=blue>");
out.println("<table border=2>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getInt(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</div>");
con.close();
}
catch(SQLException e){
out.println(e);
}
%>
手机信息添加代码
addmobileForm.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<body>
<div align=center>
<form action="addmobileForm",method="post">
手机信息添加
<table border=2 >
<tr><td>手机版本:</td><td><input type="text"name="version"></td><td>手机名:</td><td><input type="text"name="name"></td></tr>
<tr><td>手机制造商:</td><td><input type="text"name="made"></td><td>手机价格:</td><td><input type="text"name="price"></td></tr>
<tr><td>手机信息:</td><td><input type="text"name="mess"></td><td>手机图片:</td><td><input type="text"name="pic"></td></tr>
<td>手机标识号:</td><td><input type="text"name="name"></td>
</table>
<input type=submit name="submit" value="提交">
</form>
</div>
</body>
</html>
手机信息添加控制器:
addmobileForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class addmobileForm 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 {
PrintWriter out=response.getWriter();
Connection con;
PreparedStatement sql;
response.setContentType("text/html;charset=GB2312");
request.setCharacterEncoding("gb2312");
String version=request.getParameter("version");
String name=request.getParameter("name");
String made=request.getParameter("made");
String price=request.getParameter("price");
String mess=request.getParameter("mess");
String pic=request.getParameter("pic");
String id=request.getParameter("id");
if(version==null) {
version="";
}
if(pic==null) {
pic="";
}
else {
int ID=Integer.parseInt(id);
float Price=Float.parseFloat(price);
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.prepareStatement("insert into mobileForm values(?,?,?,?,?,?,?)");
sql.setString(1,version);
sql.setString(2,name);
sql.setString(3,made);
sql.setFloat(4,Price);
sql.setString(5,mess);
sql.setString(6,pic);
sql.setInt(7,ID);
int m=sql.executeUpdate();
if(m!=0) {
out.println("添加成功");
response.sendRedirect("index.jsp");
}
else {
out.println("添加失败,或已存在该用户!");
response.sendRedirect("index.jsp");
}
out.println("</body></html>
手机信息删除
delectmobileForm.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<html>
<body bgcolor="cyan">
<div align=center>
<form action="deletemobileForm"method="post">
<br/>
<h1>删除手机信息</h1>
<input type=text name="message">
<input type="radio"name="radio" value="id"checked="checked">手机版本
<input type="radio"name="radio"value="name">手机名
<input type=submit name="submit"value="提交">
</form>
</div>
</body>
</html>
手机信息删除控制器:
deletemobileForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deletemobileForm 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 {
PrintWriter out=response.getWriter();
Connection con;
Statement sql;
String mess="0";
response.setContentType("text/html;charset=GB2312");
request.setCharacterEncoding("gb2312");
String name=request.getParameter("radio");
String message=request.getParameter("message");
if(message==null) {
message="";
}
if(name=="id") {
mess="delete * from mobileForm where version='"+message+"'";
}
else if(name=="name") {
mess="delete * from mobileForm where name='"+message+"'";
}
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
int m=sql.executeUpdate(mess);
if(m!=0) {
out.println("删除成功");
response.sendRedirect("index.jsp");
}
else {
out.println("删除失败,或不存在该手机信息!");
}
out.println("</body></html>
手机信息查询:
selectmobileForm.jsp
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery("select * from mobileForm");
out.println("<div align=center backgroud-color=blue>");
out.println("<table border=2>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getString(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getFloat(4)+"</td>");
out.println("<td>"+rs.getString(5)+"</td>");
out.println("<td>"+rs.getString(6)+"</td>");
out.println("<td>"+rs.getInt(7)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</div>");
con.close();
}
catch(SQLException e){
out.println(e);
}
%>
订单添加代码:
addorderForm.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
<body>
<div align=center>
<form action="addorderForm",method="post">
订单信息添加
<table border=2 >
<tr><td>订单编号:</td><td><input type="text"name="id"></tr>
<tr><td>订单注册名:</td><td><input type="text"name="logname"></td></tr>
<tr><td>订单信息:</td><td><input type="text"name="mess"></td></tr>
<tr><td>订单价格总和:</td><td><input type="text"name="sum"></td></tr>
</table>
<input type=submit name="submit" value="提交">
</form>
</div>
</body>
</html>
订单添加控制器:
addorderForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class addorderForm 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 {
PrintWriter out=response.getWriter();
Connection con;
PreparedStatement sql;
request.setCharacterEncoding("gb2312");
response.setContentType("type=text/html;charset=gb2312");
String id=request.getParameter("id").trim();
String logname=request.getParameter("logname").trim();
String mess=request.getParameter("mess").trim();
String sum=request.getParameter("sum").trim();
if(id==null) {
id="";
}
if(logname==null) {
logname="";
}
int ID=Integer.parseInt(id);
float Sum=Float.parseFloat(sum);
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.prepareStatement("insert into orderForm values(?,?,?,?)");
sql.setInt(1,ID);
sql.setString(2, logname);
sql.setString(3,mess);
sql.setFloat(4, Sum);
int m=sql.executeUpdate();
if(m!=0) {
out.println("添加成功");
}
else {
out.println("添加失败,或已存在该用户!");
}
con.close();
}
catch(SQLException e) {
out.println(""+e);
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doPost(request,response);
}
}
订单信息删除控制器:
deleteorderForm.java
package classes.myservlet.control;
import java.sql.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class deleteorderForm 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 {
PrintWriter out=response.getWriter();
Connection con;
Statement sql;
StringBuffer mess=new StringBuffer();
response.setContentType("text/html;charset=GB2312");
request.setCharacterEncoding("gb2312");
String name=request.getParameter("radio").trim();
String message=request.getParameter("message").trim();
if(message==null) {
message="";
}
if(name=="id") {
int Message=Integer.parseInt(message);
mess.append("delete * from mobileForm where id='"+Message+"'");
}
else if(name=="name") {
mess.append("delete * from orderForm where logname='"+message+"'");
}
out.println("<html><body>");
try {
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
String str=new String(mess);
int m=sql.executeUpdate(str);
if(m!=0) {
out.println("删除成功");
response.sendRedirect("index.jsp");
}
else {
out.println("删除失败,或不存在该用户!");
}
out.println("</body></html>
订单查询文件:
<%@page contentType="text/html;charset=GB2312" %>
<%@page import="java.sql.*" %>
<html>
<body><bgcolor=cyan>
<%
Connection con;
Statement sql;
ResultSet rs;
try{
Class.forName("com.mysql.cj.jdbc.Driver");
}
catch(Exception e){}
try{
String uri="jdbc:mysql://localhost:3306/mobileshop?serverTimezone=UTC&characterEncoding=gb2312";
con=DriverManager.getConnection(uri,"root","123456");
sql=con.createStatement();
rs=sql.executeQuery("select * from orderForm");
out.println("<html><body>");
out.println("<div align=center>");
out.println("<table>");
while(rs.next()){
out.println("<tr>");
out.println("<td>"+rs.getInt(1)+"</td>");
out.println("<td>"+rs.getString(2)+"</td>");
out.println("<td>"+rs.getString(3)+"</td>");
out.println("<td>"+rs.getFloat(4)+"</td>");
out.println("</tr>");
}
out.println("</table>");
out.println("</div>");
out.println("</body></html>