十万火急 !!!servlet调用数据库的内容在jsp页面显示

kared 2013-01-15 01:27:39
我用servlet,用jdbc调用数据库的内容在jsp页面上显示,可是最后jsp页面没用将数据显示出来,下面是我的部分有关代码,急用,希望高手帮下忙!!!


package com.org.vo;

public class AirLine {
private String airID;
private String startCity;
private String endCity;
private String startTime;
private String endTime;
private String price;
private String airType;
public String getAirID() {
return airID;
}
public void setAirID(String airID) {
this.airID = airID;
}
public String getStartCity() {
return startCity;
}
public void setStartCity(String startCity) {
this.startCity = startCity;
}
public String getEndCity() {
return endCity;
}
public void setEndCity(String endCity) {
this.endCity = endCity;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getAirType() {
return airType;
}
public void setAirType(String airType) {
this.airType = airType;
}
}




package com.org.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import com.org.dbc.DatabaseConnection;
import com.org.vo.AirLine;

public class ShowLineDao {
private PreparedStatement pstmt = null;
private ResultSet rs = null;

public void airDelete(String sql) {
try {
new DatabaseConnection().getConnection();
} catch (Exception e) {
e.printStackTrace();
}
try {
int rows = pstmt.executeUpdate(sql);
if (rows >= 1) {
System.out.println("--成功删除--");
} else {
System.out.println("--删除失败--");
}
} catch (Exception e) {
e.printStackTrace();
}
}

public ArrayList<AirLine> getAirLineList(String sql) {
ArrayList<AirLine> list = new ArrayList<AirLine>();
try {
new DatabaseConnection().getConnection();
} catch (Exception e) {
e.printStackTrace();
}
try {
rs = pstmt.executeQuery(sql);
while (rs.next()) {
String airID = rs.getString(1);
String startCity = rs.getString(2);
String endCity = rs.getString(3);
String startTime = rs.getString(4);
String endTime = rs.getString(5);
String price = rs.getString(6);
String airType = rs.getString(7);

AirLine airLine = new AirLine();
airLine.setAirID(airID);
airLine.setStartCity(startCity);
airLine.setEndCity(endCity);
airLine.setStartTime(startTime);
airLine.setEndTime(endTime);
airLine.setPrice(price);
airLine.setAirType(airType);
list.add(airLine);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
}


package com.org.servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.org.dao.ShowLineDao;
import com.org.vo.AirLine;

public class ShowLineServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ShowLineDao showLineDao = new ShowLineDao();
String sql = "select * from airline";
ArrayList<AirLine> list = showLineDao.getAirLineList(sql);
request.setAttribute("list", list);
request.getRequestDispatcher("/showline.jsp").forward(request, response);
}
}


package com.org.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.org.dao.ShowLineDao;

public class DelectAirServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String airID = request.getParameter("airID");
String sql = "delete from airline where airID=' " + airID + "'";
ShowLineDao showLineDao = new ShowLineDao();
showLineDao.airDelete(sql);
request.getRequestDispatcher("showLineServlet").forward(request,
response);
}
}


package com.org.dbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DatabaseConnection {
private static final String DBDRIVER = "org.gjt.mm.mysql.Driver";
private static final String DBURL = "jdbc:mysql://localhost:3306/airticket";
private static final String DBUSER = "root";
private static final String DBPASSWORD = "123456";
private Connection conn = null;

public DatabaseConnection() {
try {
Class.forName(DBDRIVER);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
}

public Connection getConnection() {
return this.conn;
}

public static void close(Connection conn) {
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public static void close(PreparedStatement pstmt) {
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}

public static void close(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}


<%@page import="com.org.vo.AirLine"%>
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>查询预订机票信息</title>
</head>
<%
request.setCharacterEncoding("GBK");
%>
<body>
<center>
<h1>欢迎进入航空售票系统</h1>
<hr>
<table border="1" cellspacing="0" cellpadding="0" width="100%"
style="align:center;">
<tr bgcolor="ff9900" style="font-weight:bold;">
<th>航班编号</th>
<th>航班价格</th>
<th>出发城市</th>
<th>到达城市</th>
<th>出发时间</th>
<th>到达时间</th>
<th>仓位等级</th>
<th width="100" colspan="2">操作</th>
</tr>
<c:forEach items="${list}" var="airLine">
<tr>
<td>${airLine.airID }</td>
<td>${airLine.price }</td>
<td>${airLine.startCity }</td>
<td>${airLine.endCity }</td>
<td>${airLine.startTime }</td>
<td>${airLine.endTime }</td>
<td>${airLine.airType }</td>
<td><a href="deleteAirServlet?airID=${airLine.airID }">删除</a></td>
</tr>
</c:forEach>
</table>
</center>
</body>
</html>

...全文
1373 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lagov 2015-01-05
  • 打赏
  • 举报
回复
说的很清楚,谢谢
cwjwhu 2014-08-04
  • 打赏
  • 举报
回复
解决了吗 我也遇到类似问题
andy_swc 2013-01-16
  • 打赏
  • 举报
回复
看了下 代码没有什么问题 你在你的ShowLineServlet 类中测试一下dopost方法 输出list.size()看看有没有数据 如果有数据 可能是你jsp页面标签有问题
rome_wu 2013-01-15
  • 打赏
  • 举报
回复
引用 7 楼 fjmwish 的回复:
我觉的 是这个样子的,你那个 这不是 用ssh开发 的 那些 并没有 值站 这样一个 容器,你那个用foreach 取值的时候 不对应给是${request.list} 你这样 在 看看 行不行啊。
引用 7 楼 fjmwish 的回复:
我觉的 是这个样子的,你那个 这不是 用ssh开发 的 那些 并没有 值站 这样一个 容器,你那个用foreach 取值的时候 不对应给是${request.list} 你这样 在 看看 行不行啊。
你这个人学框架学懵了,该醒醒了
失落夏天 2013-01-15
  • 打赏
  • 举报
回复
String airID = rs.getString(1); id还是用long型比较合适。 感觉你这工程应该就是拷贝的,然后稍微调试了一下就用了。 要不这种感觉应该不会发生这种失误。
z535389412 2013-01-15
  • 打赏
  • 举报
回复
引用 2 楼 whz137458 的回复:
你好!你的jsp和servlet都没问题,问题在于你的数据库,没查到数据,或者出错.你先判断一下数据有没有连接上,打印一下我找到问题了,你连数据库都没连接 我找到问题了 Java code ? 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748……
+1
rome_wu 2013-01-15
  • 打赏
  • 举报
回复
楼主,跟你说个事吧,教你如何调试,从3个方面 1:servlet,先把连接数据库的dao接口注释,模拟数据,看时候能够正常显示, 2:是数据库,打印数据库的查询信息或者其他信息 3,是页面,页面的就不解释了 还有一种方法就是启动tomcat用debug模式启动,然后在servlet类里打断点,按F5,或者F6下一步,一步步找到问题所在,希望我能帮到你.
rome_wu 2013-01-15
  • 打赏
  • 举报
回复
如果解决了,请将分都给我,谢谢
rome_wu 2013-01-15
  • 打赏
  • 举报
回复
你好!你的jsp和servlet都没问题,问题在于你的数据库,没查到数据,或者出错.你先判断一下数据有没有连接上,打印一下我找到问题了,你连数据库都没连接 我找到问题了

package com.org.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import com.org.dbc.DatabaseConnection;
import com.org.vo.AirLine;

public class ShowLineDao {
	private PreparedStatement pstmt = null;
	private ResultSet rs = null;
	private Connection conn;
	public void airDelete(String sql) {
		try {
			new DatabaseConnection().getConnection();
		} catch (Exception e) {
			e.printStackTrace();
		}
		try {
			int rows = pstmt.executeUpdate(sql);
			if (rows >= 1) {
				System.out.println("--成功删除--");
			} else {
				System.out.println("--删除失败--");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} 
	}

	public ArrayList<AirLine> getAirLineList(String sql) {
		ArrayList<AirLine> list = new ArrayList<AirLine>();
		try {
			conn = new DatabaseConnection().getConnection();//加上conn
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		try {
			pstmt = conn.prepareStatement(sql);//这2行改成这样
			rs = pstmt.executeQuery();//
			while (rs.next()) {
				String airID = rs.getString(1);
				String startCity = rs.getString(2);
				String endCity = rs.getString(3);
				String startTime = rs.getString(4);
				String endTime = rs.getString(5);
				String price = rs.getString(6);
				String airType = rs.getString(7);

				AirLine airLine = new AirLine();
				airLine.setAirID(airID);
				airLine.setStartCity(startCity);
				airLine.setEndCity(endCity);
				airLine.setStartTime(startTime);
				airLine.setEndTime(endTime);
				airLine.setPrice(price);
				airLine.setAirType(airType);
				list.add(airLine);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return list;
	}
}
fjmwish 2013-01-15
  • 打赏
  • 举报
回复
我觉的 是这个样子的,你那个 这不是 用ssh开发 的 那些 并没有 值站 这样一个 容器,你那个用foreach 取值的时候 不对应给是${request.list} 你这样 在 看看 行不行啊。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧