Re: form bean and session attribute
Thufir Hawat wrote:
Well, that's sucks. Maybe beating a dead horse, but one last source,
which is a bit light on the role of the servlet, but, again, starts with
inputting data into a jsp [sic] with setProperty:
All that "setProperty" stuff happens server side. The JSP in the browser is
only HTML, nothing but HTML. There are no Java objects client side.
On the server side, the JSP *is* a servlet.
The data is not put into the JSP with the 'setProperty'. The tag is a
shortcut for servlet code that gets compiled by the servlet container (such as
Tomcat). There is no "form bean" on the client side. It's all just HTML
parameters. That tag becomes Java code that moves data from the form data in
the HTML to the Java bean, server side. In fact what happens is that data
moves from the HTML to the bean on the server after the form is submitted.
Getting Data From the Form to the Bean
Setting properties in a Bean from an HTML form is a two-part task:
* Creating or locating the Bean instance with <jsp:useBean>
* Setting property values in the Bean with <jsp:setProperty>
...The data the user enters is stored in the request object...
As parameters.
http://java.sun.com/products/jsp/html/jspbasics.fm2.html
However, there's no real point in any of that because there's no good way
of passing the bean from the jsp [sic] to the servlet as an object?
There is no bean coming from the JSP on the client side. There is only HTML
on the client side. The bean is created on the server side. The JSP *is* a
servlet.
JSP is just a convenient source code format for a servlet. Its purpose is to
handle the view part of the application.
Did you read the links I suggested to you upthread?
Did you look up "Model-View-Controller" (MVC)?
Also, look for what Sun calls the "Model 2" version of MVC.
You need to shift your mental model of what's going on. The HTML tags in JSP
are just "out.print()" and "out.println()" calls in the servlet. The
<jsp:...> tags are shorthand for Java code. There is no "form bean" on the
client side. Form entries are sent from the client to the server only as
request parameters. Those parameters get copied into a bean only on the
server side. When the servlet (the one for which the JSP is source code)
sends a response, it can use that bean (via, for example, the <jsp:useBean>
tag) to provide parts of its "out.println()" calls. Only HTML is sent back to
the browser. Back to the browser, there's no "form bean" there.
You can find the .java source code generated for the JSP in the working
subdirectories of the servlet container (Tomcat, etc.). That .java source in
turn is compiled into a .class file for the resulting servlet.
Read the links that I recommended. Really.
--
Lew