急!!!jsp+servlet如何实现一个简单的画图 jsp+servlet如何实现一个简单的画图,画一个圆,或者一个方框等等都行,在servlet实现业务,在jsp实现显示 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道jsp和serlet如何联系起来 可以通过JAVA的图型接口来实现,楼主可以网上找生成验证码图片的代码作参考,祝你好运! 在servlet生成一张图片,然后在jsp 通过<img> 标签的 src="生成图片的servlet地址" 去获取这张图片 我找过了,但是找到的都是在jsp中直接生成图片的,没有在serlet里面生成 也有在servlet里面生成的,JSP里面生成也是一样的呀,你把代码弄过来改一下就OK了! http://hi.baidu.com/kaisep/blog/item/53a67f59635ea62c2934f062.html 自己做的利用servlet生成图形显示在jsp页面上看看吧: - http://edinkysoft.appspot.com/jsp/articles/forumidentifycodes.html 验证码不就是这样做的吗?你去goolge下一个验证码,你知道了。 /** * 生成一张图片以流的形式给 response */ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.setContentType("image/jpeg"); int width = 100, height = 18; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); Random random = new Random(); g.setColor(getRandColor(200, 250)); g.fillRect(1, 1, width - 1, height - 1); g.setColor(new Color(102, 102, 102)); g.drawRect(0, 0, width - 1, height - 1); g.setFont(mFont); g.setColor(getRandColor(160, 200)); for (int i = 0; i < 155; i++) { int x = random.nextInt(width - 1); int y = random.nextInt(height - 1); int xl = random.nextInt(6) + 1; int yl = random.nextInt(12) + 1; g.drawLine(x, y, x + xl, y + yl); } for (int i = 0; i < 70; i++) { int x = random.nextInt(width - 1); int y = random.nextInt(height - 1); int xl = random.nextInt(12) + 1; int yl = random.nextInt(6) + 1; g.drawLine(x, y, x - xl, y - yl); } String sRand = ""; for (int i = 0; i < 6; i++) { String tmp = getRandomChar(); sRand += tmp; g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110))); g.drawString(tmp, 15 * i + 10, 15); } HttpSession session = request.getSession(true); session.setAttribute("rand", sRand); g.dispose(); ImageIO.write(image, "JPEG", response.getOutputStream()); } <img src="u servlet url" />你的servlet url需要在web.xml中配置! 现在我的servlet不仅处理画图的逻辑,还有其它一些数据保存在Attribute里面,在页面上既要显示这些数据,还要显示该图像,此时如果用<img src="u servlet url" />可以吗? 当然可以!....<img 写上url > 他自已会去找pic .!其它的数据你该怎么处理怎么处理! 图片作为一个单独的部份就行了! <img 写上url >中的url指的是什么?servlet吗? 是的.! 你想下 <img 引用图片的时候 如果是物理文件那么也要写上 在服务器上的路径[返回的就是流了] 如果你动态生成的 那么写上servlet url [同样也是返回流]实际上是一回事! 建议楼主找本JSP,Servlet方面的书看看 现在,出现另外一个问题,原来我的servlet是request.getRequestDispatcher("/pages/display.jsp").forward(request,response);返回的,当加上了这个显示页面时,它会跳到另外的页面显示图片了。 我以前做过一个流程图的 也是一样 要数据和图片!你先不要管图片! 去请求数据那个 servlet 返回的页面中引用 <img 就行! 全选的时候取不到所需参数,请教各位 JSP网站开发. 帮我看看jsp这个代码写的对不对 求:基于Struts框架下的JSP最好的分页代码!Orz ****做个带有聊天功能的软件(类似QQ、MSN),大家帮忙测试一下,提点意见****** 开发手机版网页 win7 64位系统找不到Cookie的所在目录,请帮忙,谢谢! 超简单的数据库查询问题. 怪异的中文问题,令我困惑已久,求个帮忙 jsp中,带有"百分号%"的值如何用request.getParameter取得? xml解析 myeclipse用外部tomcat调试看不到页面
我找过了,但是找到的都是在jsp中直接生成图片的,没有在serlet里面生成
看看吧: - http://edinkysoft.appspot.com/jsp/articles/forumidentifycodes.html
/**
* 生成一张图片以流的形式给 response
*/
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg"); int width = 100, height = 18;
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics();
Random random = new Random();
g.setColor(getRandColor(200, 250));
g.fillRect(1, 1, width - 1, height - 1);
g.setColor(new Color(102, 102, 102));
g.drawRect(0, 0, width - 1, height - 1);
g.setFont(mFont); g.setColor(getRandColor(160, 200));
for (int i = 0; i < 155; i++) {
int x = random.nextInt(width - 1);
int y = random.nextInt(height - 1);
int xl = random.nextInt(6) + 1;
int yl = random.nextInt(12) + 1;
g.drawLine(x, y, x + xl, y + yl);
}
for (int i = 0; i < 70; i++) {
int x = random.nextInt(width - 1);
int y = random.nextInt(height - 1);
int xl = random.nextInt(12) + 1;
int yl = random.nextInt(6) + 1;
g.drawLine(x, y, x - xl, y - yl);
} String sRand = "";
for (int i = 0; i < 6; i++) {
String tmp = getRandomChar();
sRand += tmp;
g.setColor(new Color(20 + random.nextInt(110), 20 + random
.nextInt(110), 20 + random.nextInt(110)));
g.drawString(tmp, 15 * i + 10, 15);
} HttpSession session = request.getSession(true);
session.setAttribute("rand", sRand);
g.dispose();
ImageIO.write(image, "JPEG", response.getOutputStream());
}
你的servlet url需要在web.xml中配置!
如果你动态生成的 那么写上servlet url [同样也是返回流]实际上是一回事!
当加上了这个显示页面时,它会跳到另外的页面显示图片了。
你先不要管图片! 去请求数据那个 servlet 返回的页面中引用 <img 就行!