2014-04-05 37 views
1

我提出這個新的servlet的servlet:如何使和運行與Eclipse開普勒和Apache 7

package Servlets; 

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 Hello 
*/ 
public class Hello extends HttpServlet 
{ 
    private static final long serialVersionUID = 1L; 

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

    /** 
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     response.setContentType("text/html"); 

     PrintWriter out = response.getWriter(); 
     out.println("It works"); 
     out.close(); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
    { 
     doGet(request, response); 
    } 

} 

,這是我在web.xml WEB-INF

<?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_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>FirstServlet</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> 
     <servlet-name>Hello</servlet-name> 
     <servlet-class>Hello</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>Hello</servlet-name> 
     <url-pattern>/hello</url-pattern> 
    </servlet-mapping> 
</web-app> 

顯示名稱當我創建Dynamic web項目時會自動生成welcome-file-list標籤。 servlet和servlet映射是由我編寫的。當我用appache 7運行這個項目時,它說HTTP Status 404 -/FirstServlet /。我的錯誤在哪裏?

+0

你的servlet位於/ FirstServlet /你好 – Hannes

+0

是的,你是正確的,它運行的包,但只有當我運行在java文件,但如果我運行整個項目,它會給出同樣的錯誤。 – user3430773

回答

2

1)您可能缺少您列出的所有歡迎文件。一個404是什麼時候應該發生什麼都不存在。

2)您的servlet映射已損壞。 servlet-class元素需要一個完全合格的類名,該名稱爲Servlets.Hello,而不僅僅是Hello。如果映射正確,/FirstServlet/hello將訪問您的servlet,匹配映射的URI,然後按名稱查找註冊的servlet,最後找到應執行的完全限定類。

+0

好的我已經從web.xml中刪除了display-name和welcome-file-list,也用Servlets.Hello改變了類的元素,現在如果我運行的項目是「HTTP Status 404 -/FirstServlet /」,如果我運行它的工作的Java文件。我想在運行該項目時運行它。 – user3430773

+0

@ user3430773您是否嘗試過我對您的評論以及@nitind的第2條評論? – Hannes