报错信息如下:
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.creatway.Cnfilter.EncodingFilter.doFilter(EncodingFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
JSP页面如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'sendgoods.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<script type="text/javascript">
function shuliang(){
var one =document.getElementById("a").value;
var two = document.getElementById("b").value;
var san = parseInt(one/two);
document.getElementById("c").value=san;
setTimeout("shuliang()",1);
}
function del(){
if(!confirm("确认填写信息准确并打印?"))
{
event.returnValue = false;
}
}
</script>
<body onload="shuliang()">
<form action="printqrcode.action">
您的包装数量为<input type="text" id="b" name="sendgoodsnum"/> <input type="submit" value="打印二维码" onclick="del()"/><br/>
您实际发的货物数量为<input type="text" id="a" /><br/>
您此次需要打印条码张数为:<input type="text" id="c" onfocus="this.blur()" style="border:0px"/><br/>
</form>
</body>
</html>
Action文件:
package com.creatway.action;import java.io.File;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Random;import com.creatway.creatIcon.ChartGraphics;
import com.creatway.creatQrcode.QRCodeEncoderTest;
import com.creatway.dao.SqlserviceJdbcConnection;
import com.creatway.entity.Goods;
import com.creatway.getdate.Getdate;
import com.creatway.getdate.PrintDate;
import com.lowagie.text.pdf.hyphenation.TernaryTree.Iterator;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;public class PrintQrcodeAction extends ActionSupport {
private String sendgoodsnum;
private String date=null;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
Map<String, Object> session=ActionContext.getContext().getSession();
/*
*
*/
PrintDate getdate=new PrintDate();//获取生成本地时间
Random random=new Random();//产生随机数,用于随即产生二维码图片名称
int i=random.nextInt();
String Filename=null;
/*
* 二维条码规则:存货编码(8位)+批号(8位,格式为“YYMMDD”+2位预留位置,
* 其中批号为当天打印日期)+供应商编码(预留10位)+采购订单号+数量(预留6位),
* 每项内容中间用英文半角点号分隔“.”。
*/
date=getdate.getDate()+"01";
Goods goods=(Goods) session.get("printqrcodegoods"+session.get("num"));
String data=goods.getCinvcode()+"."+date+"."+goods.getCvencode()+"."+goods.getCpoid()+"."+sendgoodsnum;
QRCodeEncoderTest qrt=new QRCodeEncoderTest("D://qrcode"+i+".png", data);
Thread.sleep(1000);//缓冲一下,可以不要!
/*
* ChartGraphics 主要完成对图片文字的输入以及图片的合成
*/
ChartGraphics cg=new ChartGraphics(goods.getCinvcode(),goods.getCinvstd(),goods.getCvencode(),goods.getCpoid(),sendgoodsnum,date,"D://qrcode"+i+".png");
session.put("file", "D:/union.jpg");
File f1=new File("D:\\qrcode"+i+".png");//删掉生成的二维码图片
f1.delete();
return SUCCESS;
}
public String getSendgoodsnum() {
return sendgoodsnum;
}
public void setSendgoodsnum(String sendgoodsnum) {
this.sendgoodsnum = sendgoodsnum;
}
}
Java异常HTMLString图片
严重: Servlet.service() for servlet jsp threw exception
java.lang.IllegalStateException: getOutputStream() has already been called for this response
严重: Servlet.service() for servlet default threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:725)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.creatway.Cnfilter.EncodingFilter.doFilter(EncodingFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
JSP页面如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'sendgoods.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<script type="text/javascript">
function shuliang(){
var one =document.getElementById("a").value;
var two = document.getElementById("b").value;
var san = parseInt(one/two);
document.getElementById("c").value=san;
setTimeout("shuliang()",1);
}
function del(){
if(!confirm("确认填写信息准确并打印?"))
{
event.returnValue = false;
}
}
</script>
<body onload="shuliang()">
<form action="printqrcode.action">
您的包装数量为<input type="text" id="b" name="sendgoodsnum"/> <input type="submit" value="打印二维码" onclick="del()"/><br/>
您实际发的货物数量为<input type="text" id="a" /><br/>
您此次需要打印条码张数为:<input type="text" id="c" onfocus="this.blur()" style="border:0px"/><br/>
</form>
</body>
</html>
Action文件:
package com.creatway.action;import java.io.File;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Random;import com.creatway.creatIcon.ChartGraphics;
import com.creatway.creatQrcode.QRCodeEncoderTest;
import com.creatway.dao.SqlserviceJdbcConnection;
import com.creatway.entity.Goods;
import com.creatway.getdate.Getdate;
import com.creatway.getdate.PrintDate;
import com.lowagie.text.pdf.hyphenation.TernaryTree.Iterator;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;public class PrintQrcodeAction extends ActionSupport {
private String sendgoodsnum;
private String date=null;
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
Map<String, Object> session=ActionContext.getContext().getSession();
/*
*
*/
PrintDate getdate=new PrintDate();//获取生成本地时间
Random random=new Random();//产生随机数,用于随即产生二维码图片名称
int i=random.nextInt();
String Filename=null;
/*
* 二维条码规则:存货编码(8位)+批号(8位,格式为“YYMMDD”+2位预留位置,
* 其中批号为当天打印日期)+供应商编码(预留10位)+采购订单号+数量(预留6位),
* 每项内容中间用英文半角点号分隔“.”。
*/
date=getdate.getDate()+"01";
Goods goods=(Goods) session.get("printqrcodegoods"+session.get("num"));
String data=goods.getCinvcode()+"."+date+"."+goods.getCvencode()+"."+goods.getCpoid()+"."+sendgoodsnum;
QRCodeEncoderTest qrt=new QRCodeEncoderTest("D://qrcode"+i+".png", data);
Thread.sleep(1000);//缓冲一下,可以不要!
/*
* ChartGraphics 主要完成对图片文字的输入以及图片的合成
*/
ChartGraphics cg=new ChartGraphics(goods.getCinvcode(),goods.getCinvstd(),goods.getCvencode(),goods.getCpoid(),sendgoodsnum,date,"D://qrcode"+i+".png");
session.put("file", "D:/union.jpg");
File f1=new File("D:\\qrcode"+i+".png");//删掉生成的二维码图片
f1.delete();
return SUCCESS;
}
public String getSendgoodsnum() {
return sendgoodsnum;
}
public void setSendgoodsnum(String sendgoodsnum) {
this.sendgoodsnum = sendgoodsnum;
}
}
Java异常HTMLString图片
解决方案 »
- 求助jsp高手帮忙解决一下,急用 非常感谢
- 有关PV页面访问的问题
- 求一本设计web的书
- 请问JavaBean与Servlet到底有什么区别?
- 求perpareStatement插入数据的中文乱码问题
- 网页嵌入问题,急
- 今天被菜鸟骂了,说再也不问我问题了,Happy,散一些分~~
- 求救:jbuilder引用javax.print.*出错
- 在学习Struts,但是中间的taglib很头疼,好像没有什么一览性的文档?
- 大家来讨论一下关于jsp中实现翻页显示的最优方法!(在几十万记录时)
- 在线等,使用HttpURLConnection出现java.net.NoRouteToHostException: No route to host
- CXF 服务发布成功,但无法通过发布地址加?wsdl获取wsdl
web.xml中struts配置的后缀是否是.action
<%@ page import="java.io.*,java.util.*;" pageEncoding="UTF-8"%>
<!-- 实现下载某个目录下文件的功能 -->
<%
String downloadFile = (String)session.getAttribute("file");
BufferedInputStream inputstream = new BufferedInputStream(new
FileInputStream(downloadFile));
response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition","attachment; filename="+downloadFile.substring(downloadFile.length()-8,downloadFile.length()));
response.setHeader("Accept-ranges", "bytes");
byte[] b = new byte[100];
int len;
OutputStream outp=response.getOutputStream();
try{
while ( (len = inputstream.read(b)) > 0) {
outp.write(b, 0, len);
}
inputstream.close();
outp.close();}
catch(Exception e){
e.printStackTrace();
outp.close();
}
%>求人帮我看看到底是啥原因啊
在使用完输出流以后调用以下两行代码即可:
out.clear();
out = pageContext.pushBody();