404错误。请求的资源不可用

时间:2014-04-02 13:05:45

标签: jsp tomcat7

我是java servlet编程的新手。我安装了tomcat并且它正在运行。但是在调用jsp文件时我收到以下错误

请求的资源不可用。

我将jsp文件保存在路径C:\ apache-tomcat-7.0.52 \ webapps \ Pradeeep_prctice

我正在尝试的网址是:localhost:8080 / Pradeeep_prctice / Helloworld.jsp

我的程序代码是

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorld extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello World!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Hello World!</h1>");
        out.println("</body>");
        out.println("</html>");
    }
}

请找到我的web.xml文件

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>
<servlet>
    <servlet-name>Helloworld</servlet-name>
    <servlet-class>Pradeeep_prctice.Helloworld</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Helloworld</servlet-name>
    <url-pattern>/Helloworld</url-pattern>
  </servlet-mapping>
</web-app>

1 个答案:

答案 0 :(得分:0)

您尚未在部署描述符(web.xml)文件中配置HelloWorld servlet。

部署描述符(web.xml)文件:

  
      
  • Web应用程序的部署描述符描述了应用程序的类,资源和配置以及Web服务器如何使用它们来提供Web请求。当Web服务器收到对应用程序的请求时,它使用部署描述符将请求的URL映射到应该处理请求的代码。

  •   
  • 部署描述符是名为web.xml的文件。它位于WEB-INF/目录下的应用程序WAR中。该文件是一个XML文件,其根元素为<web-app>

  •   
  • web.xml定义URL路径与处理具有这些路径的请求的servlet之间的映射。 Web服务器使用此配置来标识用于处理给定请求的servlet,并调用与请求方法相对应的类方法(例如,HTTP GET请求的doGet()方法)。

  •   
  • 要将URL映射到servlet,请使用<servlet>元素声明servlet,然后使用<servlet-mapping>元素定义从URL路径到servlet声明的映射。

  •   
  • <servlet>元素声明servlet,包括用于通过文件中的其他元素引用servlet的名称,用于servlet的类以及初始化参数。您可以使用具有不同初始化参数的相同类声明多个servlet。每个servlet的名称在部署描述符中必须是唯一的。

  •   

您的文件应为

<web-app xmlns="http://java.sun.com/xml/ns/javaee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
         version="3.0" metadata-complete="true">
  <servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>yourpakage.HelloWorld</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/HelloWorld</url-pattern>
  </servlet-mapping>
</web-app>

参考