【问题标题】:Load on start up throwing 404加载启动时抛出 404
【发布时间】: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


【解决方案1】:

当我尝试在我的 Eclipse 中运行动态 Web 项目时,它会抛出 404错误,我的web.xml配置有什么问题。

当您运行您的网络应用程序时,您的默认页面是什么。您甚至没有指定欢迎文件。当你运行你的应用程序时,你想访问什么?没有 servlet 映射,没有欢迎文件。 404不是很明显吗?

更新你的 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>

       <servlet-mapping>
         <servlet-name>servlet1</servlet-name>
         <url-pattern>/fireServlet</servlet-class>
       <servlet-mapping>


    <welcome-file-list>
       <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>  
    </web-app>

您可以从 index.jsp 发送对您的 servlet 的请求

直接将servlet映射到上下文路径

<?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>

           <servlet-mapping>
             <servlet-name>servlet1</servlet-name>
             <url-pattern>/</servlet-class>
           <servlet-mapping>
       </web-app>

【讨论】:

    猜你喜欢
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    相关资源
    最近更新 更多