1

ServletURL アドレスを使用して を呼び出しています。これは私が入力している URL です

http://localhost:7001/ryan/olympics?action=selectCatalog&id=1

これは確かにサーブレットの URL です。取得したアドレスを変更すると

page not found

これはサーブレットのコードです。

public class Servlet extends javax.servlet.http.HttpServlet
        implements javax.servlet.Servlet {

private static final long serialVersionUID = 1L;

public Servlet() {
    super();
}

public void init(ServletConfig config) throws ServletException {
    System.out.println("*** initializing controller servlet.");
    super.init(config);
}

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


String action = request.getParameter("action");



if (action.equals("selectCatalog")) {
      String categoryId = request.getParameter("id");

      ProductModelDAO dao4 = new ProductModelDAOImpl("jpac");
      if (categoryId != null && !categoryId.trim().equals("")) {
          CategoryDAO dao1 = new CategoryDAOImpl("jpac");

    try {
        Category category = dao1.getCategoryName(categoryId);
        request.setAttribute("category", category);
        } catch (Exception e) {
        e.printStackTrace();
        }
    }

    try {
        @SuppressWarnings("unchecked")
        List<Product> products = dao4
            .getProductsByCategory(categoryId);
        request.setAttribute("products", products);
    } catch (Exception e) {
        e.printStackTrace();
    }

    url = "SelectCatalog.jsp";

 RequestDispatcher requestDispatcher =
  getServletContext().getRequestDispatcher(url);
requestDispatcher.forward(request, response);

NullPointerExceptionの行へのポイントを取得しRequestDispatcherます。何か助けはありますか?

4

3 に答える 3

3

に変更"SelectCatalog.jsp"してみてください。"/SelectCatalog.jsp"私が理解しているように、 を使用したいからですabsolute path

于 2012-11-04T16:51:06.733 に答える
0

request.getParameter("アクション");

コードは doPost メソッドで記述します。サーブレットを呼び出す doPost メソッドからこのサーブレットを呼び出していますか? URL パラメータは doPost メソッドでは使用されません。

于 2013-08-12T05:48:26.567 に答える
0

相対パスを使用する場合は、次を使用する必要があります。

request.getRequestDispatcher(url);

代わりに:

getServletContext().getRequestDispatcher(url);
于 2012-11-04T17:25:53.870 に答える