我是服务器端编程的新手,我正在编写一个简单的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?或者我只是以错误的方式做到了?
答案 0 :(得分:0)
您应该做的是将Map作为属性放入请求中:
request.setAttribute("yourMap", map);
然后在JSP中,您可以使用JSTL和EL来访问值。
Price: ${yourMap.price}
Name: ${yourMap.name}