将变量servlet传递给jsp页面app引擎项目

时间:2014-07-12 18:48:42

标签: jsp google-app-engine java-ee servlets

我尝试将一个简单的字符串变量传递给我的页面index.jsp,但没有成功:

@SuppressWarnings("serial")
public class HexoSkin_GAEServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws IOException, ServletException {
        String dateStr = "2014.07.07.19:40";
        request.setAttribute("dateStr", dateStr);

        // I try
        this.getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);

        // Or
        request.getRequestDispatcher("index.jsp").forward(request,response);
    }
}

我的index.jsp位于文件夹" war。"我的项目是一个Web应用程序项目(appengine) 在我的page.jsp中:

<% 
    String attribut = (String) request.getAttribute("dateStr");
    // Return always null
    out.println("VALUE :" +attribut);
%>

我也试过Session:

request.getSession().setAttribute("dateStr",dateStr);
String attribut2 =  (String) session.getAttribute("dateStr") ;

这是我的web.xml,以防它有用:

<servlet>
    <servlet-name>HexoSkin_GAE</servlet-name>
    <servlet-class>myapp.HexoSkin_GAEServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>HexoSkin_GAE</servlet-name>
    <url-pattern>/hexoskin_gae</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
</welcome-file-list>

我是否错过了一些配置部分? 感谢

2 个答案:

答案 0 :(得分:1)

您正试图在page.jsp中显示值,但实际上您正在将请求重定向到index.jsp。

答案 1 :(得分:0)

你没写,问题是什么(没有价值或例外)。尝试使用:

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

getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);

因为来自ServletContext的方法只允许以/

开头的路径

请参阅documentation