J2EE HttpServlet。控制器的动作不起作用

时间:2014-03-26 14:21:13

标签: java http java-ee servlets web-applications

我正在阅读一本教程书,用J2EE开发一个CRUD Web应用程序,现在它开始使用HttServlet。可能是这本书不是很新,或者我真的不知道怎么做。

我有我的控制器类,如下所示:

public class Controller extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {

        RequestDispatcher dispatcher = null;
        Action action = null;

        if (request.getServletPath().equals("/Insert.do")) {

            action = new InsertAction();

        } else if (request.getServletPath().equals("/Delete.do")) {

            action = new DeleteAction();

        .....

        } else {

            action = new FilterShowAction();

        }
        dispatcher = request.getRequestDispatcher(action.execute(request, response));
        dispatcher.forward(request, response);
    }
}

本教程让我为每个不同的CRUD动作,表单和更多东西创建一个新的不同类。

这是Action类:

public abstract class Action {
    public abstract String execute(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException;
}

但是当我输入localhost:8080/myapp/Controller/SomeAction.do时,我收到错误404.只有当我键入localhost:8080/myapp/Controller时,我才会得到其他内容:执行doGet方法中的最后一个else块;无论如何,我得到了NullPointerException

我不知道如何正确地做这件事,而且这本书没有提供更多信息。我无法在其他任何地方找到解决方案。

另外,我没有说明.do扩展名是什么。这本书刚刚提出它并让你将它包含在你的代码中,而不解释它是什么。我也没有在互联网上找到任何信息。

非常感谢任何帮助。

修改

的web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet>
    <servlet-name>Controller</servlet-name>
    <display-name>Controller</display-name>
    <servlet-class>mypackage.Controller</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Controller</servlet-name>
    <url-pattern>Controller</url-pattern>
  </servlet-mapping>
  <error-page>
    <exception-type>java.lang.RuntimeException</exception-type>
    <location>/Error.jsp</location>
  </error-page>
</web-app>

0 个答案:

没有答案