在netbeans和index.jsp中创建一个servlet

时间:2010-08-30 23:13:27

标签: forms jsp servlets

我正在尝试在netbeans中创建一个servlet。必须从html表单中调用它并从中获取一些数据。

我覆盖了doget和dopost,只在其中加入了一些测试。

当我尝试运行servlet时,它只显示一个hello word jsp页面,我发现这是servlet默认拥有的index.jsp页面。

如何让servlet运行并实际输出一些?索引欢迎页面除外?

我使用哪个url mast来从表单调用servlet?

doget和dopost方法看起来像这样

 public void doPost(HttpServletRequest request,
                  HttpServletResponse response)
    throws IOException, ServletException
    ResourceBundle rb =
    ResourceBundle.getBundle("LocalStrings",request.getLocale());
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");

    String title = rb.getString("helloworld.title");

    out.println("<title>" + title + "this is my anser</title>");
    out.println("</head>");
    out.println("</html>");



   protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
          this.doPost(request, response);}

1 个答案:

答案 0 :(得分:0)

  

如何让servlet运行并实际输出一些?索引欢迎页面除外?

您应该将请求分派到所需的JSP页面中。您可以使用RequestDispatcher执行此操作。

request.getRequestDispatcher("page.jsp").forward(request, response);
  

我使用哪个url mast来从表单调用servlet?

您在web.xml中映射的那个。

您还应该只将HTML放在JSP页面中,而不是放在servlet中。让doGet()doPost()做同样的事情也不是一个好习惯。 doGet()只是在JSP中显示之前预处理数据。在提交HTML表单后,doPost()仅用于后处理数据。

tag info about [servlets]标记中,您可以找到一个hello world示例以及有关从JSP / servlet开始的更多链接。