站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2EE 专题谁能教教我,如何写个简单的serlvet读确数据库的内容,然后用jsp显示出来!!!

谁能教教我,如何写个简单的serlvet读确数据库的内容,然后用jsp显示出来!!!

摘要: 谁能教教我,如何写个简单的serlvet读确数据库的内容,然后用jsp显示出来!!!


用servlet读取数据库中的数据,得出的数据用jsp显示出来,新手问题,谢谢指教


推荐你本书《精通jsp》


呵呵


谢谢,其实我主要是不知道如何在jsp中调用servlet的对象,教教我大概其思路也可以


你在servlet里通过session set一个对象。。。然后在jsp页面得到这个对象把它显示出来就可以了


努力


我在servlet中定义了个容器,存储数据库中的数据,如何用getAttribute方法把容器中的数据读出来啊,最好能贴个代码给我看看



在SERVLET中用RequestDispatcher
Response.sendRedirt("你的JSP的URL");
这样就能转向到你想要的 JSP 了
内容也能转过去

读数据库的话就好办了,有很多文章的

用Collection col = new ArrayList();
来装你查到的数据
再用上面的方法传过去就行了


书的话,电子工业出版社的《JSP开发祥解》就不错的


form提交到servlet,servlet调用java的方法获取数据,然后转到jsp页面,显示数据。

这是基本的,当然想深入了解,还是看看书比较好。




package db;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
* Desc:JDBC的封装,增加单例模式
* @author weiming
* @version 1.0
* 2006-9-24
*/
public class DBManager {
/**
* 驱动程序
*/
private String driver;

/**
* url
*/
private String url;

/**
* 数据库用户名称
*/
private String userName;

/**
* 用户密码
*/
private String password;

/**
* 数据库连接对象
*/
private Connection con;

/**
* DBManager对象
*/
private static DBManager dbManager = null;

/**
* 获得DBManager对象的实例
* @return DBManager对象的实例
* @throws Exception
*/
public static DBManager getInstance() throws Exception {
if (dbManager == null) {
dbManager = new DBManager();
}
return dbManager;
}

/**
* 私有构造函数,防止随意产生DBManager对象的实例
*/
private DBManager() throws Exception { //在构造函数中,如果出错,只能用丢出异常
init();
try {
Class.forName(driver);
} catch (Exception e) {
e.printStackTrace();
throw new Exception("加载驱动程序错误!");
}
}

/**
* 获取数据库连接对象
* @return 数据库连接对象
* @throws Exception
*/
public Connection getConnection() throws Exception {
try {
// 获取数据库连接,并保存
con = DriverManager.getConnection(url, userName, password);
} catch (SQLException se) {
se.printStackTrace();
throw new Exception("创建数据库连接错误!");
}
return con;
}

/**
* 获取数据库连接对象(使用事务)
* @return 数据库连接对象
* @throws Exception
*/
public Connection getConnectionWithTrans() throws Exception {
try {
// 获取数据库连接,并保存
con = DriverManager.getConnection(url, userName, password);
con.setAutoCommit(false);
} catch (SQLException se) {
se.printStackTrace();
throw new Exception("创建数据库连接错误!");
}
return con;
}

/**
* 关闭所有资源
* @param result 结果集
* @param stmt 语句对象
* @throws Exception
*/
public void closeAll(ResultSet result, Statement stmt) throws Exception {
closeResultSet(result);
closeStatement(stmt);
closeConnection();
}

/**
* 关闭数据库连接
* @throws Exception
*/
private void closeConnection() throws Exception {
try {
if (con != null && !con.isClosed()) {
con.close();
}
} catch (SQLException se) {
throw new Exception("关闭连接失败!");
}
}

/**
* 关闭结果集
* @param result 结果集
* @throws Exception
*/
private void closeResultSet(ResultSet result) throws Exception {
try {
if (result != null) {
result.close();
}
} catch (SQLException se) {
throw new Exception("关闭结果集失败!");
}
}

/**
* 关闭语句对象
* @param stmt 语句对象
* @throws Exception
*/
private void closeStatement(Statement stmt) throws Exception {
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException se) {
throw new Exception("关闭语句对象失败!");
}
}

/**
* 从配置文件中初始化数据库连接所需的参数
* @throws IOException
* @throws FileNotFoundException
*/
private void init() throws Exception {
Properties pro = new Properties();
try {
pro.load(new FileInputStream("DBConfig.properties"));
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new Exception("配置文件未找到!");
} catch (IOException e) {
e.printStackTrace();
throw new Exception("读取配置文件出错!");
}
driver = pro.getProperty("driver");
url = pro.getProperty("url");
userName = pro.getProperty("username");
password = pro.getProperty("password");
}

/**
* 测试函数
* @param args
*/
public static void main(String[] args){
try {
DBManager dbManager = DBManager.getInstance();
Connection conn = dbManager.getConnection();
///Statement sta = conn.createStatement();
PreparedStatement psta = conn.prepareStatement("select * from student");
ResultSet rs = psta.executeQuery();
while(rs.next()){
System.out.println(rs.getString(2));
}
dbManager.closeAll(rs, psta);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}
}



UP.COM


这个还可以实现分页显示!

<%@ page contentType="text/html;charset=8859_1" %>
<%
//变量声明
java.sql.Connection sqlCon; //数据库连接对象
java.sql.Statement sqlStmt; //SQL语句对象
java.sql.ResultSet sqlRst; //结果集对象

java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句

int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage; //待显示页码
java.lang.String strPage;

int i;

//设置一页显示的记录数
intPageSize = 2;

//取得待显示页码
strPage = request.getParameter("page");
if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
}
else{//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if(intPage<1) intPage = 1;
}

//装载JDBC驱动程序
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

//设置数据库连接字符串
strCon = "jdbc:oracle:thin:@linux:1521:ora4cweb";

//连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon,"hzq","hzq");

//创建一个可以滚动的只读的SQL语句对象
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENS99vIVE,java.sql.ResultSet.CONCUR_READ_ONLY);

//准备SQL语句
strSQL = "select name,age from test";

//执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL);

//获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow();

//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;

//调整待显示的页码
if(intPage>intPageCount) intPage = intPageCount;
%>


<head>

JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle
</head>

<body>

<table border="1" cellspacing="0" cellpadding="0">
<tr>
<th>姓名</th>
<th>年龄</th>
</tr>

<%
if(intPageCount>0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1);

//显示数据
i = 0;
while(i%>
<tr>
<td><%=sqlRst.getString(1)%></td>
<td><%=sqlRst.getString(2)%></td>
</tr>
<%
sqlRst.next();
i++;
}
}
%>



</table>

第<%=intPage%>页 共<%=intPageCount%>页 <%if(intPage下一页<%}%> <%if(intPage>1){%>">上一页<%}%>

</body>


<%
//关闭结果集
sqlRst.close();

//关闭SQL语句对象
sqlStmt.close();

//关闭数据库
sqlCon.close();
%>



楼主之前取出来的肯定是null吧!


//先建一个类
package mydb;
import java.sql.*;
public class DBmanager {
private Connection conn;
private Statement stm;
private ResultSet rs;
public void openConn()
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//stundent为数据库(我这个是sql server 2000中的pubs数据库)
conn = DriverManager.getConnection("jdbc:odbc:student");
stm = conn.createStatement();
} catch (Exception ex) {}
}
public void closeConn()
{
try {
if (rs != null) {
rs.close();
}
if (stm != null) {
stm.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException ex) {
}
}
public ResultSet getQuery(String sql)
{

try {
rs = stm.executeQuery(sql);
return rs;
} catch (SQLException ex) {
return null;
}
}
public boolean doUpdate(String sql)
{
boolean type=false;
try {
stm.executeUpdate(sql);
type = true;
} catch (SQLException ex) {
}
return type;
}
public DBmanager() {
}
}



再建一个jsp
<%@ page contentType="text/html; charset=GBK" %>


↑返回目录
前一篇: 求助:jBuilder2006 编译出错:org.apache.jasper.servlet.JspServlet
后一篇: 2.0无状态会话bean到底和有状态的有什么区别?