what's difference between Controller and Handler in Spring MVC?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
The documentation of Spring MVC sometimes says about "handlers" or "request handlers". For instance, http://docs.spring.io/autorepo/docs/spring/4.0.4.RELEASE/javadoc-api/org/springframework/web/servlet/handler/SimpleUrlHandlerMapping.html says:
Implementation of the HandlerMapping interface to map from URLs to request handler beans
And sometimes it says about controllers. For instance, there is an interface called org.springframework.web.servlet.mvc.Controller ( http://docs.spring.io/spring-framework/docs/2.5.x/api/org/springframework/web/servlet/mvc/Controller.html ).
My question is: are Controllers and Handlers the same?
java spring spring-mvc
add a comment |
The documentation of Spring MVC sometimes says about "handlers" or "request handlers". For instance, http://docs.spring.io/autorepo/docs/spring/4.0.4.RELEASE/javadoc-api/org/springframework/web/servlet/handler/SimpleUrlHandlerMapping.html says:
Implementation of the HandlerMapping interface to map from URLs to request handler beans
And sometimes it says about controllers. For instance, there is an interface called org.springframework.web.servlet.mvc.Controller ( http://docs.spring.io/spring-framework/docs/2.5.x/api/org/springframework/web/servlet/mvc/Controller.html ).
My question is: are Controllers and Handlers the same?
java spring spring-mvc
add a comment |
The documentation of Spring MVC sometimes says about "handlers" or "request handlers". For instance, http://docs.spring.io/autorepo/docs/spring/4.0.4.RELEASE/javadoc-api/org/springframework/web/servlet/handler/SimpleUrlHandlerMapping.html says:
Implementation of the HandlerMapping interface to map from URLs to request handler beans
And sometimes it says about controllers. For instance, there is an interface called org.springframework.web.servlet.mvc.Controller ( http://docs.spring.io/spring-framework/docs/2.5.x/api/org/springframework/web/servlet/mvc/Controller.html ).
My question is: are Controllers and Handlers the same?
java spring spring-mvc
The documentation of Spring MVC sometimes says about "handlers" or "request handlers". For instance, http://docs.spring.io/autorepo/docs/spring/4.0.4.RELEASE/javadoc-api/org/springframework/web/servlet/handler/SimpleUrlHandlerMapping.html says:
Implementation of the HandlerMapping interface to map from URLs to request handler beans
And sometimes it says about controllers. For instance, there is an interface called org.springframework.web.servlet.mvc.Controller ( http://docs.spring.io/spring-framework/docs/2.5.x/api/org/springframework/web/servlet/mvc/Controller.html ).
My question is: are Controllers and Handlers the same?
java spring spring-mvc
java spring spring-mvc
asked May 11 '15 at 10:43
user983447user983447
57611024
57611024
add a comment |
add a comment |
3 Answers
3
active
oldest
votes
Generally speaking, a Controller is Handler, but a Handler doesn't have to be a Controller.
For example, HttpRequestHandler
, WebRequestHandler
, MessageHandler
are all handlers which can work with the DispatcherServlet
. ( (@
)Controller is a handler for executing a web request and returning a view.)
Shortly, Handler is just a term, it is neither a class nor interface. And it is responsible for executing the Mapping.
add a comment |
A Controller
is a specific type of Handler
but not all Handler
s are Controller
s.
To execute a type of Handler
there is a HandlerAdapter
and for each type of Handler
there is a different HandlerAdapter
. You have Controller
and @Controller
, HttpRequestHandler
and also a plain Servlet
can be a Handler
. Or if you have some custom things you can even implement your own.
add a comment |
Handler is a inclusive i.e. covering all the services details.
Controller is an an exclusive implementation.
In Spring we have the following different types of handlers:
HandlerMapping
: TheHandlerMapping
strategy is used to map the HTTP client request to some handler controller(or controllers) and/or method. This is done based on the request URL and the HTTP method, but may also include the request parameters, request headers, or other custom factors.
For example:DefaultAnnotationHandlerMapping
,SimpleUrlHandlerMapping
,BeanNameUrlHandlerMapping
.
HandlerAdapter
: TheDispatcherServlet
uses a HandlerAdapter to invoke a method. Which is decouples theDispatcherServlet
from controller implementations classes.
For example:AnnotationMethodHandlerAdapter
,HttpRequestHandlerAdapter
,RequestMappingHandlerAdapter
,SimpleControllerHandlerAdapter
,SimpleServletHandlerAdapter
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f30165625%2fwhats-difference-between-controller-and-handler-in-spring-mvc%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
Generally speaking, a Controller is Handler, but a Handler doesn't have to be a Controller.
For example, HttpRequestHandler
, WebRequestHandler
, MessageHandler
are all handlers which can work with the DispatcherServlet
. ( (@
)Controller is a handler for executing a web request and returning a view.)
Shortly, Handler is just a term, it is neither a class nor interface. And it is responsible for executing the Mapping.
add a comment |
Generally speaking, a Controller is Handler, but a Handler doesn't have to be a Controller.
For example, HttpRequestHandler
, WebRequestHandler
, MessageHandler
are all handlers which can work with the DispatcherServlet
. ( (@
)Controller is a handler for executing a web request and returning a view.)
Shortly, Handler is just a term, it is neither a class nor interface. And it is responsible for executing the Mapping.
add a comment |
Generally speaking, a Controller is Handler, but a Handler doesn't have to be a Controller.
For example, HttpRequestHandler
, WebRequestHandler
, MessageHandler
are all handlers which can work with the DispatcherServlet
. ( (@
)Controller is a handler for executing a web request and returning a view.)
Shortly, Handler is just a term, it is neither a class nor interface. And it is responsible for executing the Mapping.
Generally speaking, a Controller is Handler, but a Handler doesn't have to be a Controller.
For example, HttpRequestHandler
, WebRequestHandler
, MessageHandler
are all handlers which can work with the DispatcherServlet
. ( (@
)Controller is a handler for executing a web request and returning a view.)
Shortly, Handler is just a term, it is neither a class nor interface. And it is responsible for executing the Mapping.
edited Nov 22 '18 at 10:10
Marcin Kulik
36110
36110
answered May 11 '15 at 10:56
MChakerMChaker
1,8791233
1,8791233
add a comment |
add a comment |
A Controller
is a specific type of Handler
but not all Handler
s are Controller
s.
To execute a type of Handler
there is a HandlerAdapter
and for each type of Handler
there is a different HandlerAdapter
. You have Controller
and @Controller
, HttpRequestHandler
and also a plain Servlet
can be a Handler
. Or if you have some custom things you can even implement your own.
add a comment |
A Controller
is a specific type of Handler
but not all Handler
s are Controller
s.
To execute a type of Handler
there is a HandlerAdapter
and for each type of Handler
there is a different HandlerAdapter
. You have Controller
and @Controller
, HttpRequestHandler
and also a plain Servlet
can be a Handler
. Or if you have some custom things you can even implement your own.
add a comment |
A Controller
is a specific type of Handler
but not all Handler
s are Controller
s.
To execute a type of Handler
there is a HandlerAdapter
and for each type of Handler
there is a different HandlerAdapter
. You have Controller
and @Controller
, HttpRequestHandler
and also a plain Servlet
can be a Handler
. Or if you have some custom things you can even implement your own.
A Controller
is a specific type of Handler
but not all Handler
s are Controller
s.
To execute a type of Handler
there is a HandlerAdapter
and for each type of Handler
there is a different HandlerAdapter
. You have Controller
and @Controller
, HttpRequestHandler
and also a plain Servlet
can be a Handler
. Or if you have some custom things you can even implement your own.
answered May 11 '15 at 10:57
M. DeinumM. Deinum
71.6k14145151
71.6k14145151
add a comment |
add a comment |
Handler is a inclusive i.e. covering all the services details.
Controller is an an exclusive implementation.
In Spring we have the following different types of handlers:
HandlerMapping
: TheHandlerMapping
strategy is used to map the HTTP client request to some handler controller(or controllers) and/or method. This is done based on the request URL and the HTTP method, but may also include the request parameters, request headers, or other custom factors.
For example:DefaultAnnotationHandlerMapping
,SimpleUrlHandlerMapping
,BeanNameUrlHandlerMapping
.
HandlerAdapter
: TheDispatcherServlet
uses a HandlerAdapter to invoke a method. Which is decouples theDispatcherServlet
from controller implementations classes.
For example:AnnotationMethodHandlerAdapter
,HttpRequestHandlerAdapter
,RequestMappingHandlerAdapter
,SimpleControllerHandlerAdapter
,SimpleServletHandlerAdapter
add a comment |
Handler is a inclusive i.e. covering all the services details.
Controller is an an exclusive implementation.
In Spring we have the following different types of handlers:
HandlerMapping
: TheHandlerMapping
strategy is used to map the HTTP client request to some handler controller(or controllers) and/or method. This is done based on the request URL and the HTTP method, but may also include the request parameters, request headers, or other custom factors.
For example:DefaultAnnotationHandlerMapping
,SimpleUrlHandlerMapping
,BeanNameUrlHandlerMapping
.
HandlerAdapter
: TheDispatcherServlet
uses a HandlerAdapter to invoke a method. Which is decouples theDispatcherServlet
from controller implementations classes.
For example:AnnotationMethodHandlerAdapter
,HttpRequestHandlerAdapter
,RequestMappingHandlerAdapter
,SimpleControllerHandlerAdapter
,SimpleServletHandlerAdapter
add a comment |
Handler is a inclusive i.e. covering all the services details.
Controller is an an exclusive implementation.
In Spring we have the following different types of handlers:
HandlerMapping
: TheHandlerMapping
strategy is used to map the HTTP client request to some handler controller(or controllers) and/or method. This is done based on the request URL and the HTTP method, but may also include the request parameters, request headers, or other custom factors.
For example:DefaultAnnotationHandlerMapping
,SimpleUrlHandlerMapping
,BeanNameUrlHandlerMapping
.
HandlerAdapter
: TheDispatcherServlet
uses a HandlerAdapter to invoke a method. Which is decouples theDispatcherServlet
from controller implementations classes.
For example:AnnotationMethodHandlerAdapter
,HttpRequestHandlerAdapter
,RequestMappingHandlerAdapter
,SimpleControllerHandlerAdapter
,SimpleServletHandlerAdapter
Handler is a inclusive i.e. covering all the services details.
Controller is an an exclusive implementation.
In Spring we have the following different types of handlers:
HandlerMapping
: TheHandlerMapping
strategy is used to map the HTTP client request to some handler controller(or controllers) and/or method. This is done based on the request URL and the HTTP method, but may also include the request parameters, request headers, or other custom factors.
For example:DefaultAnnotationHandlerMapping
,SimpleUrlHandlerMapping
,BeanNameUrlHandlerMapping
.
HandlerAdapter
: TheDispatcherServlet
uses a HandlerAdapter to invoke a method. Which is decouples theDispatcherServlet
from controller implementations classes.
For example:AnnotationMethodHandlerAdapter
,HttpRequestHandlerAdapter
,RequestMappingHandlerAdapter
,SimpleControllerHandlerAdapter
,SimpleServletHandlerAdapter
edited May 29 '18 at 3:31
answered Jun 2 '16 at 2:09
PremrajPremraj
32.6k14162123
32.6k14162123
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f30165625%2fwhats-difference-between-controller-and-handler-in-spring-mvc%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown