我是Java服务器编程的新手,我正在尝试使用Google应用引擎。
以下代码位于servlet中:
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setAttribute("message", "Hi from servlet!");
req.getRequestDispatcher("/my_page.jsp").forward(req, resp);
}
以下代码位于my_page.jsp
:
<%= request.getAttribute("message") %>
我希望在结果页面上看到Hi from servlet!
,我看到null
。
(如果我尝试使用${message}
,我根本就没有输出)
将数据从servlet传递到JSP的正确方法是什么?
答案 0 :(得分:1)
您需要让请求URL(您在浏览器的地址栏中看到的URL)指向与web.xml
中配置的servlet的URL模式匹配的URL,而不是JSP文件的URL本身。最好的方法是将JSP放在/WEB-INF
文件夹中,这样就不会在不调用servlet的情况下“意外地”调用它。
顺便说一句,${message}
是正确的方式,应该优先于旧式的 scriptlet 。