1.JSP中用到一个数据库连接的javabean,我想在登陆的时候建立一个数据库连接,然后一直保持这个连接,怎么实现?在JSP中调用跟别的JVAVBEAN调用也一样么?
我的session设置成了永不过期(退出系统时销毁),<jsp:useBean>中的scope设置为session,可是退出再进的时候出错提 示对象已被关闭,俺没学过java,希望前辈指点下!
2.如果刷新页面,算不算一个新的session?这个是我照样子画的:
import java.sql.*;
public class DBbean
{
private String dbdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=roomdb";
private String user="sa";
private String password="2150";
Connection conn=null;
public DBbean()
{
try{
Class.forName(dbdriver);
}catch(ClassNotFoundException e)
{
System.out.println("DBconn ():"+e.getMessage());
}
}
public Connection getConn()//返回类型为Connection类对象
{
if(conn!=null)
return conn;
else
try{
conn=DriverManager.getConnection(url,user,password);
System.out.println("Success!!");
}catch(SQLException e) {
System.out.println(e.getMessage());
} return conn;}
我的session设置成了永不过期(退出系统时销毁),<jsp:useBean>中的scope设置为session,可是退出再进的时候出错提 示对象已被关闭,俺没学过java,希望前辈指点下!
2.如果刷新页面,算不算一个新的session?这个是我照样子画的:
import java.sql.*;
public class DBbean
{
private String dbdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=roomdb";
private String user="sa";
private String password="2150";
Connection conn=null;
public DBbean()
{
try{
Class.forName(dbdriver);
}catch(ClassNotFoundException e)
{
System.out.println("DBconn ():"+e.getMessage());
}
}
public Connection getConn()//返回类型为Connection类对象
{
if(conn!=null)
return conn;
else
try{
conn=DriverManager.getConnection(url,user,password);
System.out.println("Success!!");
}catch(SQLException e) {
System.out.println(e.getMessage());
} return conn;}
解决方案 »
- 为什么连接数据库驱动会报错
- hql 用了order by+rownum ORA-00918: 未明确定义列 在线等指教!!!
- java应用程序通过spring访问数据源失败(请大家帮忙指点)
- useBean引用问题
- 急急急!!!做一购物网站,点击商品页时,IE7.0出现“IE无法打开Internet站点,已终止操作,,IE6和IE8就没事”
- 学jsp2个月了.老师要做项目.新闻发布系统.有看过的提供本电子书最好有系统分析的.我还没方向呢..帮忙啊
- 如何把文件夹里的所有文件一个一个的读出来啊,在线等待!!!!!!!
- hibernate add方法
- Date类生成时遇到的问题。
- 如何让servlet 或jsp 和EXCEL 互动!???:)
- HELP ! 用什么方式存储图片?!
- 上传图片到数据库
package DBProcess;
import java.sql.*;
public class DBConn {
Connection conn;
Statement stmt;
ResultSet rs;
public DBConn() {
}
public void getconn()
{
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:NetBar(数据源的名称)");
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
}
public ResultSet execQuery(String SQL)
{
try {
getconn();
stmt = conn.createStatement();
rs = stmt.executeQuery(SQL);
return rs;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
} }
public int execOther(String SQL)
{
try {
getconn();
stmt = conn.createStatement();
int count = stmt.executeUpdate(SQL);
return count;
} catch (SQLException ex) {
ex.printStackTrace();
return 0;
}
finally
{
try {
stmt.close();
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
} public static void main(String[] args) {
DBConn dbconn = new DBConn();
}
}
你用下scope="application"
jsp中可以用application;
servlet可以用 getServletContext().setAttribute(arg0, arg1)
刷新页面时,session还是原来的么?还是新建了一个session?!
你的退出是指什么啊?如果是关闭IE,那肯定SESSION就结束了;如果你只是刷新那就是同一SESSION。
在自己的程序中也可以设置
<session-config>
<session-timeout>10</session-timeout>
</session-config>
这是设置了10分钟
我一般的javaBean都是这么写的:
不知道我理解对不对,见笑!.....import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class DB {
public static ThreadLocal threadLocal = new ThreadLocal();
public static Connection getConn() {
Connection conn = (Connection)threadLocal.get();
if(null == conn) {
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bbs", "root" , "root");
threadLocal.set(conn);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
public static void closeConn() {
Connection conn = (Connection)threadLocal.get();
if(conn != null) {
try {
conn.close();
conn = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void closePrstm(PreparedStatement prstm) {
if(prstm != null) {
try {
prstm.close();
prstm = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public static void closeRs(ResultSet rs) {
if(rs != null) {
try {
rs.close();
rs = null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}