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,即可進行部署。