Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Home
TUTORIALS
Contact Us
JAVA / JEE
Subscribe
WEB FRAMEWORKS
Advertise
JS FRAMEWORKS
USER INTERFACE
JVM LANGUAGES
DATA
MOBILE
OTHERS
CERTIFICATION
Home >> Spring Framework >> Spring MVC Framework with Example
JavaBeat
Name:
Follow
+1
+ 392
56 Comments
Email:
JavaBeat
Like
BUY NOW
0
Tw eet
14
1) Introduction
StumbleUpon
subm it
Submit
Like
Share
as a separate module in the Distribution. As a pre-requisite, readers are advised to go through the introductory article on
Spring Framework Introduction to Spring Framework. The Spring MVC Framework is architected and designed in such a way
that every piece of logic and functionality is highly configurable. Also Spring can integrate effortlessly with other popular Web
Frameworks like Struts, WebWork, Java Server Faces and Tapestry. It means that you can even instruct Spring to use any
one of the Web Frameworks. More than that Spring is not tightly coupled with Servlets or Jsp to render the View to the Clients.
Integration with other View technologies like Velocity, Freemarker, Excel or Pdf is also possible now. This article provides
an introduction over the various components that are available in the Spring MVC for the Web Tier. Specifically the major
Core Components like Dispatcher Servlet, Handler Mappings, Controller, Model, View and View Resolver along with the
appropriate Api are discussed briefly. Finally the article will conclude by presenting a Sample Application.
SEARCH
Search this website
Search
1/20
6/24/2014
RECENT COMMENTS
Krishna Srinivasan on RestController in
Spring 4.0
Sadique Khan on RestController in Spring
4.0
sherabc on Hibernate XML configuration
file example
sherabc on Spring and Jersey Integration
Example
1. The Client requests for a Resource in the Web Application.
2. The Spring Front Controller, which is implemented as a Servlet, will intercept the Request and then will try to find out
the appropriate Handler Mappings.
3. The Handle Mappings is used to map a request from the Client to its Controller object by browsing over the various
Controllers defined in the Configuration file.
4. With the help of Handler Adapters, the Dispatcher Servlet will dispatch the Request to the Controller.
5. The Controller processes the Client Request and returns the Model and the View in the form of ModelAndView
object back to the Front Controller.
6. The Front Controller then tries to resolve the actual View (which may be Jsp, Velocity or Free marker) by consulting the
View Resolver object.
7. Then the selected View is rendered back to the Client.
Let us look into the various Core Components that make up the Spring Web Tier. Following are the components covered in
the next subsequent sections.
RECENT POSTS
Bootstrap Navigation Controls
Bootstrap Input Groups
Create Custom Formatter for Logger
Handler
java.util.Formatter Example
Java Logging Handlers Example
3) Dispatcher Servlet
The Dispatcher Servlet as represented by org.springframework.web.servlet. DispatcherServlet, follows the Front Controller
Design Pattern for handling Client Requests. It means that whatever Url comes from the Client, this Servlet will intercept the
Client Request before passing the Request Object to the Controller. The Web Configuration file should be given definition in
such a way that this Dispatcher Servlet should be invoked for Client Requests.
FEATURED TUTORIALS
JSF 2 Tutorials and Examples
1 Comment
Following is the definition given in the web.xmlto invoke Springs Dispatcher Servlet.
web.xml
1 <?xml version='1.0' encoding='UTF-8'?>
2
<web-app version='2.4'>
3
4
<servlet>
5
<servlet-name>dispatcher</servlet-name>
6
<servlet-class>
7
org.springframework.web.servlet.DispatcherServlet
8
</servlet-class>
9
<load-on-startup>2</load-on-startup>
10
</servlet>
11
12
<servlet-mapping>
13
<servlet-name>dispatcher</servlet-name>
14
<url-pattern>*.*</url-pattern>
15
</servlet-mapping>
16
17 </web-app>
Look into the definition of servlet-mappingtag. It tells that whatever be the Client Request (represented by *.* meaning
any Url with any extension), invoke the Servlet by name 'dispatcher'. In our case, the dispatcher servlet is nothing but an
instance of type 'org.springframework.web.servlet.DispatcherServlet'.
Closing associated term with the Dispatcher Servlet is the Application Context. An Application Context usually represents
a set of Configuration Files that are used to provide Configuration Information to the Application. The Application Context is
a Xml file that contain various Bean Definitions. By default the Dispatcher Servlet will try to look for a file by name
<servlet-name>-servlet.xmlin the WEB-INFdirectory. So, in our case the Servlet will look for a file name called
dispatcher-servlet.xmlfile in the WEB-INF directory.
It is wise sometimes to split all the Configuration information across multiple Configuration Files. In such a case we have to
depend on a Listener Servlet called Context Loader represented by
org.springframework.web.context.ContextLoaderListener.
1 <web-app>
2
3
<listener>
4
<listener-class>
5
org.springframework.web.context.ContextLoaderListener
6
</listener-class>
7
</listener>
8
9 </web-app>
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
2/20
6/24/2014
By default, this Context Listener will try to look for the Configuration File by name
'applicationContext.xml'in the '/WEB-INF'directory. But with the help of the parameter
'contextConfigLocation'the default location can be overridden. Even multiple Configuration Files each containing
separate piece of Information is also possible.
web.xml
1 <?xml version='1.0' encoding='UTF-8'?>
2 <web-app version='2.4'>
3
4
<listener>
5
<listener-class>
6
org.springframework.web.context.ContextLoaderListener
7
</listener-class>
8
</listener>
9
10
<context-param>
11
<param-name>contextConfigLocation</param-name>
12
<param-value>/WEB-INF/contacts.xml, /WEB-INF/resources.xml</param-value>
13
</context-param>
14
15 </web-app>
The above definition instructs the Framework to look and load for the Configuration Files by name 'contacts.xml'and
Transaction Management in
Spring Framework
23 Comments
ARCHIVES
Select Month
4) Handler Mappings
When the Client Request reaches the Dispatcher Servlet, the Dispatcher Servlet tries to find the appropriate Handler
CATEGORIES
Select Category
Mapping Object to map between the Request and the Handling Object. A Handler Mapping provides an abstract way that
tell how the Clients Url has to be mapped to the Handlers. Four concrete variation of Handler Mapping are available. They are
TAGS
defined as follows
BeanNameUrl HandlerMapping
CommonsPathMap HandlerMapping
ControllerClassName HandlerMapping
SimpleUrl HandlerMapping
the org.springframework.web.servletpackage respectively. Let us see the functionalities and the differences in usage
Events
one by one.
Framework
Note that the Url (excluding the Application Context) in the above cases are 'showAllMails', 'composeMail' and
'deleteMail'. This means that the Framework will look for Bean Definitions with Identifiers showAllMails, composeMail
and deleteMail. Consider the following Xml code snippet in the Configuration file,
1 <beans>
2
3
<bean name='/showAllMails.jsp'
4
class='com.javabeat.net.ShowAllMailsController'>
5
</bean>
6
7
<bean name='/composeMail.jsp'
8
class='com.javabeat.net.ComposeMailController'>
9
</bean>
10
11
<bean name='/ deleteMail.jsp'
12
class='com.javabeat.net.DeleteMailController'>
13
</bean>
14
15 </beans>
So, in BeanNameUrl Handler Mapping, the Url of the Client is directly mapped to the Controller. To enable this kind of
Handler Mapping in the Application, the Configuration file should have a similar kind of definition like the following,
1 <beans>
2
3
4
<bean id='beanNameUrl'
5
class='org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping'/>
6
7
8 </beans>
3/20
6/24/2014
This is a rarely used Handler Mapping in which case, the name of the Url to which the Controller has to be mapped is
specified directly in the Source file of the Controller. Considering the previous example, if we want to map showAllMails,
composeMail and deleteMail to Controllers namely ShowAllMailsController, ComposeMailControllerand
DeleteMailController, then the mapping information must be specified in the form of meta-data in the source files
inside the Javadoc comments. Consider the following Controller Definitions,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**
*@@ org.springframework.web.servlet.handler.commonsattributes.
*PathMap('/showAllMails.jsp')
*/
public class ShowAllMailsController{
}
/**
*@@ org.springframework.web.servlet.handler.commonsattributes.
*PathMap('/composeMail.jsp')
*/
public class ComposeMailController{
}
/**
*@@ org.springframework.web.servlet.handler.commonsattributes.
*PathMap('/deleteMail.jsp')
*/
public class DeleteMailController {
}
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
4/20
6/24/2014
being the Url, the value being the Identifier of the Controller Objects. Note that the Beans for the above Identifiers should be
defined somewhere in the Configuration File.
5) Handler Adapters
It is important to understand that the Spring Framework is so flexible enough to define what Components should be
delegated the Request once the Dispatcher Servlet finds the appropriate Handler Mapping. This is achieved in the form of
Handler Adapters. If you remember in the Spring Work flow section, that it is mentioned once the Dispatcher Servlet
chooses the appropriate Handler Mapping, the Request is then forwarded to the Controller object that is defined in the
Configuration File. This is the default case. And this so happens because the Default Handler Adapter is Simple Controller
Handler Adapter (represented by org.springframework.web.servlet.SimpleControllerHandlerAdapter),
which will do the job of the Forwarding the Request from the Dispatcher to the Controller object.
Other types of Handler Adapters are Throwaway Controller HandlerAdapter
(org.springframework.web.servlet.ThrowawayControllerHandlerAdapter) and SimpleServlet
HandlerAdapter (org.springframework.web.servlet.SimpleServletHandlerAdapter). The Throwaway
Controller HandlerAdapter, for example, carries the Request from the Dispatcher Servlet to the Throwaway Controller
(discussed later in the section on Controllers) and Simple Servlet Handler Adapter will carry forward the Request from the
Dispatcher Servlet to a Servlet thereby making the Servlet.service()method to be invoked.
If, for example, you dont want the default Simple Controller Handler Adapter, then you have to redefine the Configuration
file with the similar kind of information as shown below,
1 <bean id='throwawayHandler' class = 'org.springframework.web.servlet.mvc.throwaway.
2
ThrowawayControllerHandlerAdapter'/>
3
4 or
5
6 <bean id='throwawayHandler' class='org.springframework.web.servlet.mvc.throwaway.
7
SimpleServletHandlerAdapter'/>
8
Even, it is possible to write a Custom Handler Adapter by implementing the HandlerAdapterinterface available in the
org.springframework.web.servletpackage.
6) Controller
Controllers are components that are being called by the Dispatcher Servlet for doing any kind of Business Logic. Spring
Distribution already comes with a variety of Controller Components each doing a specific purpose. All Controller
Components in Spring implement the org.springframework.web.servlet.mvc.Controllerinterface. This section
aimed to provide the commonly used Controllers in the Spring Framework. The following are the Controller Components
available in the Spring Distribution.
SimpleFormController
AbstractController
AbstractCommandController
CancellableFormController
AbstractCommandController
MultiActionController
ParameterizableViewController
ServletForwardingController
ServletWrappingController
UrlFilenameViewController
The following section covers only on AbstractController, AbstractCommandController,
SimpleFormControllerand CancellableFormControllerin detail.
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
5/20
6/24/2014
public MySimpleController(){
setCommandClass(UserInfo.class);
}
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response,
Object command){
Note that the Client Parameters (username , in this case) is encapsulated in a simple Class called UserInfo which is given
below. The value given by the Client for the username field will be directly mapped to the property called username in the
UserInfo. In the Constructor of the MySimpleControllerclass, we have mentioned the name of the Command Class
which is going to hold the Client Request Parameters by calling the setCommandClass()method. Also note that in the case
of Command Controller, the method that will be called by the Dispatcher Servlet will be handle()which is passed with the
Command object apart from the Request and the Response objects.
UserInfo.java
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
6/20
6/24/2014
Controller class.
EmpFormController.java
1 public class EmpFormController extends SimpleFormController{
2
3
public EmpFormController(){
4
setCommandClass(EmpInfo.class);
5
}
6
7
public void doSubmitAction(Object command){
8
EmpInfo info = (EmpInfo)command;
9
process(info);
10
}
11
12
private void process(EmpInfo info){
13
//Do some processing with this object.
14
}
15 }
16
As we mentioned previously, the form that collects information from the Client is empInfo.jspand upon successful
submission the view empSuccess.jspshould be displayed. This information is externalized from the Controller class and it
is maintained in the Configuration File like the following,
1 <bean id = 'empForm' class='EmpFormController'>
2
3
<property name='formView'>
4
<value>empInfo</value>
5
</property>
6
7
<property name='successView'>
8
<value>empSuccess</value>
9
</property>
10
11 </bean>
Note the two property names 'formView'and 'successView'along with the values 'empInfo'and 'empSuccess'.
These properties represent the initial View to be displayed and the final view (after successful Form submission) to be
rendered to the Client.
8) View Resolver
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
7/20
6/24/2014
In the previous section, we talked about Logical View and the Physical View Location for the Logical View. The mapping
between the Logical name and the Physical View Location is taken care by the View Resolver object. Without any surprise,
Spring comes with a set of Built-In Spring Resolvers. It is even possible to write Custom View Resolvers by implementing
the org.springframework.web.servlet.ViewResolverinterface. Following are the available View Resolvers in the
Spring Distribution.
BeanNameViewResolver
FreeMarkerViewResolver
InternalResourceViewResolver
JasperReportsViewResolver
ResourceBundleViewResolver
UrlBasedViewResolver
VelocityLayoutViewResolver
VelocityViewResolver
XmlViewResolver
XsltViewResolver
The following section concentrates only on Internal Resource View Resolver and Bean Name View Resolver in detail.
9) Sample Application
9.1) Introduction
The final Section of this article details a Simple Contact Application that has provisions for Creating, Deleting and Listing
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
8/20
6/24/2014
Contact Objects. The aim of this Application is to show the various use of Controller Components like Abstract Controller,
Abstract Command Controller and Form Controller along with Configuration Information.
web.xml
<?xml version='1.0' encoding='UTF-8'?>
<web-app version='2.4' xmlns='http://java.sun.com/xml/ns/j2ee '
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance '
xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd '>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
20
<url-pattern>*.htm</url-pattern>
21
</servlet-mapping>
22
23 </web-app>
24
<title>Create a Contact</title>
</head>
<body>
<h1>Create a Contact</h1>
<form name = 'CreateContact' method = 'get''>
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
9/20
6/24/2014
12
<input type = 'text' name = 'firstname' />
13
<input type = 'text' name = 'lastname' />
14
<br>
15
<input type='submit' name = 'Create Contact' value = 'Create Contact'/>
16
</form>
17
18 </body>
19 </html>
Note that since this is the page that will be shown to the user initially, in the Configuration file, the property 'formView'is
pointed to 'CreateContact'. Following is the code for ContactCreated.jsp. Since this is the View that will be shown after
the Form Submission the property 'successView'is made to point to 'ContactCreated'.
ContactCreated.jsp
1 <html>
2
<head>
3
<meta http-equiv = 'Content-Type' content = 'text/html; charset = UTF-8'>
4
<title>Contact is Created</title>
5
</head>
6
7
<body>
8
9
<h1>Contact is successfully Created</h1>
10
11
</body>
12 </html>
9.5) DeleteContact.jsp
Following is the complete listing for DeleteContact.jsp file. Note that this Jsp File is mapped to DeleteContactController
in the Configuration File.
DeleteContact.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>Delete Contact</title>
</head>
<body>
<h1>Delete Contact</h1>
<form name = 'DeleteContact' method = 'get'>
<input type = 'text' name = 'firstname' />
<br>
<input type='submit' name = 'DeleteContact' value = 'Delete Contact'/>
</form>
</body>
</html>
9.6) ListContacts.jsp
This page is to list all the existing Contacts that were created before. It should be noted that the Model Object that holds all
the Contact Information in the form of List is available in the ListContactsController. The Model Information from the
Controller after getting bound to the Request Scope is being taken off from the View in the form of Expression Language.
Following is the listing for ListContacts.jsp
ListContacts.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>Showing All Contacts</title>
</head>
<body>
<h1>Showing All Contacts</h1>
<p> The following are the created Contacts </p>
<c:forEach items = '${allContacts}' var='contact'>
<c:out value='${contact.firstname}'/><br>
<c:out value='${contact.lastname}'/><br>
</c:forEach>
</body>
</html>
9.7) Contacts.java
The following is the Class structure for Contacts.java for encapsulating the properties firstname and lastname.
Contact.java
1 package net.javabeat.articles.spring.mvc.contacts;
2
3 public class Contact {
4
5
private String firstName;
6
private String lastName;
7
8
public Contact() {
9
}
10
11
public Contact(String firstName, String lastName){
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
10/20
6/24/2014
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
this.firstName = firstName;
this.lastName = lastName;
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 }
this.lastName = lastName;
9.8) ContactService.java
This simple service class provides functionalities for creating, deleting and listing the Contact information. All the Controller
Components makes use of this class to achieve their respective functionalities.
ContactService.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package net.javabeat.articles.spring.mvc.contacts;
import java.util.*;
public class ContactService {
private static Map contacts = new HashMap();
public ContactService() {
}
public static Contact createContact(Contact contact){
contacts.put(new Integer(contact.hashCode()), contact);
return contact;
}
public static Contact createContact(String firstName, String lastName){
return createContact(new Contact(firstName, lastName));
}
public static boolean deleteContact(String firstName){
Iterator iterator = contacts.entrySet().iterator();
while (iterator.hasNext()){
Map.Entry entry = (Map.Entry)iterator.next();
Contact contact = (Contact)entry.getValue();
if (contact.getFirstName().equals(firstName)){
contacts.remove(new Integer(contact.hashCode()));
return true;
}
}
return false;
}
public static List listContacts(){
return toList(contacts);
}
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
11/20
6/24/2014
3 import org.springframework.web.servlet.mvc.SimpleFormController;
4
5 public class CreateContactController extends SimpleFormController{
6
7
public CreateContactController() {
8
setCommandClass(Contact.class);
9
}
10
11
public void doSubmitAction(Object command){
12
Contact contact = (Contact)command;
13
ContactService.createContact(contact);
14
}
15 }
Note that the method doSubmitAction()doesnt return anything because the next Logical View to be displayed will be
taken from the Configuration file which is represented by the property called 'successView'.
Following two classes are the Controller Components for Deleting and Listing Contacts. Note that in the case of Delete
Operation, a Jsp Page (DeletedContact.jsp) containing information telling that the Contact has been Deleted will
displayed. But since for the Contact Listing operation, the model information containing a Collection of Contact Objects has to
be passed from the Controller to the View and the same is achieved in the 3 argument constructor to ModelAndView.
DeleteContactController.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package net.javabeat.articles.spring.mvc.contacts;
import javax.servlet.http.*;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractCommandController;
public class DeleteContactController extends AbstractCommandController{
public DeleteContactController(){
setCommandClass(Contact.class);
}
public ModelAndView handle(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
Contact contact = (Contact)command;
ContactService.deleteContact(contact.getFirstName());
20
21
22
23 }
package net.javabeat.articles.spring.mvc.contacts;
import java.util.List;
import javax.servlet.http.*;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
public class ListContactsController extends AbstractController{
public ListContactsController() {
}
public ModelAndView handleRequestInternal(HttpServletRequest request,
HttpServletResponse response) throws Exception{
List allContacts = ContactService.listContacts();
return new ModelAndView('ListContacts', 'allContacts', allContacts);
}
10) Conclusion
The Article provided a basic Introduction over the core concepts in Spring MVC for the Web Tier. Since the Spring Web Tier is
built on top of the Spring Core Layer all the functionalities like Bean Lifecycle Management, Dependency Injection etc.
will be automatically available to the Bean Components. Starting off with the Interactions that will take place when a Client
Request for a Resource, it pointed out the various micro-level activities that take place in that Work flow. Then the Core
Components of Spring like Dispatcher Servlet, Controllers, Model/View, Handler Mappings, Handler Adapters and
View Resolvers are also discussed briefly. Finally the article ended up with the Simple Contact Application that demonstrated
the usage of the various types of Controllers.
Comments
5 comments
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
12/20
6/24/2014
Comment using...
1 March 22 at 12:20am
Related posts:
Integrating Struts
With Spring
Introduction to
Spring Web Flow
Comments
Adam Morgan says:
May 29, 2012 at 2:53
dispatcher
*.*
gives:
INFO: Suspicious url pattern: *.* in context [/adamtest] see section SRV.11.2 of the Servlet specification
better to use /, no?
Reply
Krish says:
June 7, 2012 at 1:19
Hello Adam,
It is invalid pattern. You must use / for your purpose. Read the following snippet from servlet specification:
A string beginning with a / character and ending with a /* suffix is used for path mapping.
A string beginning with a *. prefix is used as an extension mapping.
A string containing only the / character indicates the default
servlet of the application. In this case the servlet path is the request
URI minus the context path and the path info is null.
All other strings are used for exact matches only.
Reply
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
13/20
6/24/2014
I am new to spring and hibernate. i just wanted to know the how to fetch and display data to client side . Can i have an
example it would be really helpful .thanks
Reply
Krish says:
November 21, 2012 at 5:36
Can you please read the Spring and Hibernate integration example? http://www.javabeat.net/2007/10/integratingspring-framework-with-hibernate-orm-framework/
Reply
Kuldeep says:
July 30, 2012 at 12:27
Hi Krishna,
really a helpful material.. If possible can you post the architectural and flow diagram of the above.
it will be really helpful
Reply
Krish says:
November 21, 2012 at 5:35
Yes. I have updated this article with the architecture diagram for Spring MVC.
Reply
Sagar says:
August 2, 2012 at 3:31
Thank u
Reply
One of the best tutorial available on web for the beginers.Thanks a lot!!
Reply
Krish says:
November 21, 2012 at 5:26
Great !!!
Reply
hari says:
September 6, 2012 at 12:58
bullshit says:
September 16, 2012 at 4:22
ravindra says:
October 19, 2012 at 2:47
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
14/20
6/24/2014
flasher says:
November 21, 2012 at 12:37
Just one thing, void method cannot return anything. Anyway, good tutorial.
public void handleRequestInternal(HttpServletRequest request,
HttpServletResponse response){
return new ModelAndView(myView);
}
Reply
Krish says:
November 21, 2012 at 5:26
Great!! I have updated the mistake in the program!! Thank you for taking time to write the mistakes!! Are you
beginner in learning Spring MVC?
Reply
Revathy says:
November 21, 2012 at 12:29
Krish says:
November 21, 2012 at 1:05
HI Revathy,
Thank you for reading this article.
Reply
krish says:
February 5, 2013 at 9:20
rs says:
February 12, 2013 at 2:27
I am wondering about Map contacts in ContactService, it is defined as static, doesnt Static Map contacts return same
results for all similtaneious requests,
Reply
Krish says:
February 13, 2013 at 4:15
Static contacts would be shared with all the threads. Change in one thread would reflect in another thread. Is that
your question?
Reply
kailash says:
February 12, 2013 at 9:56
This is a very good tutorial to understand.but when I copy-paste this tutorial in eclipse it is not running. I am new to
Spring and this tutorial did help me a lot to clear many things. I am getting error:
Error 404Not Found
From RFC 2068 Hypertext Transfer Protocol
HTTP/1.1:
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
15/20
6/24/2014
Krish says:
February 13, 2013 at 4:11
Spyguy says:
February 14, 2013 at 9:25
Found another amazing page for Spring with working code for download. May be it will help you in running Spring
with ease.
http://kruders.com/spring/
Reply
Sunitha says:
March 6, 2013 at 5:49
Sunitha says:
March 6, 2013 at 5:49
Krish says:
March 6, 2013 at 2:09
kailash says:
March 15, 2013 at 10:39
kailash says:
March 15, 2013 at 10:39
I am new to spring and hibernate. i just wanted to know the how to fetch and display data to client side . Can i have an
example it would be really helpful
Reply
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
16/20
6/24/2014
Hello Satyam,
Please read this article:
http://www.javabeat.net/2007/10/integrating-spring-framework-with-hibernate-orm-framework/
If you have further questions, please reply here. I would be happy to discuss with you and clear your doubts.
Thanks,
Krishna
Reply
Premakumar says:
November 1, 2013 at 2:25
Hi sir,
This articles is very very good and Thank u so much sir
Reply
Seetesh says:
April 21, 2014 at 3:49
Trackbacks
Spring Framework Interview QuestionsJavaBeat says:
May 18, 2012 at 1:53
[...] articles on Spring and Hibernate before start reading this article. Raja has explained in Introduction to Spring
Framework. This article will help you to understand the fundamentals of the Spring framework. In another [...]
Reply
[...] for spring framework, please read our article on introduction to spring framework, spring aop, spring mvc and list of
spring articles. You can find the list of recommended books for spring. Javabeat covers [...]
Reply
[...] In this article, we will discuss about the Caching support provided by the Spring framework. This article assumes that
the reader has a basic understanding on Spring framework. The first section of the article illustrates the various APIs
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
17/20
6/24/2014
provided by Spring such as Cache, Cache Manager and Composite Cache Manager. Plenty of code samples will be
provided for illustrating the concepts better. Caching support can be specified for methods using annotations also and
the later section of this article provides an in-depth discussion on its usage. If you are not familiar with the spring
framework, please read our previous articles introduction to spring, spring aop and spring mvc. [...]
Reply
Spring Job Scheduling support with JDK Timer and Quartz says:
December 26, 2012 at 8:22
[...] to having a basic understanding on the core concepts of Spring before reading this article (Read: Introduction to
Spring Framework). This article explains the usage of Springs Expression API for writing and parsing [...]
Reply
[...] Web Flow is a framework developed on top on Spring Web MVC that aims in capturing the flow of an application so
that it is possible for the application [...]
Reply
[...] This article would brief about how a Spring Bean is managed in IOC (Inversion of Control) Container. Spring Beans
exist within the Container as long as they are needed by the Application. There are various life-cycle interfaces and
methods that will be called by the IOC Container. The pre-requisite for this article is some basic knowledge in Spring
which can be got by reading the article in Javabeat Introduction to Spring Web Framework. [...]
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
18/20
6/24/2014
Reply
[...] Spring provides support to access objects from the JNDI Repository. This article will begin with the JNDI concepts
along with a sample JNDI Application. Then it will proceed with the various core supporting classes available in Spring for
JNDI Integration. Following that, practical samples would be given to make things clear. The pre-requisite for this article is
some basic introductory knowledge in Spring which can be got by reading the article in javabeat Introduction to Spring
Web Framework. [...]
Reply
[...] Spring Portlet is a framework released from Spring community for easier development of Java Portlets. In this article,
we will learn about programming Portlets using Spring Portlets framework which is a layer built on top of Java Portlet
Specification (JSR 168). This article also covers some details about Java Portlet Specification. It provides in-depth details
about the various components involved in Spring Portlet framework like Controllers, Handler Mappings, View Resolvers
etc. Finally, it concludes with a sample which illustrates developing Portlet applications using Springs Portlet approach.
Before delving into this article, the reader is expected to have a fair bit of knowledge on Core Spring framework and
Spring MVC. For more information on this, please refer and read Introduction to Spring Web MVC. [...]
Reply
Spring bean scopes (Request, Session, Global Session) with example says:
April 5, 2013 at 5:23
[...] Note: In the above example, @Autowired annotation will search for the matching type in the spring beans
and automatically wire the suitable bean instance to the object. You need not declare any other explicit mentioning of
the injecting the objects, @Autowired is most powerful annotation to decide the suitable object. @RequestMapping is the
context path definition for the request. This annotation maps all the matching request from that path will be send to this
particular controller method. For more details please read spring mvc tutorials. [...]
Reply
[] of the chapters talks about the JDBC connections, transaction management, Spring MVC, Spring Web Flow, Spring
Security, etc. Over all, Spring in Action covers the wide range of the []
Reply
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
19/20
6/24/2014
Post Comment
Notify me of followup comments via e-mail. You can also subscribe without commenting.
Notify me of follow-up comments by email.
Notify me of new posts by email.
FACEBOOK PAGE
JavaBeat
Like
ABOUT US
Javabeat.net is a blog dedicated to Java/J2EE
developers. This site focus on beginners and
advanced developers. We constantly write fresh
content on J2EE topics like Spring, Hibernate and
wide variety of J2EE frameworks.
We're Social
2. Facebook - Like Us
5. Editor - Contact Us
4. RSS - Subscribe Us
COPY RIGHT 2013 JAVABEAT ALL RIGHTS RESERVED ALL LOGOS & TRADEMARK BELONGS TO THEIR RESPECTIVE OWNERS
http://www.javabeat.net/introduction-to-spring-mvc-web-framework-web-tier/
20/20