• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

How exactly controller controls the flow

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi I am new to this site.
My doubt is regarding the controlling and the general flow.
Its necessary to have just one servlet controller that takes the request parameters from one jsp and delegate it to some other jsp.But when there are thousands of jsp's and there is only one controller then how does the servlet controller knows from which jsp the request is comming and which page to render next. Where exactly the mapping takes place? I think its a very fundamental question but I am unable to get the answer.? Please get back to me.
 
Ranch Hand
Posts: 73
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
First you should think whether you need to use a single Servlet as a controller for many JSP pages. May be a subclass of the controller should handle that? Or you should look into the possibility of using an MVC framework like Struts or JSF.

If you really want to use a single controller for multiple JSP pages creating hardcoded dependencies, you can find the referring page by:
String myReferer = request.getHeader("referer");

Later you can use the myReferer to chain the response URL. Hope this helps.

Note: Your name does not seem to be following the naming policy. JavaRanch has a naming policy, which is strictly enforced. Please read the policy and change your display name if you wish to continue posting here.

You can change your name: here
[ March 01, 2005: Message edited by: Hari Gangadharan ]
 
Ranch Hand
Posts: 2874
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
No its not necessary to have only one controller to control the entire app.

Moreover, some reading required on FrontController Pattern. Hope you will get the answer. I am posting a brief description on FrontController from IBM DeveloperWorks. Here it goes,

"Front Controller is a controlling component that holds the common processing logic that occurs within the presentation tier. It handles client requests and manages security, state management, error handling, and navigation. The Front Controller centralizes control logic that might otherwise be duplicated, and dispatches the requests to appropriate worker components.

As a component that provides the initial single point of entry for all client requests, it is also known as Front Component. Multiple Front Controllers can be designed for different business use cases, which together manage the workflow of a Web application."
[ March 01, 2005: Message edited by: Adeel Ansari ]
 
Adeel Ansari
Ranch Hand
Posts: 2874
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
See Command Pattern as well.
 
Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You can have a properties file configured, which is read and interpretted by the controller to choose which jsp page to redirect to, based on the current request.
[ March 01, 2005: Message edited by: kolkata prince ]
 
Durga Prasanna Kar
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Its fine that I should use MVC pattern but I want to know where these mapping exactly happens.If at a time two jsp's with varying parameter's are requested at the same time then how the servlet controller will map jsp's to thier appropriate response pages.
 
Adeel Ansari
Ranch Hand
Posts: 2874
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A servlet container manages multiple request simultaneously. You need not worry about. Mapping could be done using Map, Property file, xml file.
 
Ranch Hand
Posts: 1491
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Mapping could be done using Struts-config.xml file in Struts. So you need not wory about mapping, if you use Struts like frameworks.
 
Senthil B Kumar
Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
With frameworks like Struts they provide their own configuration files either a XML or a property (XML Should be a best practice).

We have our own propieratory framework in which we have developed our own DTD and corresponding Configuration XML file which maps REQUEST ID & JSP and few more mappings like error/success handling.

If you want a Raw idea, the mapping can be imagined in this way....

http://localhost:8080/MyWebAppController?PageId=1234

Assume that each jsp page you assign a page id in a properties/xml file.



In the Controller you can have the properties file parsed and loaded into memory (In the Init).



Please not that this is just a suggestion, not an exact implementaion.
[ March 02, 2005: Message edited by: Senthil B Kumar ]
 
Adeel Ansari
Ranch Hand
Posts: 2874
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by kri shan:
Mapping could be done using Struts-config.xml file in Struts. So you need not wory about mapping, if you use Struts like frameworks.



Its not a struts specific question.

We should not talk about struts here because it might be the new/not known term for her and would increase her headache.
 
Senthil B Kumar
Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Or we can take it in the sense that a New Term/Techonology is being introduced

Either we go for Re-Inventing the wheel, since we need our wheel to be a Square or Adjust with an Existing wheel invented by someone
[ March 02, 2005: Message edited by: Senthil B Kumar ]
 
Adeel Ansari
Ranch Hand
Posts: 2874
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Originally posted by Senthil B Kumar:
Or we can take it in the sense that a New Term/Techonology is being introduced

Either we go for Re-Inventing the wheel, since we need our wheel to be a Square or Adjust with an Existing wheel invented by someone



Whatever. Although struts is a popular framework, but I am not in favor of struts. For more search jsp forum this has been discussed sometimes back. Struts got the remarks like, overly complex, bloated, not nicely implemented. . Moreover, struts is out-dated for newbies, but its me.

The one should know the whole mechanism, core concept and theory in order to learn the real stuff. Thus I am not in favor of using any of ready-made frameworks while you want to learn some design pattern or architecture, unless you have no other choice around.

Anyhow, more discussion on this would go off topic.
[ March 02, 2005: Message edited by: Adeel Ansari ]
 
Ranch Hand
Posts: 33
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello Durga, this is a good question because it is fundamental.

> My doubt is regarding the controlling and the general flow.
> Its necessary to have just one servlet controller that takes the request
> parameters from one jsp and delegate it to some other jsp.

Controller concept is to handle the user's Interactions with the page. Form submission, query/ edit and navigation, as well as simply requesting pages.

Different areas of data (News, Searches, Edit forms, Static Content) would have different Controllers requirements. Implementation could be under any name or place but you what a class is for.

> But when there are thousands of jsp's and there is only one controller

I would refer you to the Spring framework which uses meaningful names for meaningful concepts. 'Handler' or 'Interceptor' may be used as early stage of request handling to handle generic Login, Menus, templating etc before delegating to the Controller which handles the user's major task.

If there are thousands of jsps then they are 1000x similar templated content and similar behaviour. Or there are multiple Controllers.

> then how does the servlet controller knows from which jsp the request is
> comming and which page to render next.

Let's take a sidestep: Meaningful designs might have StaticPageController, [customer data] SearchController, [customer data] EditController, ForumPageController, IntroPageController, ...

Here's a tricky one, for knowing where you are on the Web: what about the URL path?

As for coming or going, that's also a good question. The answer is fundamental: it depends on whether you need to do anything or not. If your apoplication is passive, let HTML do the navigation for you; you controller only has to return the right static content.

If your application has to take some action, then the controller has to handle this and flow or redirect onwards. You guessed it, form submissions and interaction.

So if you structure your data areas to be requested into paths, eg /cust/search, /cust/edit, /order/search etc, and implement Controller functionality sensibly for these, you'll probably have a good idea of where you are and what you're doing...

as well as a fairly sensible software design.

As to exactly which customer, search criteria, selection etc you are working with -- nobody's found a better use for URL parameters. For each page when you generate action and navigation hotlinks in the JSP you output the data to parameterize the request.

Lastly, paths are useful for document areas. The machine uses paths in the file system so /docs/* might go to DocumentController which sources content from eg. the file system.


Anyway, check out the Spring framework. I recommend Tomcat/ Spring/ JDO as an effective combination. You want to understand clean and direct application code to get the job done. Hope this helps,


Regards,
Thomas Whitmore
www.powermapjdo.com
 
reply
    Bookmark Topic Watch Topic
  • New Topic