J2EE - 动态Web项目 - 无法运行我的helloworld应用程序

时间:2012-09-20 03:31:38

标签: java eclipse servlets

我正在尝试运行一个检查GET值并写入值的servlet。

我的班级:

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class Servlet extends HttpServlet {

        /**
         * 
         */
        public Servlet() {
            // TODO Auto-generated constructor stub
        }

        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            final String myValue = request.getParameter("MyValue");
            if (myValue != null && !myValue.isEmpty()) {
                response.getWriter().write(myValue);
            }
        }

    }

这很简单,对吧?

我已经尝试了很多网址,以便能够看到我的结果,如下所示:

 - http://localhost:8080/Servlet/servlet/Servlet
 - http://localhost:8080/Servlet/servlet/Servlet?MyValue=Test
 - http://127.0.0.1:8080/Servlet/servlet/Servlet
 - http://127.0.0.1:8080/Servlet/servlet/Servlet?MyValue=Test

我的代码有问题或者我的日食有问题吗?

THX

2 个答案:

答案 0 :(得分:2)

您没有告诉任何有关问题症状的信息,但我会假设您在所有尝试中都收到了HTTP 404错误页面,对吗?

您需要在URL模式上映射servlet。首先,您需要确保将servlet类放在一个包中(我们在此答案中假设com.example)。

如果您仍然使用Java EE 5(甚至是J2EE ..),请在webapp的/WEB-INF/web.xml中注册(Eclipse应该自动生成):

<servlet>
    <servlet-name>servlet</servlet-name>
    <servlet-class>com.example.Servlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>servlet</servlet-name>
    <url-pattern>/servlet</url-pattern>
</servlet-mapping>

(servlet名称基本上是实例变量名称there's only one applicationwide; servlet类显然是FQN; URL模式是servlet的webcontent-relative URL)

或者当您已经使用最新的Java EE 6时,请使用@WebServlet对其进行注释,其中您将URL模式指定为值:

package com.example;

// ...

@WebServlet("/servlet")
public class Servlet extends HttpServlet { 
    // ...
}

无论哪种方式,它基本上都告诉servlet应该监听匹配/servlet的webcontent相对URL。因此,假设您的Web上下文根路径为/Servlet,那么应该这样做:

http://localhost:8080/Servlet/servlet

将来,如果通过 New&gt;创建servlet类会更容易。 Servlet 而不是 New&gt;类,然后在向导中自动考虑这一切。

另见:

  • Our Servlets wiki page - 包含一些Hello World示例 - 您可以将鼠标悬停在上方一段时间,直到显示黑色信息框,然后点击 info < / em>链接其中。

答案 1 :(得分:0)

您可以通过在eclipse中右键单击项目找到您的Context Root - &gt;属性 - &gt; Web项目设置。