springMVC:
MVC:是一个非常优秀的设计思想,将程序组件按照功能分成模型(M)视图(V)控制器(C)
Model:处理业务,逻辑+数据 javabean dao
View: 显示或接收数据 jsp
Control: 接收请求分发给模型处理,然后根据处理结果调用视图响应. servlet
SpringWebMVC:根据MVC思想编写的一套框架
jsp+javabean+servlet:struts1,SpringWebMVC
jsp+filter+javabean:struts2
案例: SpringMVC 之 HelloWorld
发出一个hello.do,显示hello.jsp页面
流程:
hello.do ->DispatcherServlet -> HandlerMapping -> HelloController ->[如涉及业务逻辑 Service, DAO] ->ViewResolver->hello.jsp
搭建开发环境:
需要jar包:
IoC:
commons-logging.jar
spring-beans-*.RELEASE.jar
spring-context-*.RELEASE.jar
spring-core-*.RELEASE.jar
spring-expression-*.RELEASE.jar
AOP:
aopalliance.jar
aspectjweaver.jar
spring-aop-*.RELEASE.jar
spring-aspects-*.RELEASE.jar
MVC:
jstl.jar
spring-web-*.RELEASE.jar
spring-webmvc-*.RELEASE.jar
standard.jar
其他jar包根据需要进行添加
案例实现:
<!-- 配置controller -->
<bean id="helloContorller" class="controller.HelloContorller"></bean>
<!-- 配置HandlerMapping -->
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<!-- 指定视图名称 -->
<prop key="/hello.do">helloContorller</prop>
</props>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 指定视图资源后缀 -->
<property name="suffix" value=".jsp"></property>
<!-- 指定视图资源前缀 /表示webroot -->
<property name="prefix" value="/"></property>
</bean>
controller实现代码 HelloContorller.java:
/**
* XML方式的Controller 限制较为严格,必须实现Controller接口
* @author haifeng
*
*/
public class HelloContorller implements Controller {
//处理请求的方法
//ModelAndView封装了模型数据以及视图名称
@Override
public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
//加入视图名
ModelAndView mav = new ModelAndView();
mav.setViewName("hello");
//加入消息
mav.getModel().put("message", "HOW ARE YOU!");
return mav;
}
}
在项目根目录下创建一个hello.jsp,即可进行部署。