读书人

jsp动态显示图像,该如何处理

发布时间: 2013-09-11 17:59:59 作者: rapoo

jsp动态显示图像
<%@ page contentType="image/jpeg";pageEncoding="GBK"%>
<%@ page import="java.awt.*" %>
<%@ page import="java.awt.image.*" %>
<%@ page import="java.util.*"%>
<%@ page import="javax.imageio.*" %>

<title>在JSP中动态生成图像</title>
<%!
//产生随机颜色函数
Color getRandColor(int fc,int bc){
Random random = new Random();
if(fc>255) fc=255;
if(bc>255) bc=255;

int red=fc+random.nextInt(bc-fc); //红
int green=fc+random.nextInt(bc-fc); //绿
int blue=fc+random.nextInt(bc-fc); //蓝
return new Color(red,green,blue);
}
%>

<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

//在内存中创建图象
int width=200, height=160;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

//获取图形上下文
Graphics g = image.getGraphics();

//设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//画边框
g.setColor(new Color(0,0,0));
g.drawRect(0,0,width-1,height-1);

//输出文字
g.drawString("**************",50,50);
g.drawString("Hello,BMY!",50,100);


//释放图形环境
g.dispose();

//输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());

%>

代码如上:运行时报错如下,哪位高人给解释一下?
HTTP Status 500 -

--------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: /DynamicPic.jsp(1,1) Unterminated <%@ page tag
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


root cause

org.apache.jasper.JasperException: /DynamicPic.jsp(1,1) Unterminated <%@ page tag
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:130)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:520)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1552)
org.apache.jasper.compiler.Parser.parse(Parser.java:126)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:155)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)


org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:303)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.



[解决办法]
<%@ page contentType="image/jpeg" pageEncoding="GBK"%>
<%@ page import="java.awt.*" %>
<%@ page import="java.awt.image.*" %>
<%@ page import="java.util.*"%>
<%@ page import="javax.imageio.*" %>

<title >在JSP中动态生成图像 </title >
<%!
//产生随机颜色函数
Color getRandColor(int fc,int bc){
Random random = new Random();
if(fc >255) fc=255;
if(bc >255) bc=255;

int red=fc+random.nextInt(bc-fc); //红
int green=fc+random.nextInt(bc-fc); //绿
int blue=fc+random.nextInt(bc-fc); //蓝
return new Color(red,green,blue);
}
%>

<%
//设置页面不缓存
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);

//在内存中创建图象
int width=200, height=160;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);

//获取图形上下文
Graphics g = image.getGraphics();

//设定背景色
g.setColor(getRandColor(200,250));
g.fillRect(0, 0, width, height);

//设定字体
g.setFont(new Font("Times New Roman",Font.PLAIN,18));

//画边框
g.setColor(new Color(0,0,0));
g.drawRect(0,0,width-1,height-1);

//输出文字
g.drawString("**************",50,50);
g.drawString("Hello,BMY!",50,100);


//释放图形环境
g.dispose();

//输出图象到页面
ImageIO.write(image, "JPEG", response.getOutputStream());

%>
[解决办法]
估计是csdn上copy的,因为有过这个经验。

报错了其实自己可以仔细点,Unterminated <%@ page tag ,不懂英语也能猜出7-8分了。
我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html

读书人网 >Java Web开发

热点推荐