如何在页面上直接调Servlet

huangbang 2004-08-27 03:10:39
我的问题是这样的:在Servlet中从数据库中读取二进制,生成图片,同时要能生成多张然后怎么在<img src="servletname">中显示,还要支持分页,还要问的是同时要配置哪东东才能正常使用这个servlet
...全文
215 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
InnocentBoy 2004-09-01
  • 打赏
  • 举报
回复
gx,gx
huangbang 2004-09-01
  • 打赏
  • 举报
回复
各位谢了,显示我自己已经解决了,但现在新问题出现了,我显示多张是就会死机,我是分页显示,用了一个while,显示十几张图片就死机了
huangbang 2004-09-01
  • 打赏
  • 举报
回复
我又贴了一份贴,代码也在上面,各们帮忙看看,这份一两天就结
http://community.csdn.net/Expert/topic/3330/3330073.xml?temp=.9828913
simon810610 2004-09-01
  • 打赏
  • 举报
回复
楼主可以把代码贴出来分享一下吗?也方便大家一起帮忙诊断。
wenming168 2004-08-31
  • 打赏
  • 举报
回复
package Servlets;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
public class getImage extends HttpServlet
{

private String CONTENT_TYPE = "image/gif";
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
int ID = 0;
ServletOutputStream outt = response.getOutputStream();
try
{
ID = Integer.parseInt(request.getParameter("id"));
//System.out.println(ID);
}
catch (Exception e)
{
response.sendRedirect("../ErroePage.jsp");
return;
}

try
{
byte[] buff = this.getCover(ID);
response.setContentType(CONTENT_TYPE);
outt.flush();
outt.write(buff);
outt.flush();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}

private synchronized byte[] getCover(int ID1)
{
Context ctx=null;
Connection Conn = null;
Statement stmt = null;
ResultSet rs = null;
byte[] buf = null;
try
{
ctx = new InitialContext();
//DataSource ds = (DataSource)ctx.lookup("OracleDS");
DataSource ds = (DataSource)ctx.lookup("SqlServerDs");
Conn = ds.getConnection();
String searchSql="SELECT MIME,NR FROM TEST WHERE ID="+ ID1;
stmt = Conn.createStatement();
rs = stmt.executeQuery(searchSql);
rs.next() ;
CONTENT_TYPE = rs.getString("MIME");
buf = rs.getBytes("NR");
//System.out.println(CONTENT_TYPE);
}
catch(Exception sqle)
{
System.err.println("Error in CoverServlet : getCover()-" + sqle);
sqle.printStackTrace() ;
}
finally
{
try
{
stmt.close() ;
Conn.close() ;
}
catch (Exception e)
{
e.printStackTrace();
}
}
return buf;
}

public void destroy()
{
}
}

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p><img src="../servlet/getImage?id=1" width="103" height="34">
</p>
<p> </p>
<p>  </p>
<form name="form1" method="post" action="../servlet/getImage?id=1">
<table width="95%" border="0">
<tr>
<td>
<input type="text" name="id" value="1">
<input type="submit" name="Submit" value="Submit">
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</form>
</body>
</html>
wenming168 2004-08-31
  • 打赏
  • 举报
回复
你可以做一个SERVLET把数据库中的ID作为参数,取一段数据(图片),然后将这个图片(字节流)放入一个vector内,从vector循环显示出来即可。
huangbang 2004-08-28
  • 打赏
  • 举报
回复
还是不行,不过还是谢谢,同时这样也可以把贴提前,呵呵
laoyuan0032 2004-08-27
  • 打赏
  • 举报
回复
<a href="./servlet">Test</a>
需要在WEB-INFO文件夹里面的 web.xml设定

<web-app>
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>.Servlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>

</web-app>

试一试
pofuwang 2004-08-27
  • 打赏
  • 举报
回复
我们通常用js来调用servlet。
例如function do_Reload(){
var th = document.D10_form ;//form name
th.action="/servlet/*.dc.D20_003301610003Servlet"; //servlet 路径
th.target="_self";
th.submit();
}
不知道合适不合适你的情况
cocohui 2004-08-27
  • 打赏
  • 举报
回复
我感觉不好。。不明白。
jackkui 2004-08-27
  • 打赏
  • 举报
回复
把生成的图片
可以放在sssion中,通过上一页,下一页
添加javascript控制显示那一张。
huangbang 2004-08-27
  • 打赏
  • 举报
回复
没有人知道吗?

高手在哪里?

81,091

社区成员

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

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