如何将消息从servlet传递给jsp?

时间:2014-05-08 18:38:52

标签: java jsp servlets jstl

我想将一个status参数从servlet传递给jsp。我是通过

发送的
response.sendRedirect("newpage.jsp?status=yes");

如果status = yes然后在<div>中显示成功消息,然后将状态设置为null。但是,当newpage.jsp第一次加载状态的值为null时,它会提供空指针异常

会话也会发生同样的事情。

<% 
   String status = request.getParameter("status");
   System.out.println("Check Successful of Status"+status);
   if (status.equalsIgnoreCase("yes")) {
   System.out.println("Check Successful of Status");
%>

<div style="color: green;" align="center">Selected tenant approved successfully</div>

<script type="text/javascript"> window.location.href = window.location.href.split("?")[0]; </script>

<%
   request.setAttribute("status1", null); 
%>  

3 个答案:

答案 0 :(得分:1)

request.setAttribute("status1", yourstatus); 
getServletContext().getRequestDispatcher("yourpageyouwanttosend.jsp").forward(request, response);

您的观点<%= request.getAttribute("status1") %>

答案 1 :(得分:1)

在Servlet中,您可以使用

request.setAttribute("status","yes")

在jsp中,您可以使用

进行检索
request.getAttribute("status");

是的,我错过了这一点

以上你需要使用

RequestDispatcher rd = request.getRequestDispatcher("somefile.jsp");
rd.forward(request,response);

如果您想使用response.sendRedirect("somefile.jsp")

你可以将会话中的变量设置为

HttpSession session = request.getSession(false);

session.setAttribute("status","yes")

并以

取回

session.getAttribute("status")

使用后,您可以将其删除为

session.removeAttribute("status")

答案 2 :(得分:0)

您使用status作为参数名称,并且正在比较JSP中的status1

    if (status1.equalsIgnoreCase("yes")) {

注意:

将javacode放在jsp上并不是件好事,切换到JSTL