有关servlet的简单问题,送分

mubaosen 2003-10-17 05:10:14
1、servlet容器是不是只实例化一个servlet的实例?如果是这个样子,那么servlet的构造函数和init函数是不是只能执行一次,类级的变量对所有用户来说都是一个值?如果不是这样,那么容器调用此servlet的过程是什么样子的?

2、如是我想在servlet中连接数据库,应该把代码写在何处?如果写在service函数中,那每个用户岂不是都建立了一个连接,开销太大了。如果不写在此处,那应该如何写?

初学,请大侠指点
...全文
39 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mubaosen 2003-10-27
  • 打赏
  • 举报
回复
up
mubaosen 2003-10-25
  • 打赏
  • 举报
回复
up
hajavaor 2003-10-25
  • 打赏
  • 举报
回复
Y
mubaosen 2003-10-25
  • 打赏
  • 举报
回复
我是楼主,我是楼主,我是楼主
我是楼主,我是楼主,我是楼主
我是楼主,我是楼主,我是楼主
我是楼主,我是楼主,我是楼主

这个连接能否在各个servlet中(或其它页面中)共享?
这个连接能否在各个servlet中(或其它页面中)共享?
这个连接能否在各个servlet中(或其它页面中)共享?
caodavid2003 2003-10-20
  • 打赏
  • 举报
回复
搂住不要担心,只要你在使用数据库连接的方法结尾关闭连接就行了,多用户使用也不会出现太多连接的。
final static String DBDriver="oracle.jdbc.driver.OracleDriver";
final static String ConnStr="jdbc:oracle:thin:@192.168.4.141:1521:ordr";
final static String db_User="ordrdba";
final static String db_Password="oracle";

public Connection getConnection(){
Connection con=null;
try{
Class.forName(DBDriver);
con=DriverManager.getConnection(ConnStr,db_User,db_Password);
}
catch(Exception e){
System.out.println("connection db failed: "+e.toString());
}
return con;
}
StevenWSF 2003-10-20
  • 打赏
  • 举报
回复
建议将连接数据库的操作,以及对数据库的其他操作,都封装到BEAN里面,然后用SERVLET调用!
====================================================
楼上的几位,如果每个用户都建立一个连接那成本是不是太大?
=====================================================
你可以使用连接池呀!
如果你要直接连的话,那肯定是每个用户都建立一个连接,否则的话多个用户用一个连接,那数据库不是乱套了
凋零的老树 2003-10-20
  • 打赏
  • 举报
回复
每个用户用完了,马上清除了,也没什么关系
你可以用连接池啊?
mubaosen 2003-10-20
  • 打赏
  • 举报
回复
楼上的几位,如果每个用户都建立一个连接那成本是不是太大?
hbzx 2003-10-18
  • 打赏
  • 举报
回复
jianyi kan kan <scwcd exam study kit>
mubaosen 2003-10-18
  • 打赏
  • 举报
回复
up
lilijr 2003-10-18
  • 打赏
  • 举报
回复
好像是用bean做的

servlet做个control控制页面
fantasyCoder 2003-10-18
  • 打赏
  • 举报
回复
init()只执行一次,相当于java的构造函数!!!
数据库操作放在doGet()里,用doPost调用doGet!!!
不过thinking in java 的作者说他习惯把操作统统放在service方法里!!!
gzqjava 2003-10-18
  • 打赏
  • 举报
回复
package news;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;

public class Message extends HttpServlet
{
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException
{
}

//Process the HTTP Post request
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException
{
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
String driver = "org.gjt.mm.mysql.Driver";
String url = "jdbc:mysql://127.0.0.1:3306/news";
String user = "";
String password = "";

try
{
Class.forName(driver);
}
catch (Exception e)
{
out.println("不能加载驱动程序");
}try
{
Connection con = DriverManager.getConnection(url, user, password);
Statement st = con.createStatement();st.close();
con.close();
}
catch (SQLException e)
{
}
}

//Clean up resources
public void destroy()
{
}
}
ydr2002 2003-10-17
  • 打赏
  • 举报
回复
gz

81,090

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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