Re: Hidden Fields in Java Servlets - help!!!
On Jul 6, 8:02 am, Dan <dlane9...@gmail.com> wrote:
Okay -
Pardon if this is a newbie question... but this has been driving me
nuts.
I am trying to pass a simple hidden field from one servlet to another
servlet... .this is to prevent the second page from being displayed
directly - you have to go through the first page to get to the second
page.
I am using IBM Websphere Studio Application Developer Ver 5.1.2.
Below is my script for my first servlet (the one that you first go to)
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html>" +
"<head><title>DirectIt1Servlet.java</title></head>" +
"<body>" +
"<form action=\"/MyWebApp/DirectIt1Servlet2\" method=\"get\"`>" +
"<input type=\"hidden\" name=\"sw\" value=\"y\">" +
"</form>" +
"<p>" + "Below is a button link to the correct page that you want.
You cannot get there any other way besides clicking on the link <br />below:<br />" +
"<br />" +
"<a href=\'http://localhost:9080/MyWebApp/DirectIt1Servlet2'>Link" +
"</a>" +
"</body></html>");
}
public void init() throws ServletException
{
super.init();
}
Below is the script to the second servlet (the one that is looking for
that parameter)
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
if(req.getParameter("sw")==null)
{
resp.sendRedirect("http://localhost:9080/MyWebApp/
DirectIt1Servlet");
}
else
{
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
out.println("<html>" +
"<head><title>DirectIt1Servlet2.java</title></head>" +
"<body>" +
"<p>Congrats! You made it<br />" +
"</body></html>");
}
}
What the hell am I doing wrong? It keeps reading in sw as null, no
matter what I type.
Actually, Servler/JSP request doest not differentiate between a
'visible' or 'hidden' form field. You should be able get it in your
servlet's request object.
Looking at your html form code,
"<form action=\"/MyWebApp/DirectIt1Servlet2\" method=\"get\"`>" +
"<input type=\"hidden\" name=\"sw\" value=\"y\">" +
"</form>"
I am guessing you are doing some wrong Form posting. Add a submit
button, and try changing the posting type from 'get' to 'post'.
Ensure, form's submit destination is perfect.
One more suggestion for you, do not program in this way. Session
should be used to track this page1 visit condition.
--
Manivannan.Palanichamy (@) Oracle.com
http://mani.gw.googlepages.com/index.html