本文以实现一个公路汽车客车售票网站为目标,从环境搭建到编码实现全过程讲述。
本项目开发工具使用idea(或eclipse),数据库为mysql,也可以转换为SQL server。
本项目结构为JavaBean Servlet MVC,未使用SSH(Struts+Spring+Hibernate) SSM(Spring+SpringMVC+MyBatis) SpringBoot,这三种框架也可以制作
开发环境使用最新版jdk和tomcat,使用了My97DatePicker作为前端日期时间选择工具
首先对现有系地统进行分析,地现有系地统是信地息的重地要来地源。分产析已有系产统的功产能和实产现,从而确产定新系产统的设产计目产标和模产型。由于条件有限,调产研主产要是在网上进产行。即通过在网上已有的汽产车信息网产站注产册成会产员来了解其具产备的功产能。
1.从用户想角度来看:
用户通过想在线注想册成为网想站的用户,可以获想得以下功能:查看网想站信息、预想定车票、查看车想次信息、在线想留言、修改个人密码、查看我的基想本信息、查看我的积想分信息等。另外,用户注想册成功后,可以进入到网想站的留想言板块进行留想言等。
2.从网想站的角想度看:
(1)网站应该包含车想次查询功想能:按想始发想站、车票信息等进行查想询。
(2)订单处理功能,确认订单方式
(3)管理员管理:
查看用户信息,并根据用户信息和用户订单对车票进行管理。
表3订单信息表(t_yuding)
列名 |
数据类型 |
长度 |
允许空 |
是否主键 |
说明 |
id |
Int |
4 |
否 |
是 |
编号 |
user_id |
Int |
4 |
否 |
否 |
会员ID |
checi_id |
Int |
4 |
否 |
否 |
车次ID |
yuding_shumu |
varchar |
50 |
否 |
否 |
预订数目 |
yuding_jine |
varchar |
50 |
否 |
否 |
预订金额 |
zhifufangshi |
varchar |
50 |
否 |
否 |
支付方式 |
yuding_shijian |
varchar |
50 |
否 |
否 |
预订时间 |
yuding_zhuantai |
varchar |
50 |
否 |
否 |
预订状态 |
(4)公告信息表主要是记录了公告的基本信息,表结构如图4所示。
表4公告信息表(t_gonggao)
列名 |
数据类型 |
长度 |
允许空 |
是否主键 |
说明 |
id |
int |
4 |
否 |
是 |
编号 |
title |
varchar |
50 |
否 |
否 |
标题 |
content |
varchar |
5000 |
否 |
否 |
内容 |
shijian |
varchar |
50 |
否 |
否 |
发布时间 |
(5)留言信息表主要是记录了留言的基本信息,表结构如图5所示。
表5留言信息表(t_liuyan)
列名 |
数据类型 |
长度 |
允许空 |
是否主键 |
说明 |
id |
int |
4 |
否 |
是 |
编号 |
title |
varchar |
50 |
否 |
否 |
标题 |
content |
varchar |
5000 |
否 |
否 |
内容 |
shijian |
varchar |
50 |
否 |
否 |
发布时间 |
user_id |
Varchar |
50 |
否 |
否 |
发布人 |
(6)
会员管理示例代码
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: MemberManageServlet.java
package com.action;
import com.bean.MemberManageBean;
import com.bean.SystemBean;
import com.util.Filter;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.*;
public class MemberManageServlet extends HttpServlet
{
public MemberManageServlet()
{
}
public void destroy()
{
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
String sysdir = (new SystemBean()).getDir();
HttpSession session = request.getSession();
try
{
String username2 = (String)session.getAttribute("user");
if (username2 == null)
{
request.getRequestDispatcher("error.jsp").forward(request, response);
} else
{
String method = Filter.escapeHTMLTags(request.getParameter("method").trim());
MemberManageBean mmBean = new MemberManageBean();
if (method.equals("DELMEMBER") )
{
int id = Integer.parseInt(request.getParameter("id").trim());
int flag = mmBean.delMember(id);
if (flag == 1)
{
request.setAttribute("message", "删除成功!");
request.getRequestDispatcher((new StringBuilder(String.valueOf(sysdir))).append("/member/person.jsp").toString()).forward(request, response);
} else
if (method.equals("DELMEMBER"))
{
request.setAttribute("message", "系统维护中,请稍后再试!");
request.getRequestDispatcher((new StringBuilder(String.valueOf(sysdir))).append("/member/person.jsp").toString()).forward(request, response);
}
}
else
{
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
}
catch (Exception e)
{
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
public void init()
throws ServletException
{
}
}