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
.



Relevant Pages

  • Re: Outputing JSP Code from a database
    ... > tree from the database. ... I can of course output html, ... When you write "tags to be processed by the servlet" you make me think ... > misunderstanding JSP, and I need to start from the ground up. ...
    (comp.lang.java.programmer)
  • Re: Change data in a bean
    ... I want to change what has been retrieved (using the bean) but it ... > into HTML). ... A JSP runs on the server, and the client only ever sees the ... before the browser renders the page on the client then you're right. ...
    (comp.lang.java.databases)
  • Re: Change data in a bean
    ... I want to change what has been retrieved (using the bean) but it ... > into HTML). ... A JSP runs on the server, and the client only ever sees the ... before the browser renders the page on the client then you're right. ...
    (comp.lang.java.programmer)
  • Re: what is the MVC all about
    ... WIth a JSP you can call any Java class/method directly from a ... so the JSP gets control first. ... just do this instead:) If a Servlet gets control first (specified by ... The Servlet didn't generate HTML, ...
    (comp.lang.perl.misc)
  • Re: A java class invokes a JSP?
    ... If this is code that you have control over and the html is static (i.e. ... Keep in mind that a JSP is just a fancy servlet: ... through a servlet container that is in turn called from a web server. ...
    (comp.lang.java.programmer)