Passing data from Servlet to JSP page
dapissarenko Apr 12, 2006 7:43 AMHello!
I have a servlet EnterConstantServlet, which does some operation, which might fail. If that operation fails, I want that the user comes to a JSP page enterConstantFailed.jsp, where the error should be displayed.
If the operation completes successfully, the user should be redirected to JSP page enterConstantSuccess.jsp.
The servlet code is like shown below:
public class EnterConstantServlet extends HttpServlet {
private static final String SUCCESS_PAGE = "enterConstantSuccess.jsp";
private static final String FAILURE_PAGE = "enterConstantFailed.jsp";
private static final long serialVersionUID = 1L;
public EnterConstantServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Exception2TextualStackTrace func=null;
PendingConstantHome home=null;
PendingConstant pendingConstant=null;
Context initial =null;
String constant=null;
Object objRef =null;
/**
* fetch name of the constant
*/
constant=req.getParameter("constantName");
/**
* save constant in OpenCyc as pending constant
*/
try
{
initial = new InitialContext();
objRef = initial.lookup("java:comp/env/ejb/SimpleRoster");
home = (PendingConstantHome)PortableRemoteObject.narrow(objRef, PendingConstantHome.class);
pendingConstant = home.create();
pendingConstant.setPendingConstantName(constant);
resp.sendRedirect(SUCCESS_PAGE);
}
catch (Exception exception)
{
func=new Exception2TextualStackTrace();
System.out.println("failure reason: " + func.evaluate(exception));
resp.addHeader(FAILURE_REASON, func.evaluate(exception));
resp.sendRedirect(FAILURE_PAGE);
}
}
}
Note: The return value of
func.evaluate(exception)
is not null. I see this in the log file of JBoss.
I have a problem - the failure reason (parameter FAILURE_REASON in the above code) is NOT displayed in enterConstantFailed.jsp.
enterConstantFailed.jsp looks like shown below:
<?xml version="1.0" encoding="UTF-8" ?> <%-- $Author: user $ $Revision: 1.2 $ $Date: 2006/04/11 20:51:35 $ $Id: enterConstantFailed.jsp,v 1.2 2006/04/11 20:51:35 user Exp $ $Log: enterConstantFailed.jsp,v $ Revision 1.2 2006/04/11 20:51:35 user Added routine for displaying failure reason. Revision 1.1 2006/04/11 20:29:58 user Initial commit. --%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="header.jsp" %> <h1>????????? ?????? ??? ????? ?????????</h1> <p>????? ?????? ???????? ????.</p> <pre><%= request.getParameter(intranet.dapissarenko.com.WriteImageServlet.FAILURE_REASON) %></pre> <%@ include file="footer.jsp" %>
What should I do in order for the failure reason to be displayed in enterConstantFailed.jsp?
Thanks in advance
Dmitri Pissarenko
PS: This is the code of header.jsp:
<?xml version="1.0" encoding="UTF-8" ?> <!-- $Author: user $ $Revision: 1.2 $ $Date: 2006/04/04 21:39:40 $ $Id: header.jsp,v 1.2 2006/04/04 21:39:40 user Exp $ $Log: header.jsp,v $ Revision 1.2 2006/04/04 21:39:40 user Added link to sanSanych.jsp. Revision 1.1 2006/04/02 22:56:57 user Initial commit. --> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru-RU"> <head> <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> <meta name="author" content="haran" /> <meta name="generator" content="haran" /> <link rel="stylesheet" type="text/css" href="prosimii-screen.css" media="screen, tv, projection" title="Default" /> <link rel="stylesheet alternative" type="text/css" href="prosimii-print.css" media="screen" title="Print Preview" /> <link rel="stylesheet" type="text/css" href="prosimii-print.css" media="print" /> <title>?????????? ???? ??????? ?????????</title> </head> <body> <!-- For non-visual user agents: --> <div id="top"><a href="#main-copy" class="doNotDisplay doNotPrint">Skip to main content.</a></div> <!-- ##### Header ##### --> <div id="header"> <div class="superHeader"> <span></span> <a href="http://dapissarenko.com" title="Dmitri Pissarenko">??????????? ???? ??????? ?????????</a> </div> <div class="midHeader"> <h1 class="headerTitle" lang="la">??????? ?????????</h1> <div class="headerSubTitle"> ?????????? ???? </div> <br class="doNotDisplay doNotPrint" /> </div> <div class="subHeader"> <span class="doNotDisplay">Navigation:</span> <a href="enterTime.jsp">?????? ????? ??????</a> | <a href="sanSanych.jsp">??? ?????</a> | <a href="./index.html">?????????? ???????????</a> </div> </div> <!-- ##### Main Copy ##### --> <div id="main-copy"> <div class="rowOfBoxes"> <div class="twoThirds noBorderOnLeft">
PPS: This is the code of footer.jsp:
<?xml version="1.0" encoding="UTF-8" ?>
<!--
$Author: user $
$Revision: 1.2 $
$Date: 2006/04/02 23:07:06 $
$Id: footer.jsp,v 1.2 2006/04/02 23:07:06 user Exp $
$Log: footer.jsp,v $
Revision 1.2 2006/04/02 23:07:06 user
Fixed encoding problems.
Revision 1.1 2006/04/02 22:56:57 user
Initial commit.
-->
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- ##### Main text comes here ##### -->
</div>
</div>
</div>
<!-- ##### Footer ##### -->
<div id="footer">
<span class="doNotPrint">
?? ???? ???????? ?????? ???? ???????? ?????? ?? ????
<a href="mailto:office@dapissarenko.com">office@dapissarenko.com</a><br />
</span>
<strong>???????? ??????? »</strong> <%= java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.DEFAULT, java.text.DateFormat.DEFAULT, new java.util.Locale("ru")).format(new java.util.Date()) %>
</div>
</body>
</html>