JSP传送动态图片

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
你是否曾经想过从jsp页面(或者servlet)中发送动态产生的图像?这篇技巧告诉你如何做。要运行这里的代码,你需要一个Tomcat或者其他支持JSP 1.1的web服务器。

  当一个web页面带有image/jpeg (或者其他的图像格式)的MIME类型被发送时,你的浏览器将那个返回结果当作一个图像,然后浏览器显示图像,作为页面的一部分或者完全作为图像自身。要为你的jsp页面设置MIME类型,你需要设置页面的contentType属性:
  


  然后你需要创建一个BufferedImage绘制你的动态图像:
  BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);


  创建完一个BufferedImage后,你需要得到图形环境进行绘制,一个Graphics或者Graphics2D对象:


Graphics g = image.getGraphics();
// or
Graphics2d g2d = image.createGraphics();


  从现在起你就可以绘制图像内容了。对图形环境绘制就会画到BufferedImage。最开始这个图像都是黑色的,因此用你希望的背景颜色填充图像是一个不错的主意,然后,当你完成图像的绘制,你需要dispose图形环境:


g.dispose();
// or
g2d.dispose();


  一旦完成图像的绘制,你在response中返回那个图像。你可以使用非标准的com.sun.image.codec.jpeg包中的JPEGImageEncoder类编码图像,或者如果你使用JDK1.4,你可以使用标准的ImageIO类。在使用JPEGImageEncoder时有一个技巧,你必须从ServletResponse取来ServletOutputStream而不能使用隐含的JSP输出变量out。

ServletOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
// or
ImageIO.write(image, "JPEG", out);


  这里有一个从所有的可能方案中(例如g.dispose();或者g2d.dispose();)选取的一个完整的范例.这个例子使用Graphics对象绘制一个随机的多边形,图像通过JPEGImageEncoder绘制,你可以自由设置多边形的顶点数得到更复杂的形状,换言之,有更多顶点和边。


  要运行这个范例,将从""之间的jsp代码放到一个名为image.jsp的文件中,将那个文件放到你的web服务器可以找到的地方,在使用Tomcat的情况下是ROOT目录,启动Tomcat,访问http://localhost:8080/image.jsp


  <%@ page contentType="image/jpeg"
  import="java.awt.*,java.awt.image.*,
  com.sun.image.codec.jpeg.*,java.util.*"
  %>  
  <%
  // Create image
  int width=200, height=200;
  BufferedImage image = new BufferedImage(width,
  height, BufferedImage.TYPE_INT_RGB);
  // Get drawing context  
  Graphics g = image.getGraphics();
  // Fill background
  g.setColor(Color.white);
  g.fillRect(0, 0, width, height);
  // Create random polygon
  Polygon poly = new Polygon();
  Random random = new Random();
  for (int i=0; i < 5; i++) {
  poly.addPoint(random.nextInt(width),
  random.nextInt(height));
  }
  // Fill polygon
  g.setColor(Color.cyan);
  g.fillPolygon(poly);
  // Dispose context
  g.dispose();
  // Send back image
  ServletOutputStream sos = response.getOutputStream();
  JPEGImageEncoder encoder =
  JPEGCodec.createJPEGEncoder(sos);
  encoder.encode(image);
  %>
jsp中给div加背景_大数据从入门到深入:JavaEE 之 动态网页开发基础 JSP的数据交互(2)... 1.6 JSP优化1.6.1 JSP的内置对象 上一个案例中我们虽然实现了页面展示数据库数据的效果,但是很遗憾的是页面由于加入了 Java代码,页面变得异常混乱,那么如果将Java代码和前端页面分开呢?怎么分?一个功能分为两个终端(客户端与服务端)(前端与后端),客户端接收数据 提交给服务服务端处理 然后把结果给客户端展示,这个就是一个完整的请求/响应模式;但是模式是好模式可以分开又面临一... 阅读详情

相关推荐

使用jsp动态生成图片

Java程序本身能够动态生成“图像”,jsp其实就是Java程序,所以也可以动态生成“图像”。动态生成的“图像”往往用在以下两个方面:(1)将“图像”存为文件,(2)直接将“图像”生成image/jpeg这种MIME类型的响应。

JSP技巧:发送动态图像

JSP技巧:发送动态图像你是否曾经想过从jsp页面(或者servlet)中发送动态产生的图像?这篇技巧告诉你如何做。要运行这里的代码,你需要一个Tomcat或者其他支持JSP 1.1的web服务器。  当一个web页面带有image/jpeg (或者其他的图像格式)的MIME类型被发送时,你的浏览器将那个返回结果当作一个图像,然后浏览器显示图像,作为页面的一部分或者完全作为图像自身。要为你的j

cenlop的专栏本 934

jsp连数据库动态显示图片

jsp连数据库动态显示图片 jsp连数据库动态显示图片

JSP实现图片上传

upfile.jsp 文件代码如下: uploadimage.jsp 文件代码如下: My JSP uploadimage.jsp starting page <% SmartUpload sma=new Smar

ttgjz的专栏 8162

如何从JSP页面传送动态图片

要运行本文的代码,你需要一个Tomcat或者其他支持JSP 1.1的Web服务器。         当一个Web页面带有image/jpeg (或者其他的图像格式)的MIME类型被发送时,你的浏览器将那个返回结果当作一个图像,然后浏览器显示图像,作为页面的一部分或者完全作为图像自身。要为你的jsp页面设置MIME类型,你需要设置页面的contentType属性:         然后你需要创建

wangdabin_1216的专栏 749

JSP页面动态图片验证码

      很多新手对图片验证码不是很了解,最近自己也与做这个功能,于是决定把自己的用个代码给大家分享一下,接下来我们就来看看一个实例吧。其中包括jsp实现的动态验证码,以每次请求都随即生成5个数字为例,用法就是在JSP页面中取出该验证码的值,用session保存的,进行判断比较就可以了。工程架构如图: 注意一点,其中commons-lang.jar就本项目需要加入,可能因为不同写法,此包可...

HogwartsRow 295

[转载]JSP技巧:发送动态图像

JSP技巧:发送动态图像当一个web页面带有image/jpeg (或者其他的图像格式)的MIME类型被发送时,你的浏览器将那个返回结果当作一个图像,然后浏览器显示图像,作为页面的一部分或者完全作为图像自身。要 为你的jsp...

congji3817的博客 159

jsp传送动态图片(转)

 你是否曾经想过从jsp页面(或者servlet)中发送动态产生的图像?这篇技巧告诉你如何做。要运行这里的代码,你需要一个Tomcat或者其他支持JSP 1.1的web服务器。   当一个web页面带有image/jpeg ...

cqwf95925的博客 203

jsp传送动态图片(学习笔记)

jsp传送动态图片 --------------------------------------------------------------------------------   你是否曾经想过从jsp页面(或者servlet)中发送动态产生的图像?这篇技巧告诉你如何做。要运行这里的代码,你需要一个Tomcat或者其他支持JSP 1.1的web服务器。    当一个web页面带有ima...

surpass_li 205

使用技巧:JSP中如何发送一个动态图像

这是一个关于jsp的使用技巧:JSP中如何发送一个动态图像

JSP知识点总结

JSP 1.简介 1.JSP JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为 (*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统

553

jsptomcat上运行

【正文】 一、JSP简介 JSP:Java Server Pages。在传统的HTML文件(*htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页。   二、学习重点: JSP语法(脚本、指令、动作)JSP的内置对象创建动态的内容用户会话跟踪   三、使用tomcat软件在本地搭建服务器: Tomcat是Apache组织的

blue_sky_wait_me 1万+

一篇文章学会JSP的基本使用

三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。第一个是算法关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本。

2401_83642079的博客 1046

期末系列之JSP基础

JSP 声明、表达式、脚本小程序; <!-- jsp的声明 --> <%!int sum; String s = "helloWorld";%> <!-- jsp表达式 --> 说点啥:<%=s %> <!-- jsp程序段 --> <% sum = 0; for(int i=1;i<=10;i++){

与望 676

java servlet深入理解_深入理解JSP和Servlet

开始编写比较复杂的jsp啦。全称:javaserver pages在传统的网页HTML文件(.htm,.html)中加入java程序片段(Scriptlet)和jsp标签,就构成了jsp网页。1、因为可以嵌入java代码,由此具备动态特性。java程序段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。2、所有程序操作都是在服务器端执行,网络上传送给客户端的仅是得到...

weixin_34493203的博客 256

CKEditor上传图片

CKEditor作为老牌开源的优秀在线编辑器,一直受到开发者的青睐,由于CKFinder的图片上传和视频上传要收费,所以没有采用其ckfinder搭配使用。这里我们讲解下 ckeditor最新版本4.8的图片上传配置。 https://ckeditor.com/download1.开启图片上传界面文件地址:ckeditor/plugins/image/dialogs/image.js搜索"Uplo...

qq_32445069的博客 4484
上一篇: 编写一个随处可调用的静态日志操作类
下一篇: Java截获标准输出
CD2
CD2
博客等级 码龄23年 7粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值