读书人

JSP+SERVLET中使用JFREEREPORT有关问题

发布时间: 2012-03-13 11:21:12 作者: rapoo

JSP+SERVLET中使用JFREEREPORT问题
我的servlet是这样的:
package com.test;

import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.report.JFreeReport;
import org.jfree.report.modules.output.table.base.TableProcessor;
import org.jfree.report.modules.output.table.html.HtmlProcessor;
import org.jfree.report.modules.output.table.html.StreamHtmlFilesystem;
import org.jfree.report.util.Log;

/**
* HtmlExampleServlet演示如何通过HTML表格在Web环境下展示JFreeReport定义的表格
*/
public class HtmlExampleServlet extends HttpServlet {
public void doGet(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException {
doPost(request, response);
}

public void doPost(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException {
TableProcessor worker;
// 设置输出页面的Meta信息
response.setHeader( "Content-Disposition ", "inline; filename=\ " "
+ "unknown.html " + "\ " ");
// 设置页面的输出格式
response.setHeader( "Content-Type ", "text/html ");

try {
// 获取Servlet的输出流
OutputStream out = response.getOutputStream();

// 获取HelloWorld中定义的报表
HelloWorld helloWorld = new HelloWorld();
JFreeReport report = helloWorld.getReport();

// 将报表和Servlet的输出流作为参数传递给TableProcessor的实例
final HtmlProcessor processor = new HtmlProcessor(report);
processor.setFilesystem(new StreamHtmlFilesystem(out));
worker = processor;
} catch (Exception e) {
Log.debug( "无法解析报表定义 ", e);
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
try {
// 输出结果
worker.processReport();

} catch (Exception e) {
Log.debug( "输出结果产生错误 ", e);
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
return;
}
}
}


web.xml是这样的:
<?xml version= "1.0 " encoding= "UTF-8 "?>
<web-app version= "2.4 " xmlns= "http://java.sun.com/xml/ns/j2ee " xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ">
<servlet>
<servlet-name> Rtest </servlet-name>
<servlet-class> com.test.HtmlExampleServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> Rtest </servlet-name>
<url-pattern> /Rtest </url-pattern>
</servlet-mapping>
<session-config>
<session-timeout> 30 </session-timeout>
</session-config>
<welcome-file-list>
<welcome-file> MyJsp.jsp </welcome-file>


</welcome-file-list>
</web-app>


调用的HTML页面:
<html>
<head>
<base href= " <%=basePath%> ">

<title> My JSP 'MyJsp.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>

<body>
<FORM action= "/Rtest " method= "post ">
<INPUT type= "Submit " value= "确认 " />
</FORM>
</body>
</html>

但是在运行的时候就老是出现这样的错误信息:
HTTP Status 404 - /Rtest

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

type Status report

message /Rtest

description The requested resource (/Rtest) is not available.


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

Apache Tomcat/5.5.17

请各位大侠告诉小弟下.谢谢

[解决办法]
找不到serverlet

<FORM action= "Rtest " method= "post ">
<INPUT type= "Submit " value= "确认 " />
</FORM>

去掉/看看

读书人网 >Java Web开发

热点推荐