aspose file tools*
The moose likes JSP and the fly likes Sending Javascript variables to JSP variables Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSP
Bookmark "Sending Javascript variables to JSP variables" Watch "Sending Javascript variables to JSP variables" New topic
Author

Sending Javascript variables to JSP variables

Sam Gardner
Ranch Hand

Joined: Jul 22, 2008
Posts: 48
Hey Guys-

I'm not sure if this is more of a Javascript issue, or a JSP issue, but I'll post it here first and see where it takes me.

I am working on a project that involves overlaying information over a google maps interface. Because google is so awesome, they have some functions built in to the API that will make my life a lot easier if I can figure out how to integrate them into normal Java variables used on the JSP page.

This is the flow of events I'd like to use:

1) JSP: get data from MySQL database
pass some of the data to Javascript google maps construction
2) JS: Use that data to run google maps functions that will return JS data
3) JSP: modify the data from JS and add it to the database

Could someone give me some pointers on how to accomplish the variable passing?

Thanks for any help!
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18989
    
    8

In step 1, you run a JSP. It generates some HTML which contains some Javascript and sends it to the browser. That's it for the JSP, it has done its work and it is finished.

In step 2, the browser runs your Javascript and does all that neat Google Maps stuff.

Now your question appears to be about step 3. You want the Javascript to update the database? Remember that the JSP is finished, it's out of the picture, and anyway it was running on the server and not in your browser.

So you need your Javascript to send requests (AJAX would be useful here) to the server, where there will be something (hopefully a servlet and not a JSP) which receives those requests and uses them to update the database.
Sam Gardner
Ranch Hand

Joined: Jul 22, 2008
Posts: 48
The JSP I would like to use incorporates some Java code on the backend that updates and accesses the database.

But, that Java code needs to be passed some parameters from the calling code that will define what needs to be added to the database. Those parameters will come from the Javascript, and I figure it's probably easier to go from JS -> JSP -> Java than it is to write the listener to get the HTTP requests from JS that would be necessary to pass the values from JS -> Java.

If I'm on the wrong track, could someone point me in the right direction?

Thanks!
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61766
    
  67

Originally posted by Sam Gardener:
The JSP I would like to use incorporates some Java code on the backend that updates and accesses the database.
Java in a JSP is considered a poor practice and is inherently not callable. You should refactor this code out into Java classes.

I figure it's probably easier to go from JS -> JSP -> Java
As Paul pointed out, JSPs should not be targets of requests. Servlets should be. Then it would be an easy matter for your servlet to invoke the Java that you factored out of the JSp in step 1.

If I'm on the wrong track, could someone point me in the right direction?
See above.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Sam Gardner
Ranch Hand

Joined: Jul 22, 2008
Posts: 48
Java in a JSP is considered a poor practice and is inherently not callable. You should refactor this code out into Java classes.


Sorry, I misspoke. My code is set up in this way.

So, by the servlet, did you mean the Java class? Is it possible for my Javascript to call a standard Java class, or do I need to write some sort of intermediary to handle the Javascript -> Java "barrier".

I'm sorry if this went off on a random tangent - I am a javascript novice and just trying to guess at the right progression of events here.

Thanks for the help!
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18989
    
    8

As I tried to explain earlier, your Javascript is running in the browser. It can't call anything on the server directly. If you want it to send information to the server then you have it send an HTTP request to a servlet there.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 61766
    
  67

No, you can't call any random Java class. That's what servlets are for.

(That said there's a project called DWR that uses Ajax and servlets to make it look like you can directly call Java, but it's using the same mechanisms that we're talking about here).
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Sending Javascript variables to JSP variables