404错误servlet jsp

时间:2014-01-13 11:03:34

标签: jsp servlets http-status-code-404 web.xml

我目前正在使用eclipse开发一个简单的Web App项目。

我使用centos server和apache-tomcat-7.0.47。

我有一个 index.jsp 文件:

<form action="MyServlet">
   <input type="submit" value="Send" />
</form>

我的servlet文件 MyServlet.java

package com.srk.pkg;

import java.io.IOException;
import java.io.PrintWriter; 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
  * Servlet implementation class MyServlet
*/
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

    /**
      * @see HttpServlet#HttpServlet()
    */
    public MyServlet() {
       super();
    }

   /**
       * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out = response.getWriter();
        out.print("Hello Everybody..");
   }

   /**
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
   }
}

和我的 web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns="http://java.sun.com/xml/ns/javaee"  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>Example1</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>MyServlet</display-name>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>com.srk.pkg.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
  </servlet-mapping>
</web-app>  

我遇到的问题是:

我从eclipse运行web应用程序,一切正常。

 http://localhost:8080/Example1/index.jsp

 http://localhost:8080/Example1/MyServlet?

但是当我尝试从我的centos服务器访问它时,我得到了一个

HTTP Status 404 - /Example1/WebContent/MyServlet

输入状态报告

message /Example1/WebContent/MyServlet

说明请求的资源不可用。

任何人都可以帮助我吗?

我使用的链接:

.....:8080/Example1/WebContent/index.jsp

....:8080/Example1/WebContent/MyServlet?

Package explorer

1 个答案:

答案 0 :(得分:0)

您为什么要尝试访问

/Example1/WebContent/MyServlet

项目中WebContent目录中的所有内容最终都位于生成的war文件的根目录下。 WEB-INF以外的所有内容都可以访问,因此您可以

/Example1/index.jsp

否则,您必须通过Servlet。您没有匹配

的网址映射
/Example1/WebContent/MyServlet

因此给你一个404.

你有

的网址映射
<servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/MyServlet</url-pattern>
</servlet-mapping>

您可以访问

/Example1/MyServlet

请注意,在浏览器中提交此表单

<form action="MyServlet">
   <input type="submit" value="Send" />
</form>

取决于您当前的网址。如果您之前已提出要求

/Example1/index.jsp

然后提交表单会将请求发送到

/Example1/MyServlet

如果你在

/Example1/some/random/path

然后提交将请求发送到

/Example1/some/random/MyServlet

如果您想让您的请求始终转到相同的网址,您应该将路径设为绝对

<form action="${pageContext.request.contextPath}/MyServlet">
   <input type="submit" value="Send" />
</form>