【发布时间】:2015-07-23 06:30:25
【问题描述】:
这是我的 servlet,当我尝试在我的 Eclipse 中运行动态 Web 项目时,它会抛出 404 错误,我的 web.xml 配置有什么问题。 web.xml 中的 servlet 类导致各自的 servlet(crtl + 鼠标单击)。我的 web.xml 配置可能有什么问题,请帮助!
package java_barchartservlet;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
//import java_barchart.ImageDemo;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
/**
* Servlet implementation class BarChartExample
*/
public class BarChartExample extends HttpServlet {
private static final long serialVersionUID = 1L;
public void init()
{
//initialize( or add a log statement to debug)
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
/* Step - 1: Define the data for the bar chart */
DefaultCategoryDataset my_bar_chart_dataset = new DefaultCategoryDataset();
my_bar_chart_dataset.addValue(34, "WMOS", "2013");
my_bar_chart_dataset.addValue(45, "DOM", "2013");
my_bar_chart_dataset.addValue(45, "TLM", "2013");
my_bar_chart_dataset.addValue(22, "WMOS", "2014");
my_bar_chart_dataset.addValue(12, "DOM", "2014");
my_bar_chart_dataset.addValue(12, "TLM", "2014");
my_bar_chart_dataset.addValue(56, "WMOS", "2015");
my_bar_chart_dataset.addValue(98, "DOM", "2015");
my_bar_chart_dataset.addValue(98, "TLM", "2015");
/* Step -2:Define the JFreeChart object to create bar chart */
JFreeChart BarChartObject=ChartFactory.createBarChart("productVsYear - Bar Chart","Year","Modifications",my_bar_chart_dataset,PlotOrientation.VERTICAL,true,true,false);
/* Step -3: Write the output as PNG file with bar chart information */
int width=640; /* Width of the image */
int height=480; /* Height of the image */
File BarChart=new File("C:/Users/seramaiah/Pictures/output_chart.png");
ChartUtilities.saveChartAsPNG(BarChart,BarChartObject,width,height);
FileInputStream inputStream = new FileInputStream("C:/Users/seramaiah/Pictures/output_chart.png"); //read the file
response.setHeader("Content-Disposition","attachment; filename=test.txt");
//new ImageDemo("C:/Users/seramaiah/Pictures/output_chart.png");
}
catch (Exception i)
{
System.out.println(i);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>java_barchartservlet.BarChartExample</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
</web-app>
【问题讨论】:
-
您使用哪本书/教程/资源来学习创建 servlet 并在 web.xml 中注册它们?我想就一个严重的指令错误联系作者(当然,如果实际上不是您自己忽略或误读了该资源)。
-
部分不存在于 web.xml 中,该部分用于指定调用已注册 servlet 的路径/模式 -
javatpoint,有什么原因吗?
-
我在 servlet 映射中指定了什么,我的意思是我没有要指定的 url?
-
这个? javatpoint.com/servlet-tutorial 尽管严重过时(我们有十年以来的注释)并且不是官方的(Oracle Java EE 本身也有教程),但看起来还不错。本节讲解 web.xml 注册:javatpoint.com/…你到底怎么不清楚?
标签: java tomcat servlets web.xml