get方法进行数据解析时if语句不走是手表不走了怎么回事事

shell编程 if语句
编辑:www.fx114.net
本篇文章主要介绍了"shell编程 if语句",主要涉及到shell编程 if语句方面的内容,对于shell编程 if语句感兴趣的同学可以参考一下。
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:[cpp]&静态全局变量有以下特点:该变量在全局数据区分配内存;未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的; 静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。对于一个完整的程序,在内存中的分布情况如下图:代码区全局数据区堆区栈区  一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。细心的读者可能会发现,Example 1中的代码中将[cpp]&改为[cpp]&程序照样正常运行。的确,定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处:&&&&&& 静态全局变量不能被其它文件所用;&&&&&& 其它文件中可以定义相同名字的变量,不会发生冲突;您可以将上述示例代码改为如下:[cpp]&编译并运行这个程序,您就会发现上述代码可以分别通过编译,但运行时出现错误。试着将[cpp]&改为[cpp]&再次编译运行程序,细心体会全局变量和静态全局变量的区别。2、静态局部变量在局部变量前,加上关键字static,该变量就被定义成为一个静态局部变量。我们先举一个静态局部变量的例子,如下:[cpp]&通常,在函数体内定义了一个变量,每当程序运行到该语句时都会给该局部变量分配栈内存。但随着程序退出函数体,系统就会收回栈内存,局部变量也相应失效。  但有时候我们需要在两次调用之间对变量的值进行保存。通常的想法是定义一个全局变量来实现。但这样一来,变量已经不再属于函数本身了,不再仅受函数的控制,给程序的维护带来不便。  静态局部变量正好可以解决这个问题。静态局部变量保存在全局数据区,而不是保存在栈中,每次的值保持到下一次调用,直到下次赋新值。静态局部变量有以下特点:&&&&(1)该变量在全局数据区分配内存;&&& (2)静态局部变量在程序执行到该对象的声明处时被首次初始化,即以后的函数调用不再进行初始化;&&& (3)静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0;&&& (4)它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束;3、静态函数  在函数的返回类型前加上static关键字,函数即被定义为静态函数。静态函数与普通函数不同,它只能在声明它的文件当中可见,不能被其它文件使用。静态函数的例子:[cpp]&定义静态函数的好处:&&&&&& 静态函数不能被其它文件所用;&&&&&& 其它文件中可以定义相同名字的函数,不会发生冲突;二、面向对象的static关键字(类中的static关键字)1、静态数据成员在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。先举一个静态数据成员的例子。[cpp]&可以看出,静态数据成员有以下特点:对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷贝,由该类型的所有对象共享访问。也就是说,静态数据成员是该类的所有对象所共有的。对该类的多个对象来说,静态数据成员只分配一次内存,供所有对象共用。所以,静态数据成员的值对每个对象都是一样的,它的值可以更新;静态数据成员存储在全局数据区。静态数据成员定义时要分配空间,所以不能在类声明中定义。在Example 5中,语句int Myclass::Sum=0;是定义静态数据成员;静态数据成员和普通数据成员一样遵从public,protected,private访问规则;因为静态数据成员在全局数据区分配内存,属于本类的所有对象共享,所以,它不属于特定的类对象,在没有产生类对象时其作用域就可见,即在没有产生类的实例时,我们就可以操作它;静态数据成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式为:<数据类型><类名>::<静态数据成员名>=<值>类的静态数据成员有两种访问形式:<类对象名>.<静态数据成员名> 或 <类类型名>::<静态数据成员名>如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员 ;静态数据成员主要用在各个对象都有相同的某项属性的时候。比如对于一个存款类,每个实例的利息都是相同的。所以,应该把利息设为存款类的静态数据成员。这有两个好处,第一,不管定义多少个存款类对象,利息数据成员都共享分配在全局数据区的内存,所以节省存储空间。第二,一旦利息需要改变时,只要改变一次,则所有存款类对象的利息全改变过来了;同全局变量相比,使用静态数据成员有两个优势:静态数据成员没有进入程序的全局名字空间,因此不存在与程序中其它全局名字冲突的可能性;可以实现信息隐藏。静态数据成员可以是private成员,而全局变量不能;2、静态成员函数  与静态数据成员一样,我们也可以创建一个静态成员函数,它为类的全部服务而不是为某一个类的具体对象服务。静态成员函数与静态数据成员一样,都是类的内部实现,属于类定义的一部分。普通的成员函数一般都隐含了一个this指针,this指针指向类的对象本身,因为普通成员函数总是具体的属于某个类的具体对象的。通常情况下,this是缺省的。如函数fn()实际上是this-&fn()。但是与普通函数相比,静态成员函数由于不是与任何的对象相联系,因此它不具有this指针。从这个意义上讲,它无法访问属于类对象的非静态数据成员,也无法访问非静态成员函数,它只能调用其余的静态成员函数。下面举个静态成员函数的例子。[cpp]&关于静态成员函数,可以总结为以下几点:出现在类体外的函数定义不能指定关键字static;静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访问静态成员函数;非静态成员函数可以任意地访问静态成员函数和静态数据成员;静态成员函数不能访问非静态成员函数和非静态数据成员;由于没有this指针的额外开销,因此静态成员函数与类的全局函数相比速度上会有少许的增长;调用静态成员函数,可以用成员访问操作符(.)和(-&)为一个类的对象或指向类对象的指针调用静态成员函数,也可以直接使用如下格式:<类名>::<静态成员函数名>(<参数表>)调用类的静态成员函数。
本文标题:
本页链接:get方法进行数据解析时if语句不走是怎么回事_百度知道
get方法进行数据解析时if语句不走是怎么回事
什么语言啊?
if语句不执行可能有二种情况吧.第一种,应该是逻辑问题,你应该从代码顺序看看是否逻辑问题第二种,就是你判断的语句有问题,比如用的&===&而不是&==&
其他类似问题
为您推荐:
if语句的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁今天看啥 热点:
Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作,myeclipseservlet
& & & & 此篇文章主要讲述DAO、Java Bean和Servlet实现操作数据库,把链接数据库、数据库操作、前端界面显示分模块化实现。其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面进行描述。参考前文:
& & & &&Java+MyEclipse+Tomcat
(一)配置过程及jsp网站开发入门
& & & &&Java+MyEclipse+Tomcat
(二)配置Servlet及简单实现表单提交
& & & &&Java+MyEclipse+Tomcat
(三)配置MySQL及查询数据显示在JSP网页中
& & & &&Java+MyEclipse+Tomcat
(四)Servlet提交表单和数据库操作
& & & &&Java+MyEclipse+Tomcat (五)DAO和Java Bean实现数据库和界面分开操作
& & & & 免费资源下载地址:
& & & &&http://download.csdn.net/detail/eastmount/8733385
& & & & PS:这篇文章可以认为是对前面五篇文章的一系列总结和应用,同时我认为理解该篇文章基本就能简单实现一个基于数据库操作的JSP网站,对你的课程项目或毕设有所帮助!但同时没有涉及事务、触发器、存储过程、并发处理等数据库知识,也没有Struts、Hibernate、Spring框架知识,它还是属于基础性文章吧!希望对你有所帮助~
一. 项目结构
& & & & 该项目的结构如下图所示:
& & & & 这是典型的DAO模式,其中bean文件夹中TrainManage.java类封装了数据库表TrainManage中的属性和get/set操作;DAO文件夹中TrainManageDAO.java是对类TrainManage(或火车表)的数据库增删改查操作;util中JDBCConnect.java主要是连接数据库MySQL的操作;servlet主要是POST方法请求表单。
二. 数据库初始化操作
& & & & 打开MySQL,输入默认超级root用户的密码,然后数据库的操作如下代码:
--创建数据库
create database ManageT
--使用数据库
use ManageT
--创建表 车次信息管理表 主键:车次
--属性:车次 出发地 目的地 行车时间 硬座票价 软座票价 硬卧票价 软卧票价 车辆路线 
create table TrainManage(
trainid varchar(20) primary key,
start varchar(20),
end varchar(20),
time varchar(20),
yzprice decimal(10,1),
rzprice decimal(10,1),
ywprice decimal(10,1),
rwprice decimal(10,1),
root varchar(200)
--插入数据
insert TrainManage (trainid,start,end,time,yzprice,rzprice,ywprice,rwprice,root)
values (&T87&,&Beijing&,&Guiyang&,&28小时&,&278&,&320&,&464.5&,&550&,
&Beijing Shijiazhuang Guiyang&);
insert TrainManage (trainid,start,end,time,yzprice,rzprice,ywprice,rwprice,root)
values (&T87&,&Guiyang&,&Beijing&,&28小时&,&278&,&320&,&464.5&,&550&,
&Guiyang Shijiazhuang Beijing&);
--查询数据
select * from TrainM
& & & & 注意:上面操作在MySQL黑框中输出增删改查的SQL语言就可以,不要把中文注释也执行。同时设置所有编码方式都统一为utf-8防止乱码,数据库表结构如下图所示:
三. 简单查询操作DAO方法
& & & & 新建Web Project,项目名为“TrainDatabase”,对火车车次数据库的增删改查。
& & & & 运行效果如下图所示:
& & & & 1.在src下新建文件夹util,然后添加类JDBCConnect.java。代码如下:
& & & & 主要是调用getConnection(url, userName, password)方法进行连接数据库操作,数据库的名称为TrainManage,默认的连接对象为root,密码为123456。同时定义两个函数executeUpdate()执行无参数的SQL语句操作和有参数的SQL语句操作。
import java.sql.*;
import com.mysql.jdbc.D
public class JDBCConnect {
//获取默认数据库连接
public static Connection getConnection() throws SQLException {
return getConnection(&ManageTrain&, &root&, &123456&); //数据库名 默认用户 密码
//连接数据库
参数:数据库名 root登录名 密码
public static Connection getConnection(String dbName, String userName,
String password) throws SQLException {
String url = &jdbc:mysql://localhost:3306/& + dbName
+ &?characterEncoding=utf-8&;
//连接MySQL&com.mysql.jdbc.Driver&
DriverManager.registerDriver(new Driver());
return DriverManager.getConnection(url, userName, password);
//设置 PreparedStatement 参数
public static void setParams(PreparedStatement preStmt, Object... params)
throws SQLException {
if (params == null || params.length == 0)
for (int i = 1; i &= params. i++) {
Object param = params[i - 1];
if (param == null) {
preStmt.setNull(i, Types.NULL);
} else if (param instanceof Integer) {
preStmt.setInt(i, (Integer) param);
} else if (param instanceof String) {
preStmt.setString(i, (String) param);
} else if (param instanceof Double) {
preStmt.setDouble(i, (Double) param);
} else if (param instanceof Long) {
preStmt.setDouble(i, (Long) param);
} else if (param instanceof Timestamp) {
preStmt.setTimestamp(i, (Timestamp) param);
} else if (param instanceof Boolean) {
preStmt.setBoolean(i, (Boolean) param);
} else if (param instanceof Date) {
preStmt.setDate(i, (Date) param);
//执行 SQL,返回影响的行数 异常处理
public static int executeUpdate(String sql) throws SQLException {
return executeUpdate(sql, new Object[] {});
//带参数执行SQL,返回影响的行数 异常处理
public static int executeUpdate(String sql, Object... params)
throws SQLException {
Connection conn =
PreparedStatement preStmt =
conn = getConnection();
preStmt = conn.prepareStatement(sql);
setParams(preStmt, params);
return preStmt.executeUpdate(); //执行SQL操作
} finally {
if (preStmt != null)
preStmt.close();
if (conn != null)
conn.close();
& & & &2.在src下新建文件夹bean,然后添加类TrainManage.java。代码如下:
public class TrainManage {
//行车时间
//硬座票价
//软座票价
//硬卧票价
//软卧票价
//车辆路线
public String getTrainid() { }
public String getStart() { }
public String getEnd() { }
public String getTime() { }
public Float getYzprice() { }
public Float getRzprice() { }
public Float getYwprice() { }
public Float getRwprice() { }
public String getRoot() { }
public void setTrainid(String str) { this.trainid = }
public void setStart(String str) { this.start = }
public void setEnd(String str) { this.end = }
public void setTime(String str) { this.time = }
public void setYzprice(Float price) { this.yzprice = }
public void setRzprice(Float price) { this.rzprice = }
public void setYwprice(Float price) { this.ywprice = }
public void setRwprice(Float price) { this.rwprice = }
public void setRoot(String str) { this.root = }
}& & & &&3.在src下新建文件夹DAO,然后添加类StudentDAO.java。代码如下:
& & & & 通常DAO(Data Access Object)数据访问对象是负责与数据库连接,主要功能执行对数据表的CUDR操作(创建、更新、删除、查询)。每个数据表都定义一个DAO接口或类实现,实现对此表的读写操作。换句话说,就是在域名.项目.模块.dao文件夹下创建个DAO类即可。
package DAO;
import java.sql.C
import java.sql.PreparedS
import java.sql.ResultS
import java.sql.S
import java.util.ArrayL
import java.util.L
import bean.TrainM
import util.JDBCC
public class TrainManageDAO {
//插入车次
public static int insert(TrainManage train) throws Exception {
String sql = &INSERT INTO TrainManage (trainid,start,end,time,yzprice,rzprice,ywprice,rwprice,root) & +
&VALUES ('& + train.getTrainid() +&','&+ train.getStart() +&','&+ train.getEnd() +
&','&+ train.getTime() +&','&+ train.getYzprice() +&','&+ train.getRzprice() +
&','&+ train.getYwprice() +&','&+ train.getRwprice() +&','&+ train.getRoot()
+&');&;
System.out.println(sql);
return JDBCConnect.executeUpdate(sql);
* 总是报错
No value specified for parameter 5
* 很多原因是 insert into train (?,?,?) values (?,?,?) 前面不应该是问号
* 但我的怀疑是参数过多使用executeUpdate(sql,?,?,?...)方法是错误
* String sql = &INSERT INTO TrainManage (trainid,start,end,time,yzprice,rzprice,ywprice,rwprice,root) VALUES (?,?,?,?,?,?,?,?,?);&;
* System.out.println(sql);
* return JDBCConnect.executeUpdate(sql, train.getTrainid(), train.getStart(), train.getEnd(),
train.getTime(), train.getYzprice(), train.getRzprice(), train.getYwprice(),
train.getRwprice(), train.getRoot());
//更新车次
public static int update(TrainManage train) throws Exception {
String sql = &UPDATE TrainManage SET start = ?, end = ? WHERE trainid = ? &;
return JDBCConnect.executeUpdate(sql, train.getStart(), train.getEnd(), train.getTrainid());
//删除操作
public static int delete(String id) throws Exception {
String sql = &DELETE FROM TrainManage WHERE trainid = ? &;
return JDBCConnect.executeUpdate(sql, id);
//查找记录 某车次
public static TrainManage find(String id) throws Exception {
String sql = &SELECT * FROM TrainManage WHERE trainid = ? &;
Connection conn =
PreparedStatement preStmt =
ResultSet rs =
//链接数据库执行SQL语句
conn = JDBCConnect.getConnection(); //连接默认数据库
preStmt = conn.prepareStatement(sql);
preStmt.setString(1, id);
rs = preStmt.executeQuery();
//获取查询结果
if (rs.next()) {
TrainManage train = new TrainManage();
train.setTrainid(rs.getString(&trainid&));
train.setStart(rs.getString(&start&));
train.setEnd(rs.getString(&end&));
train.setTime(rs.getString(&time&));
train.setYzprice(rs.getFloat(&yzprice&));
train.setYwprice(rs.getFloat(&ywprice&));
train.setRzprice(rs.getFloat(&rzprice&));
train.setRwprice(rs.getFloat(&rwprice&));
train.setRoot(rs.getString(&root&));
} finally { //依次关闭 记录集 声明 连接对象
if (rs != null)
rs.close();
if (preStmt != null)
preStmt.close();
if (conn != null)
conn.close();
//查找记录 起始站 达到站
public static List&TrainManage& findStartEnd(String start,String end) throws Exception {
List&TrainManage& list = new ArrayList&TrainManage&();
String sql =
Connection conn =
Statement statement =
ResultSet rs =
//判断SQL语句
if(start==&&&&end==&&) {
sql = &SELECT * FROM TrainM&;
} else if(end==&&) {
sql = &SELECT * FROM TrainManage WHERE start = '&+ start + &';&;
} else if(start==&&) {
sql = &SELECT * FROM TrainManage WHERE end = '&+ end + &';&;
sql = &SELECT * FROM TrainManage WHERE start = '&
+ start + &' and end = '&+ end +&';&;
//链接数据库执行SQL语句
conn = JDBCConnect.getConnection(); //连接默认数据库
statement = conn.createStatement();
System.out.println(start+& &+end);
System.out.println(sql);
rs = statement.executeQuery(sql);
//获取查询结果
while(rs.next()) {
TrainManage train = new TrainManage();
train.setTrainid(rs.getString(&trainid&));
train.setStart(rs.getString(&start&));
train.setEnd(rs.getString(&end&));
train.setTime(rs.getString(&time&));
train.setYzprice(rs.getFloat(&yzprice&));
train.setYwprice(rs.getFloat(&ywprice&));
train.setRzprice(rs.getFloat(&rzprice&));
train.setRwprice(rs.getFloat(&rwprice&));
train.setRoot(rs.getString(&root&));
list.add(train);
} catch (Exception e) {
System.out.println(&错误:&+e.getMessage());
finally { //依次关闭 记录集 声明 连接对象
if (rs != null)
rs.close();
if (statement != null)
statement.close();
if (conn != null)
conn.close();
//查询所有车次信息
public static List&TrainManage& listStudents() throws Exception {
List&TrainManage& list = new ArrayList&TrainManage&();
String sql = &SELECT * FROM TrainManage&;
Connection conn =
PreparedStatement preStmt =
ResultSet rs =
conn = JDBCConnect.getConnection();
preStmt = conn.prepareStatement(sql);
rs = preStmt.executeQuery();
while (rs.next()) {
//设置数据库中表参数 否则报错java.sql.SQLException: Column 'id' not found.
TrainManage train = new TrainManage();
train.setTrainid(rs.getString(&trainid&));
train.setStart(rs.getString(&start&));
train.setEnd(rs.getString(&end&));
train.setTime(rs.getString(&time&));
train.setYzprice(rs.getFloat(&yzprice&));
train.setYwprice(rs.getFloat(&ywprice&));
train.setRzprice(rs.getFloat(&rzprice&));
train.setRwprice(rs.getFloat(&rwprice&));
train.setRoot(rs.getString(&root&));
list.add(train);
} finally {
if (rs != null)
rs.close();
if (preStmt != null)
preStmt.close();
if (conn != null)
conn.close();
& & & & 4.在WebRoot文件夹下创建trainManage.jsp文件,页面布局代码如下:
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ taglib uri=&/jsp/jstl/core& prefix=&c& %&
&jsp:directive.page import=&DAO.TrainManageDAO&/&
&jsp:directive.page import=&java.util.List&/&
List trainList = TrainManageDAO.listStudents();
request.setAttribute(&trainList&, trainList);
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&title&火车卡订票系统管理系统&/title&
&div align=&center&&
&div class=&trainCSS&&
&table width=&1024&
height=&150& cellpadding=&0& cellspacing=&0&&
&tr&&td colspan=&2&&
&img src=&./image/logo.jpg& alt=&logo& width=&1024& height=&149&&
&/td&&/tr&
&tr&&td width=&205&
bgcolor=&#b7d7ec&&
&p align=&center&&
&script language=JavaScript&
today=new Date();
function initArray(){
this.length=initArray.arguments.
for(var i=0;i&this.i++)
this[i+1]=initArray.arguments[i];
var d=new initArray(
&星期日&,&星期一&,&星期二&,&星期三&,&星期四&, &星期五&,&星期六&);
document.write(&&font color=##ff0000 style='font-size:12font-family: 宋体'& &,
today.getYear()+1900,&年&,today.getMonth()+1,&月&,today.getDate(),&日
&,d[today.getDay()+1],
&&/font&& );
&td width=&819& bgcolor=&#b7d7ec&&
direction=&left& onmouseover=this.stop() onmouseout=this.start() scrollAmount=3 scrollDelay=100&
&FONT style=&FONT-SIZE: 18px&color=blue&欢迎使用火车票订票系统管理系统 ,如有不足,敬请指导!&/FONT&
&/marquee&
&tr&&td height=&12&&&/td&&/tr&
&div class=&trainCSS&&
&table border=&0& width=&1024& cellpadding=&0& cellspacing=&0&&
&tr&&td width=&130& bgcolor=&#dfeaf1& valign=&top&&
&table width=&100%& cellpadding=&0& cellspacing=&0&
border=&0&&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&& &font size=&3& color=&blue&&管理员:xxx,欢迎您!&/font&&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&td align=&center&&&p&&a href=&trainManage.jsp&&
&img src=&image/ccxxgl-xz.jpg& width=&194& height=&37& border=&0&&&/a&&td& &/td&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&buyManage.jsp&&
&img src=&image/dpgl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&peopleManage.jsp&&
&img src=&image/hygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&serverManage.jsp&&
&img src=&image/spqktj.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&infoManage.jsp&&
&img src=&image/lygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&exitManage.jsp&&
&img src=&image/exit.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&table width=&100%& height=&350& border=&1&
cellpadding=&0& cellspacing=&0&
bgcolor=&#dfeaf1&&
&tr&&TD align=&center& valign=&top& style=&padding-left:20padding-top:10&&
&div align=&left&&当前位置: &a href=&homepage.jsp&&首页&/a& & 车次信息管理&/div&
&br /&&br /&
&form action=&trainManageSelect.jsp& method=&post&&
&!-- html:form为struts --&
出发地: &input type=&text& id=&start& name=&start& style='font-size:18px' width=200/&
到达地: &input type=&text& id=&end& name=&end& style='font-size:18px'/&&br /&&br /&
&input type=&submit& name=&Select& value=&查询车次& style='font-size:18px'/&
  &a href=&trainManageInsert.jsp& style='font-size:20px'&插入车次&/a&
&table border=&2& bordercolor=&#12A0F5&&
&tr align=center&
&td&火车列次&/td&&td&出发地&/td&&td&目的地&/td&&td&行车时间&/td&
&td&硬座票价&/td&&td&软座票价&/td&&td&硬卧票价&/td&&td&软卧票价&/td&
&td&车辆路线&/td&&td&信息操作&/td&
&c:forEach items=&${trainList}& var=&train&&
&tr align=center&
&td&${train.trainid}&/td&
&td&${train.start}&/td&
&td&${train.end}&/td&
&td&${train.time}&/td&
&td&${train.yzprice}&/td&
&td&${train.rzprice}&/td&
&td&${train.ywprice}&/td&
&td&${train.rwprice}&/td&
&A href=&trainManageDetail.jsp?action=see&id=${train.trainid}&&查看&/A&&/td&
&a href=&trainManageUpdate.jsp?action=edit&id=${train.trainid}&&修改&/a&
&a href=&trainManageDelete.jsp?action=del&id=${train.trainid}&
onclick=&return confirm('确定删除?')&&删除&/a&
&/c:forEach&
&br /&&br /&
&/TD&&/tr&
&tr&&td height=&20&&&/td&&/tr&
&div class=&div&&
&!-- 底部版权所有界面 --&
&TABLE class=wrapper border=0 cellSpacing=0 cellPadding=0 width=&100%& align=center&
&TR&&TD style=&LINE-HEIGHT: 100%& align=&center&&
&HR style=&WIDTH: 96%; HEIGHT: 4 COLOR: #02457c&&
&font size=&2&& &SCRIPT language=javascript src=&&&&/SCRIPT&
&!-- target=_blank开启新的网页 --&
&BR&&A href=&aboutme.jsp&&关于我们&/A& | &A href=&wzsm.jsp&
&网站声明&/A& &BR&版权所有& 北京邮电大学 Eastmount
京ICP备号 &/font&
&/TD&&/TR&
&/html&& & & & 5在WebRoot路径下创建image文件夹,并添加jsp中需要使用的图片资源。
& & & & 6.在WebRoot/WEB-INF/lib文件夹中添加mysql-connector-java-5.1.15-bin.jar文件,访问MySQL数据库需要用到。
& & & & 7.右键项目,Run As在Tomcat 7.x下即可运行,效果如前图所示。
& & & & 其中JSP文件与DAO的交互核心代码如下:
&jsp:directive.page import=&DAO.TrainManageDAO&/&
&jsp:directive.page import=&java.util.List&/&
List trainList = TrainManageDAO.listStudents();
request.setAttribute(&trainList&, trainList);
&table border=&2& bordercolor=&#12A0F5&& 
&tr align=center&
&td&火车列次&/td&&td&出发地&/td&&td&目的地&/td&&td&行车时间&/td&
&td&硬座票价&/td&&td&软座票价&/td&&td&硬卧票价&/td&&td&软卧票价&/td&
&td&车辆路线&/td&&td&信息操作&/td&
&c:forEach items=&${trainList}& var=&train&&  
&tr align=center&  
&td&${train.trainid}&/td&  
&td&${train.start}&/td&  
&td&${train.end}&/td&  
&td&${train.time}&/td&  
&td&${train.yzprice}&/td&  
&td&${train.rzprice}&/td&  
&td&${train.ywprice}&/td&  
&td&${train.rwprice}&/td& 
&td&&A href=&trainManageDetail.jsp?action=see&id=${train.trainid}&&查看&/A&&/td& 
&td&  
&a href=&trainManageUpdate.jsp?action=edit&id=${train.trainid}&&修改&/a&  
&a href=&trainManageDelete.jsp?action=del&id=${train.trainid}&   
onclick=&return confirm('确定删除?')&&删除&/a&  
&/td&  
&/tr&  
&/c:forEach&
四. 关键字查询操作
& & & & 关键字查询运行截图如下图所示:
& & & & 该步骤只需要在WebRoot文件夹下创建trainManageSelect.jsp即可,代码如下:
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ taglib uri=&/jsp/jstl/core& prefix=&c& %&
&jsp:directive.page import=&DAO.TrainManageDAO&/&
&jsp:directive.page import=&bean.TrainManage&/&
&jsp:directive.page import=&java.util.List&/&
request.setCharacterEncoding(&UTF-8&);
response.setCharacterEncoding(&UTF-8&);
String mstart = request.getParameter(&start&);
String mend = request.getParameter(&end&);
List&TrainManage& trainList = TrainManageDAO.findStartEnd(mstart,mend);
//List trainList = TrainManageDAO.listStudents();
request.setAttribute(&trainList&, trainList);
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&title&火车卡订票系统管理系统&/title&
&div align=&center&&
&div class=&trainCSS&&
&table width=&1024&
height=&150& cellpadding=&0& cellspacing=&0&&
&tr&&td colspan=&2&&
&img src=&./image/logo.jpg& alt=&logo& width=&1024& height=&149&&
&/td&&/tr&
&tr&&td width=&205&
bgcolor=&#b7d7ec&&
&p align=&center&&
&script language=JavaScript&
today=new Date();
function initArray(){
this.length=initArray.arguments.
for(var i=0;i&this.i++)
this[i+1]=initArray.arguments[i];
var d=new initArray(
&星期日&,&星期一&,&星期二&,&星期三&,&星期四&, &星期五&,&星期六&);
document.write(&&font color=##ff0000 style='font-size:12font-family: 宋体'& &,
today.getYear()+1900,&年&,today.getMonth()+1,&月&,today.getDate(),&日
&,d[today.getDay()+1],
&&/font&& );
&td width=&819& bgcolor=&#b7d7ec&&
direction=&left& onmouseover=this.stop() onmouseout=this.start() scrollAmount=3 scrollDelay=100&
&FONT style=&FONT-SIZE: 18px&color=blue&欢迎使用火车票订票系统管理系统 ,如有不足,敬请指导!&/FONT&
&/marquee&
&tr&&td height=&12&&&/td&&/tr&
&div class=&trainCSS&&
&table border=&0& width=&1024& cellpadding=&0& cellspacing=&0&&
&tr&&td width=&130& bgcolor=&#dfeaf1& valign=&top&&
&table width=&100%& cellpadding=&0& cellspacing=&0&
border=&0&&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&& &font size=&3& color=&blue&&管理员:xxx,欢迎您!&/font&&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&td align=&center&&&p&&a href=&trainManage.jsp&&
&img src=&image/ccxxgl-xz.jpg& width=&194& height=&37& border=&0&&&/a&&td& &/td&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&buyManage.jsp&&
&img src=&image/dpgl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&peopleManage.jsp&&
&img src=&image/hygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&serverManage.jsp&&
&img src=&image/spqktj.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&infoManage.jsp&&
&img src=&image/lygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&exitManage.jsp&&
&img src=&image/exit.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&table width=&100%& height=&350& border=&1&
cellpadding=&0& cellspacing=&0&
bgcolor=&#dfeaf1&&
&tr&&TD align=&center& valign=&top& style=&padding-left:20padding-top:10&&
&div align=&left&&当前位置: &a href=&homepage.jsp&&首页&/a& & 车次信息管理&/div&
&br /&&br /&
&form action=&trainManageSelect.jsp& method=&post&&
&!-- html:form为struts --&
出发地: &input type=&text& id=&start& name=&start& style='font-size:18px' width=200/&
到达地: &input type=&text& id=&end& name=&end& style='font-size:18px'/&&br /&&br /&
&input type=&submit& name=&Select& value=&查询车次& style='font-size:18px'/&
  &a href=&trainManageInsert.jsp& style='font-size:20px'&插入车次&/a&
&table border=&2& bordercolor=&#12A0F5&&
&tr align=center&
&td&火车列次&/td&&td&出发地&/td&&td&目的地&/td&&td&行车时间&/td&
&td&硬座票价&/td&&td&软座票价&/td&&td&硬卧票价&/td&&td&软卧票价&/td&
&td&车辆路线&/td&&td&信息操作&/td&
&c:forEach items=&${trainList}& var=&train&&
&tr align=center&
&td&${train.trainid}&/td&
&td&${train.start}&/td&
&td&${train.end}&/td&
&td&${train.time}&/td&
&td&${train.yzprice}&/td&
&td&${train.rzprice}&/td&
&td&${train.ywprice}&/td&
&td&${train.rwprice}&/td&
&A href=&trainManageDetail.jsp?action=see&id=${train.trainid}&&查看&/A&&/td&
&a href=&trainManageUpdate.jsp?action=edit&id=${train.trainid}&&修改&/a&
&a href=&trainManageDelete.jsp?action=del&id=${train.trainid}&
onclick=&return confirm('确定删除?')&&删除&/a&
&/c:forEach&
&br /&&br /&
&/TD&&/tr&
&tr&&td height=&20&&&/td&&/tr&
&div class=&div&&
&!-- 底部版权所有界面 --&
&TABLE class=wrapper border=0 cellSpacing=0 cellPadding=0 width=&100%& align=center&
&TR&&TD style=&LINE-HEIGHT: 100%& align=&center&&
&HR style=&WIDTH: 96%; HEIGHT: 4 COLOR: #02457c&&
&font size=&2&& &SCRIPT language=javascript src=&&&&/SCRIPT&
&!-- target=_blank开启新的网页 --&
&BR&&A href=&aboutme.jsp&&关于我们&/A& | &A href=&wzsm.jsp&
&网站声明&/A& &BR&版权所有& 北京邮电大学 Eastmount
京ICP备号 &/font&
&/TD&&/TR&
&/html&& & & & 调用的trainManageDAO.java中的函数findStartEnd(String start,String end)如下,它如果不输入则进行所有查找,也支持单方面出发或到达查找:
//查找记录 某车次
public static List&TrainManage& findStartEnd(String start,String end) throws Exception {
List&TrainManage& list = new ArrayList&TrainManage&();
String sql =
Connection conn =
Statement statement =
ResultSet rs =
//判断SQL语句
if(start==&&&&end==&&) {
sql = &SELECT * FROM TrainM&;
} else if(end==&&) {
sql = &SELECT * FROM TrainManage WHERE start = '&+ start + &';&;
} else if(start==&&) {
sql = &SELECT * FROM TrainManage WHERE end = '&+ end + &';&;
sql = &SELECT * FROM TrainManage WHERE start = '&
+ start + &' and end = '&+ end +&';&;
//链接数据库执行SQL语句
conn = JDBCConnect.getConnection(); //连接默认数据库
statement = conn.createStatement();
System.out.println(start+& &+end);
System.out.println(sql);
rs = statement.executeQuery(sql);
//获取查询结果
while(rs.next()) {
TrainManage train = new TrainManage();
train.setTrainid(rs.getString(&trainid&));
train.setStart(rs.getString(&start&));
train.setEnd(rs.getString(&end&));
train.setTime(rs.getString(&time&));
train.setYzprice(rs.getFloat(&yzprice&));
train.setYwprice(rs.getFloat(&ywprice&));
train.setRzprice(rs.getFloat(&rzprice&));
train.setRwprice(rs.getFloat(&rwprice&));
train.setRoot(rs.getString(&root&));
list.add(train);
} catch (Exception e) {
System.out.println(&错误:&+e.getMessage());
finally { //依次关闭 记录集 声明 连接对象
if (rs != null)
rs.close();
if (statement != null)
statement.close();
if (conn != null)
conn.close();
}& & & & 其中核心步骤如下:
& & & & 1.在trainManage.jsp提交POST表单出发地(&input&id=&start&)和到达地(&input&id=&end&),提交给trainManageSelect.jsp;
& & & & 2.在trainManageSelect.jsp中通过获取出发地和到达地,并执行DAO中的TrainManageDAO.java中关键字查找函数:
& & & & String mstart = request.getParameter(&start&);
& & & & String mend = request.getParameter(&end&);
& & & & List&TrainManage& trainList = TrainManageDAO.findStartEnd(mstart,mend);&
& & & & request.setAttribute(&trainList&, trainList);
& & & & 3.在JSP中通过EL循环显示结果如下:
& & & & &c:forEach items=&${trainList}& var=&train&& &
& & & & & & &tr align=center& &
& & & & & & & & &td&${train.trainid}&/td&&
& & & & & & & & &td&${train.start}&/td&
& & & & & & & & &...
& & & & & & &/tr&
& & & & &/c:forEach&
& & & & PS:同时在这过程中你会遇到执行关键字中文查询时显示乱码。
& & & & 在trainManageSelect.java文件中通过函数findStartEnd(start,end)打桩输出提交表单&北京 长沙&如下所示:
& & & &而且我的服务器、MySQL、JSP、URL3306地址中都设置了UTF-8编码方式,最终解决有两个方面:
& & & &第一个方面是在进行SQL查找时,我最初使用的第一种方法核心代码:
String sql = &SELECT * FROM TrainManage WHERE start = ? and end = ? ;&;
Connection conn = JDBCConnect.getConnection(); //连接默认数据库
PreparedStatement preStmt = conn.prepareStatement(sql);
preStmt.setString(1, start);
preStmt.setString(2, end);
ResultSet rs = preStmt.executeQuery();& & & & 但是在查询英文Beijing =& Guizhou 时能正确显示,而中文就没有结果,后改为带引号(&'&+string+&'&)的参数方式,核心代码如下:
String sql = &SELECT * FROM TrainManage WHERE start = '&
+ start + &' and end = '&+ end +&';&;
Connection conn = JDBCConnect.getConnection(); //连接默认数据库
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery(sql);
while(rs.next()){...}& & & & 后来使用该方法仍然存在乱码,但是这次我发现了原因,在form提交表单时采用Get方法就会出现中文乱码,虽然URL中显示的是:
& & & &&http://localhost:8080/TrainDatabase/trainManageSelect.jsp?start=北京&end=长沙&sumbit=提交
& & & & 但是可能URL转String出现乱码的,改为POST即可实现正常查询,显示正常中文。
& & & & 注意:前提是我的所有编码字符集都统一为UTF-8。
五. 插入操作调用Servlet
& & & & 该部分运行截图如下图所示:
& & & & 在src中创建文件夹servlet,同时创建Servlet文件InsertTrainAction.java。
import java.io.IOE
import java.io.PrintW
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import bean.TrainM
import util.JDBCC
import DAO.TrainManageDAO;
public class InsertTrainAction extends HttpServlet {
public InsertTrainAction() {
public void destroy() {
super.destroy(); // Just puts &destroy& string in log
// Put your code here
//The doGet method of the servlet
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(&text/html&);
PrintWriter out = response.getWriter();
out.println(&&!DOCTYPE HTML PUBLIC \&-//W3C//DTD HTML 4.01 Transitional//EN\&&&);
out.println(&&HTML&&);
out.println(&
&HEAD&&TITLE&A Servlet&/TITLE&&/HEAD&&);
out.println(&
out.print(&
This is &);
out.print(this.getClass());
out.println(&, using the GET method&);
out.println(&
&/BODY&&);
out.println(&&/HTML&&);
out.flush();
out.close();
//The doPost method of the servlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding(&UTF-8&); //设置输出编码
request.setCharacterEncoding(&UTF-8&);
//插入数据库
String m_trainid = request.getParameter(&trainid&);
String m_start = request.getParameter(&start&);
String m_end = request.getParameter(&end&);
String m_time = request.getParameter(&time&);
String m_yz = request.getParameter(&yzprice&);
Float m_yzprice = Float.parseFloat(m_yz);
String m_rz = request.getParameter(&rzprice&);
Float m_rzprice = Float.parseFloat(m_rz);
String m_yw = request.getParameter(&ywprice&);
Float m_ywprice = Float.parseFloat(m_yw);
String m_rw = request.getParameter(&rwprice&);
Float m_rwprice = Float.parseFloat(m_rw);
String m_root = request.getParameter(&root&);
TrainManage train = new TrainManage();
train.setTrainid(m_trainid);
train.setStart(m_start);
train.setEnd(m_end);
train.setTime(m_time);
train.setYzprice(m_yzprice);
train.setRzprice(m_rzprice);
train.setYwprice(m_ywprice);
train.setRwprice(m_rwprice);
train.setRoot(m_root);
int success
= TrainManageDAO.insert(train);
request.setAttribute(&success&, success);
//设置全路径 否则trainManage.jsp跳转到servlet/trainManage.jsp路径下不存在
response.sendRedirect(&http://localhost:8080/TrainDatabase/trainManage.jsp&);
} catch(Exception e) {
System.out.println(&错误:&+e.getMessage());
response.sendRedirect(&http://localhost:8080/TrainDatabase/trainManage.jsp&);
public void init() throws ServletException {
// Put your code here
& & & 它会自动配置WebRoot/WEB-INF/web.xml文件中servlet和其映射。同时在WebRoot中添加trainManageInsert.jsp。
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ taglib uri=&/jsp/jstl/core& prefix=&c& %&
&%@ page session = &true& %&
&jsp:directive.page import=&DAO.TrainManageDAO&/&
&jsp:directive.page import=&bean.TrainManage&/&
&jsp:directive.page import=&java.util.List&/&
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&title&火车卡订票系统管理系统&/title&
&div align=&center&&
&div class=&trainCSS&&
&table width=&1024&
height=&150& cellpadding=&0& cellspacing=&0&&
&tr&&td colspan=&2&&
&img src=&./image/logo.jpg& alt=&logo& width=&1024& height=&149&&
&/td&&/tr&
&tr&&td width=&205&
bgcolor=&#b7d7ec&&
&p align=&center&&
&script language=JavaScript&
today=new Date();
function initArray(){
this.length=initArray.arguments.
for(var i=0;i&this.i++)
this[i+1]=initArray.arguments[i];
var d=new initArray(
&星期日&,&星期一&,&星期二&,&星期三&,&星期四&, &星期五&,&星期六&);
document.write(&&font color=##ff0000 style='font-size:12font-family: 宋体'& &,
today.getYear()+1900,&年&,today.getMonth()+1,&月&,today.getDate(),&日
&,d[today.getDay()+1],
&&/font&& );
&td width=&819& bgcolor=&#b7d7ec&&
direction=&left& onmouseover=this.stop() onmouseout=this.start() scrollAmount=3 scrollDelay=100&
&FONT style=&FONT-SIZE: 18px&color=blue&欢迎使用火车票订票系统管理系统 ,如有不足,敬请指导!&/FONT&
&/marquee&
&tr&&td height=&12&&&/td&&/tr&
&div class=&trainCSS&&
&table border=&0& width=&1024& cellpadding=&0& cellspacing=&0&&
&tr&&td width=&130& bgcolor=&#dfeaf1& valign=&top&&
&table width=&100%& cellpadding=&0& cellspacing=&0&
border=&0&&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&& &font size=&3& color=&blue&&管理员:xxx,欢迎您!&/font&&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&td align=&center&&&p&&a href=&trainManage.jsp&&
&img src=&image/ccxxgl-xz.jpg& width=&194& height=&37& border=&0&&&/a&&td& &/td&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&buyManage.jsp&&
&img src=&image/dpgl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&peopleManage.jsp&&
&img src=&image/hygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&serverManage.jsp&&
&img src=&image/spqktj.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&infoManage.jsp&&
&img src=&image/lygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&exitManage.jsp&&
&img src=&image/exit.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&table width=&100%& height=&350& border=&1&
cellpadding=&0& cellspacing=&0&
bgcolor=&#dfeaf1&&
&tr&&TD align=&center& valign=&top& style=&padding-left:20padding-top:10&&
&div align=&left&&当前位置: &a href=&homepage.jsp&&首页&/a& &
&a href=&trainManage.jsp&&车次信息管理&/a& & 插入车次&/div&
&br /&&br /&
&form action=&/TrainDatabase/servlet/InsertTrainAction& method=&post&&
&table border=&1& bordercolor=&#12A0F5& align=center&
&td&火车车次:&/td&&td&&input type=&text& id=&trainid&
name=&trainid& style='font-size:18px' width=200/&&/td&
&td&出发地:&/td&&td&&input type=&text& id=&start&
name=&start& style='font-size:18px' width=200/&&/td&
&td&到达地:&/td&&td&&input type=&text& id=&end&
name=&end& style='font-size:18px'/&&/td&
&td&行车时间:&/td&&td&&input type=&text& id=&time&
name=&time& style='font-size:18px'/&&/td&
&td&硬座票价:&/td&&td&&input type=&text& id=&yzprice&
name=&yzprice& style='font-size:18px'/&&/td&
&td&软座票价:&/td&&td&&input type=&text& id=&rzprice&
name=&rzprice& style='font-size:18px'/&&/td&
&td&硬卧票价:&/td&&td&&input type=&text& id=&ywprice&
name=&ywprice& style='font-size:18px'/&&/td&
&td&软卧票价:&/td&&td&&input type=&text& id=&rwprice&
name=&rwprice& style='font-size:18px'/&&/td&
&td&车辆路线:&/td&&td&
&textarea id=&root& name=&root& rows=&5&
style=&width:300font-size:18px&&&/textarea&
&td colspan=2 align=center&&input type=&submit&
name=&Submit& value=&提交& style='font-size:18px' width=200/&&/td&
&br /&&br /&
&/TD&&/tr&
&tr&&td height=&20&&&/td&&/tr&
&div class=&div&&
&!-- 底部版权所有界面 --&
&TABLE class=wrapper border=0 cellSpacing=0 cellPadding=0 width=&100%& align=center&
&TR&&TD style=&LINE-HEIGHT: 100%& align=&center&&
&HR style=&WIDTH: 96%; HEIGHT: 4 COLOR: #02457c&&
&font size=&2&& &SCRIPT language=javascript src=&&&&/SCRIPT&
&!-- target=_blank开启新的网页 --&
&BR&&A href=&aboutme.jsp&&关于我们&/A& | &A href=&wzsm.jsp&
&网站声明&/A& &BR&版权所有& 北京邮电大学 Eastmount&BR&
京ICP备号 &/font&
&/TD&&/TR&
& & & &&该方法不同于前面的,它是通过Servlet实现的。主要是在采用JSP调用DAO中插入操作总是失败,其流程如下:
& & & & 1.点击&插入车次&通过超链接到trainManageInsert.jsp,然后通过表单POST提交到Java文件servlet;
& & & & &form action=&/TrainDatabase/servlet/InsertTrainAction& method=&post&&
& & & & 2.在InsertTrainAction.java中通过doPost方法获取提交的表单参数,再调用TrainManageDAO.insert(train)插入数据。最后通过response.sendRedirect重定向到管理页面。
& & & &&注意:在插入过程中我也是采用&'&+ name +&'&的方式,而不是?来添加参数,否则总报错,详见代码trainManageDAO.java函数insert(TrainManage train)。
六. 删除操作
& & & & 运行效果如下图所示,点击删除后弹出提示框“确定”后删除:
& & & & 同时在删除后,通过JavaScript实现5秒后返回管理界面的效果。(因为在PHP网站中我常用这个功能,觉得有意思在JSP中就加入了该功能)
& & & & 在WebRoot下创建trainManageDelete.jsp文件实现删除操作,代码如下:&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ taglib uri=&/jsp/jstl/core& prefix=&c& %&
&%@ page session = &true& %&
&jsp:directive.page import=&DAO.TrainManageDAO&/&
&jsp:directive.page import=&bean.TrainManage&/&
&jsp:directive.page import=&java.util.List&/&
String action = request.getParameter(&action&);
String id = request.getParameter(&id&);
if(id == null || id==&&){ out.println(&没有选中删除的车次&);
if(&del&.equals(action)){
int isDelete = TrainManageDAO.delete(id);
request.setAttribute(&isDelete&, isDelete);
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&title&火车卡订票系统管理系统&/title&
&div align=&center&&
&div class=&trainCSS&&
&table width=&1024&
height=&150& cellpadding=&0& cellspacing=&0&&
&tr&&td colspan=&2&&
&img src=&./image/logo.jpg& alt=&logo& width=&1024& height=&149&&
&/td&&/tr&
&tr&&td width=&205&
bgcolor=&#b7d7ec&&
&p align=&center&&
&script language=JavaScript&
today=new Date();
function initArray(){
this.length=initArray.arguments.
for(var i=0;i&this.i++)
this[i+1]=initArray.arguments[i];
var d=new initArray(
&星期日&,&星期一&,&星期二&,&星期三&,&星期四&, &星期五&,&星期六&);
document.write(&&font color=##ff0000 style='font-size:12font-family: 宋体'& &,
today.getYear()+1900,&年&,today.getMonth()+1,&月&,today.getDate(),&日
&,d[today.getDay()+1],
&&/font&& );
&td width=&819& bgcolor=&#b7d7ec&&
direction=&left& onmouseover=this.stop() onmouseout=this.start() scrollAmount=3 scrollDelay=100&
&FONT style=&FONT-SIZE: 18px&color=blue&欢迎使用火车票订票系统管理系统 ,如有不足,敬请指导!&/FONT&
&/marquee&
&tr&&td height=&12&&&/td&&/tr&
&div class=&trainCSS&&
&table border=&0& width=&1024& cellpadding=&0& cellspacing=&0&&
&tr&&td width=&130& bgcolor=&#dfeaf1& valign=&top&&
&table width=&100%& cellpadding=&0& cellspacing=&0&
border=&0&&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&& &font size=&3& color=&blue&&管理员:xxx,欢迎您!&/font&&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&td align=&center&&&p&&a href=&trainManage.jsp&&
&img src=&image/ccxxgl-xz.jpg& width=&194& height=&37& border=&0&&&/a&&td& &/td&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&buyManage.jsp&&
&img src=&image/dpgl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&peopleManage.jsp&&
&img src=&image/hygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&serverManage.jsp&&
&img src=&image/spqktj.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&infoManage.jsp&&
&img src=&image/lygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&exitManage.jsp&&
&img src=&image/exit.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&table width=&100%& height=&350& border=&1&
cellpadding=&0& cellspacing=&0&
bgcolor=&#dfeaf1&&
&tr&&TD align=&center& valign=&top& style=&padding-left:20padding-top:10&&
&div align=&left&&当前位置: &a href=&homepage.jsp&&首页&/a& &
&a href=&trainManage.jsp&&车次信息管理&/a& & 删除车次&/div&
&br /&&br /&
&table border=&2& bordercolor=&#12A0F5& width=&50%& height=&80%&&
&tr align=center&
&H2 style=&COLOR: #880000&&删除成功&/H2&
&H4&管理员
xxx 成功删除该车次信息&br /&系统将在
&input type=&text& style='font-size:18 border:0 width:20'
readonly=&true& value=&5& id=&time&&秒后返回火车票系统管理员车次管理界面
&!-- 时间函数 --&
&script language=&javascript&&
var t = 5;
var time = document.getElementById(&time&);
function fun()
time.value =
location.href=&trainManage.jsp&;
var inter = setInterval(&fun()&,1000);
&br /&&br /&
&/TD&&/tr&
&tr&&td height=&20&&&/td&&/tr&
&div class=&div&&
&!-- 底部版权所有界面 --&
&TABLE class=wrapper border=0 cellSpacing=0 cellPadding=0 width=&100%& align=center&
&TR&&TD style=&LINE-HEIGHT: 100%& align=&center&&
&HR style=&WIDTH: 96%; HEIGHT: 4 COLOR: #02457c&&
&font size=&2&& &SCRIPT language=javascript src=&&&&/SCRIPT&
&!-- target=_blank开启新的网页 --&
&BR&&A href=&aboutme.jsp&&关于我们&/A& | &A href=&wzsm.jsp&
&网站声明&/A& &BR&版权所有& 北京邮电大学 Eastmount
京ICP备号 &/font&
&/TD&&/TR&
&/html&& & & & &删除的核心代码如下:
& & & & 1.在trainManage.jsp中定义删除超链接及提示框:
& & & & &a href=&trainManageDelete.jsp?action=del&id=${train.trainid}& &&
& & & & & & & & onclick=&return confirm('确定删除?')&&删除&/a& &
& & & & 2.在DAO中trainManageDAO.java文件中定义SQL删除操作:
& & & & public static int delete(String id) throws Exception {
& & & & & & & & String sql = &DELETE FROM TrainManage WHERE trainid = ? &;
& & & & & & & & return JDBCConnect.executeUpdate(sql, id);
& & & & 3.在trainManageDelete.jsp中获取传递的trainid(火车车次)值并调用该函数实现删除操作:
& & & & &%
& & & & String action = request.getParameter(&action&);
& & & & String id = request.getParameter(&id&);
& & & & if(id == null || id==&&){out.println(&没有选中删除的车次&);}
& & & & if(&del&.equals(action)){
& & & & & & & & int isDelete = TrainManageDAO.delete(id); &
& & & & & & & & request.setAttribute(&isDelete&, isDelete); &
& & & & %&
七. 更新操作及Servlet
& & & & 具体流程是:首先点击修改,通过超链传递trainid(火车车次)到修改界面,然后通过调用trainManageDAO.java中find查找该车次的所有信息并显示。再通过提交POST及Servlet到UpdateTrainAction.java中,在doPost方法中调用DAO中update(TrainMManage)实现更新。其中运行结果如下图所示:
& & & & 该方法与插入数据的思路类似,都是通过Servlet实现。其中WebRoot文件夹下创建trainManageUpdate.jsp。其中车次是只读的。
&%@ page language=&java& import=&java.util.*& pageEncoding=&UTF-8&%&
&%@ taglib uri=&/jsp/jstl/core& prefix=&c& %&
&%@ page session = &true& %&
&jsp:directive.page import=&DAO.TrainManageDAO&/&
&jsp:directive.page import=&bean.TrainManage&/&
&jsp:directive.page import=&java.util.List&/&
String action = request.getParameter(&action&);
String id = request.getParameter(&id&);
TrainManage train = TrainManageDAO.find(id);
request.setAttribute(&train&, train);
&!DOCTYPE HTML PUBLIC &-//W3C//DTD HTML 4.01 Transitional//EN&&
&title&火车卡订票系统管理系统&/title&
&div align=&center&&
&div class=&trainCSS&&
&table width=&1024&
height=&150& cellpadding=&0& cellspacing=&0&&
&tr&&td colspan=&2&&
&img src=&./image/logo.jpg& alt=&logo& width=&1024& height=&149&&
&/td&&/tr&
&tr&&td width=&205&
bgcolor=&#b7d7ec&&
&p align=&center&&
&script language=JavaScript&
today=new Date();
function initArray(){
this.length=initArray.arguments.
for(var i=0;i&this.i++)
this[i+1]=initArray.arguments[i];
var d=new initArray(
&星期日&,&星期一&,&星期二&,&星期三&,&星期四&, &星期五&,&星期六&);
document.write(&&font color=##ff0000 style='font-size:12font-family: 宋体'& &,
today.getYear()+1900,&年&,today.getMonth()+1,&月&,today.getDate(),&日
&,d[today.getDay()+1],
&&/font&& );
&td width=&819& bgcolor=&#b7d7ec&&
direction=&left& onmouseover=this.stop() onmouseout=this.start() scrollAmount=3 scrollDelay=100&
&FONT style=&FONT-SIZE: 18px&color=blue&欢迎使用火车票订票系统管理系统 ,如有不足,敬请指导!&/FONT&
&/marquee&
&tr&&td height=&12&&&/td&&/tr&
&div class=&trainCSS&&
&table border=&0& width=&1024& cellpadding=&0& cellspacing=&0&&
&tr&&td width=&130& bgcolor=&#dfeaf1& valign=&top&&
&table width=&100%& cellpadding=&0& cellspacing=&0&
border=&0&&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&& &font size=&3& color=&blue&&管理员:xxx,欢迎您!&/font&&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&td align=&center&&&p&&a href=&trainManage.jsp&&
&img src=&image/ccxxgl-xz.jpg& width=&194& height=&37& border=&0&&&/a&&td& &/td&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&buyManage.jsp&&
&img src=&image/dpgl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&peopleManage.jsp&&
&img src=&image/hygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&serverManage.jsp&&
&img src=&image/spqktj.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&infoManage.jsp&&
&img src=&image/lygl.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&tr&&td height=&10&&&/td&&/tr&
&tr&&td align=&center&&&a href=&exitManage.jsp&&
&img src=&image/exit.jpg& width=&194& height=&37& border=&0&&&/a&
&/td&&/tr&
&table width=&100%& height=&350& border=&1&
cellpadding=&0& cellspacing=&0&
bgcolor=&#dfeaf1&&
&tr&&TD align=&center& valign=&top& style=&padding-left:20padding-top:10&&
&div align=&left&&当前位置: &a href=&homepage.jsp&&首页&/a& & &a href=&trainManage.jsp&&车次信息管理&/a& & 插入车次&/div&
&br /&&br /&
&H2 style=&COLOR: #880000&&修改车次信息&/H2&
&form action=&/TrainDatabase/servlet/UpdateTrainAction& method=&post&&
&table border=&1& bordercolor=&#12A0F5& align=center&
&td&火车车次:&/td&&td&&input type=&text& id=&trainid& name=&trainid&
value=${train.trainid} style='font-size:18px' width=200 readonly=&true&&/&&/td&
&td&出发地:&/td&&td&&input type=&text& id=&start& name=&start&
value=${train.start} style='font-size:18px' width=200/&&/td&
&td&到达地:&/td&&td&&input type=&text& id=&end& name=&end&
value=${train.end} style='font-size:18px'/&&/td&
&td&行车时间:&/td&&td&&input type=&text& id=&time& name=&time&
value=${train.time} style='font-size:18px'/&&/td&
&td&硬座票价:&/td&&td&&input type=&text& id=&yzprice& name=&yzprice&
value=${train.yzprice} style='font-size:18px'/&&/td&
&td&软座票价:&/td&&td&&input type=&text& id=&rzprice& name=&rzprice&
value=${train.rzprice} style='font-size:18px'/&&/td&
&td&硬卧票价:&/td&&td&&input type=&text& id=&ywprice& name=&ywprice&
value=${train.ywprice} style='font-size:18px'/&&/td&
&td&软卧票价:&/td&&td&&input type=&text& id=&rwprice& name=&rwprice&
value=${train.rwprice} style='font-size:18px'/&&/td&
&td&车辆路线:&/td&&td&
&textarea id=&root& name=&root& rows=&5&
style=&width:300font-size:18px&&${train.root}&/textarea&
&td colspan=2 align=center&&input type=&submit& name=&Submit&
value=&提交& style='font-size:18px' width=200/&&/td&
&br /&&br /&
&/TD&&/tr&
&tr&&td height=&20&&&/td&&/tr&
&div class=&div&&
&!-- 底部版权所有界面 --&
&TABLE class=wrapper border=0 cellSpacing=0 cellPadding=0 width=&100%& align=center&
&TR&&TD style=&LINE-HEIGHT: 100%& align=&center&&
&HR style=&WIDTH: 96%; HEIGHT: 4 COLOR: #02457c&&
&font size=&2&& &SCRIPT language=javascript src=&&&&/SCRIPT&
&!-- target=_blank开启新的网页 --&
&BR&&A href=&aboutme.jsp&&关于我们&/A& | &A href=&wzsm.jsp&
&网站声明&/A& &BR&版权所有& 北京邮电大学 Eastmount
京ICP备号 &/font&
&/TD&&/TR&
&/html&& & & & 然后再src/servlet中创建Servlet类,即UpdateTrainAction.java文件。代码如下:
import java.io.IOE
import java.io.PrintW
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import DAO.TrainManageDAO;
import bean.TrainM
public class UpdateTrainAction extends HttpServlet {
public UpdateTrainAction() {
public void destroy() {
super.destroy(); // Just puts &destroy& string in log
// Put your code here
//The doGet method of the servlet.
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(&text/html&);
PrintWriter out = response.getWriter();
out.println(&&!DOCTYPE HTML PUBLIC \&-//W3C//DTD HTML 4.01 Transitional//EN\&&&);
out.println(&&HTML&&);
out.println(&
&HEAD&&TITLE&A Servlet&/TITLE&&/HEAD&&);
out.println(&
out.print(&
This is &);
out.print(this.getClass());
out.println(&, using the GET method&);
out.println(&
&/BODY&&);
out.println(&&/HTML&&);
out.flush();
out.close();
//The doPost method of the servlet
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding(&UTF-8&); //设置输出编码
request.setCharacterEncoding(&UTF-8&);
//更新数据库
String m_trainid = request.getParameter(&trainid&);
String m_start = request.getParameter(&start&);
String m_end = request.getParameter(&end&);
String m_time = request.getParameter(&time&);
String m_yz = request.getParameter(&yzprice&);
Float m_yzprice = Float.parseFloat(m_yz);
String m_rz = request.getParameter(&rzprice&);
Float m_rzprice = Float.parseFloat(m_rz);
String m_yw = request.getParameter(&ywprice&);
Float m_ywprice = Float.parseFloat(m_yw);
String m_rw = request.getParameter(&rwprice&);
Float m_rwprice = Float.parseFloat(m_rw);
String m_root = request.getParameter(&root&);
TrainManage train = new TrainManage();
train.setTrainid(m_trainid);
train.setStart(m_start);
train.setEnd(m_end);
train.setTime(m_time);
train.setYzprice(m_yzprice);
train.setRzprice(m_rzprice);
train.setYwprice(m_ywprice);
train.setRwprice(m_rwprice);
train.setRoot(m_root);
int success
= TrainManageDAO.update(train);
request.setAttribute(&success&, success);
//设置全路径 否则trainManage.jsp跳转到servlet/trainManage.jsp路径下不存在
response.sendRedirect(&http://localhost:8080/TrainDatabase/trainManage.jsp&);
} catch(Exception e) {
System.out.println(&错误:&+e.getMessage());
response.sendRedirect(&http://localhost:8080/TrainDatabase/trainManage.jsp&);
public void init() throws ServletException {
// Put your code here
& & & & 你可能发现,update函数只修改了start和end,其它你可以自己添加,方法类似。同时如果参数过多建议使用下面的方法替代:
public static int update(TrainManage train) throws Exception {
* String sql = &UPDATE TrainManage SET start = ?, end = ? WHERE trainid = ? &;
* return JDBCConnect.executeUpdate(sql, train.getStart(), train.getEnd(), train.getTrainid());
String sql = &UPDATE TrainManage SET start = '&+ train.getStart() +
&', end = '& + train.getEnd() + &' WHERE trainid = '& + train.getTrainid() +&';&;
System.out.println(sql);
return JDBCConnect.executeUpdate(sql);
}& & & &还有一个查看详情就不介绍了,参看源代码吧~
& & & & 最后文章就不总结了,因为每步都讲得非常清楚,无论是步骤、思想,还是源代码截图。作者真的很用心的写这篇文章,从晚上8点写到了凌晨5点,中间打了两把dota2。一方面由于我也认为这些都非常重要又基础,另一方面为哪些初学者做Java网站的。
& & & & 最后希望文章对你有所帮助!如果文章有错误或不足之处,还请海涵~真的有点累了睡了。有时候想想值不值得这样写文章,心安虽好但对身体不好。
& & & &&(By:Eastmount
凌晨5点 &&http://blog.csdn.net/eastmount/)
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&
WEB编程教程最近更新

我要回帖

更多关于 月经不走是怎么回事 的文章

 

随机推荐