jsp这嬷脆弱?

mengyou 2002-01-31 08:38:37
我写的数据库servlet程序,没用connection pool(不会),新建的连接没有关闭,一直开着,当我在控制台用鼠标乱点几下(如托出几个反白框),程序就停住不动了,浏览器一直不响应我的servlet。为什么?为什么?为什么?
...全文
66 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengyou 2002-02-01
  • 打赏
  • 举报
回复
多谢指点,完全正确,马上结账
alooker 2002-02-01
  • 打赏
  • 举报
回复
to mengyou:
不是Java的问题,而是操作系统的问题。
当你在控制台点击鼠标左键时,控制台会进入“选中”状态(可以在控制台窗口看到窗口标题的变化),此时程序不能向控制台打印信息,如打印则程序将被挂住,此时应在控制台点击鼠标右键(或按键盘),取消“选中”状态,程序将继续运行。
mengyou 2002-01-31
  • 打赏
  • 举报
回复
import java.io.*;
import java.awt.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

import Acme.JPM.Encoders.*;

public class HelloCUUG extends HttpServlet {
private Connection conn;
private Statement stmt;
private ResultSet result;
private Vector ht=new Vector();

public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
ServletOutputStream out=res.getOutputStream();
Frame f=null;
Graphics g=null;
try {
String driverName="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sqlString="SELECT * FROM 最新1时段降雨量表";
String dburl="jdbc:microsoft:sqlserver://192.168.0.101:1433;DatabaseName=skjc";
createConn(driverName,dburl,sqlString);
execQuery();

f=new Frame();
f.addNotify();
Image img=f.createImage(400,400);
g=img.getGraphics();

g.setFont(new Font("serif",Font.ITALIC,32));
g.drawString("你好",10,50);

for (int i=0;i<10;i++)
g.drawLine(0,i*40,400,i*40);

g.setFont(new Font("serif",Font.ITALIC,12));
Enumeration enum=ht.elements();
int j=0,i=0;
while(enum.hasMoreElements()) {

String ss=(String)enum.nextElement();
//g.drawString(ss,10,70+i*15);
if (j%3!=0) g.drawString(ss,10,70+i*15);
else g.drawString(ss,10,70+(++i)*15);
j++;i++;
}

res.setContentType("image/gif");
GifEncoder encoder=new GifEncoder(img,out);
encoder.encode();
if (result!=null) result.close();
if (stmt!=null) stmt.close();
if (conn!=null) conn.close();
}
catch(IOException e) {
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}
finally {
if(g!=null) g.dispose();
if(f!=null) f.removeNotify();
if(ht!=null) ht.removeAllElements();
}
}
private void execQuery() throws SQLException {
ResultSetMetaData resultsMetaData = result.getMetaData();
int cols = resultsMetaData.getColumnCount();

while(result.next()){
for(int i =1;i<=cols;i++){
String strtmp=result.getString(i);
ht.addElement(strtmp);
System.out.println(strtmp);
}
}
}
private void createConn(String driverName,String dbURL,String sqlString) {
try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
conn=DriverManager.getConnection("jdbc:microsoft:sqlserver://192.168.0.101:1433;DatabaseName=skjc","sa","1234");
stmt = conn.createStatement();
result = stmt.executeQuery(sqlString);
}
catch(SQLException e)
{
e.printStackTrace();
}
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
}
}

我用了Acme.JPM.Encoders包,程序可以运行,但是接触控制太台,有问题

nix 2002-01-31
  • 打赏
  • 举报
回复
你的问题怎么怪到jsp头上去了?
chrischen79 2002-01-31
  • 打赏
  • 举报
回复
程序贴出来
还有,你在console操作怎么会影响到servlet?

81,091

社区成员

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

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