《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)
t