开发者

Confused with Java Servlets and HTML

Part of m开发者_JS百科y homework for tomorrow is to search and add entries using Java EE. If the search is not existing, an add item option will show as follow:

Supposedly, when the Stock ID is not existing, It will be transfered to the Add Item Text Field of StockID. But I have no idea how to do it. My code is as follows:

Servlet:

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

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        Item item = (Item) request.getAttribute("invenItem");
        if (item != null) {
            out.println("<html><title>Inventory Item</title>");
            out.println("<body><h1>Inventory Item Details:</h1>");
            out.println("Stock ID  : " + item.getStockID() + "<br/>");
            out.println("Name      : " + item.getItemName() + "<br/>");
            out.println("Unit Price: " + item.getUnitPrice() + "<br/>");
            out.println("On Stock  : " + item.getOnStock() + "<br/>");
            out.println("</body>");
            out.println("</html>");
        } else {
            RequestDispatcher rd = request.getRequestDispatcher("/DataForm.html");
            rd.include(request, response);
            out.println("Sorry Item not found..");
            rd = request.getRequestDispatcher("AddEntry.html");
            rd.include(request, response);
        }
    }
}

HTML:

<html>
  <head>
    <title>Add Entry</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
      <h2>Add Item:</h2>
      Stock ID: <input type ="text" name ="stockId" value="???"> <br> <--how to get it?
      Item Name: <input type ="text" name ="name"> <br>
      Unit Price: <input type ="text" name ="unitPrice"> <br>
      On Stock : <input type ="text" name ="stock"> <br><br>
      <input type ="submit" value ="Add Item">
  </body>
</html>


You're approaching this the wrong way. HTML belongs in JSP files, not in Servlet classes. Also, EL ${} doesn't run in plain HTML files at all, but in JSP files only. Rename your .html files to .jsp. This way EL like ${param.id} will then also work, even though you still have a XSS attack hole open.

See also:

  • Our JSP wiki page
  • Our Servlets wiki page

(please read them, they contains hello world examples which should turn on some lights in your head)


You can't use the expression language (i.e. ${param.id}) in plain HTML files. It'll only be interpreted in JSPs (files with a .jsp extension).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜