使用动态Map从Servlet调用JSP

时间:2012-03-16 15:59:12

标签: java jsp java-ee servlets

我是服务器端编程的新手,我正在编写一个简单的servlet / jsp程序。 servlet部分应该从URL获取参数并将它们保存到地图中,jsp部分应该读取地图并在HTML表格中显示其内容。

这是servlet:

@WebServlet("/RestaurantServlet86105511")
public class RestaurantServlet86105511 extends HttpServlet {
private static HashMap<String, String> map = new HashMap<>();
private String name;
private String price;

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    name = request.getParameter("name");
    price = request.getParameter("price");
    map.remove(name);
    map.put(name, price);
    RequestDispatcher rd = request
            .getRequestDispatcher("/WEB-INF/RestaurantJSP86105511.jsp");
    rd.forward(request, response);
}
public static HashMap<String, String> getMap() {
    return map;
}
}

我不知道自己做错了什么,但每次调用rd.forward之后,地图内容也会被删除,而jsp只打印我输入的最后一个参数URL。 有没有其他方法从servlet调用jsp?或者我只是以错误的方式做到了?

1 个答案:

答案 0 :(得分:0)

您应该做的是将Map作为属性放入请求中:

request.setAttribute("yourMap", map);

然后在JSP中,您可以使用JSTL和EL来访问值。

Price: ${yourMap.price}
Name: ${yourMap.name}