MVC模式介绍
M:Model---数据模型
V:view---视图
C:Controller---控制层
Model1 and Model2 两种开发模式,其实也是一种mvc的体现,只不过使用的方式不同。
Model1:jsp由来,是由servlet演变而来。 Jsp项目开发!
VandC:都是由jsp来充当! Jsp中是不是可以写java代码。
小脚本: <% java代码 %> <%!声明全局变量%> 表达式<% =变量 %>
Model2:jsp,servlet来完成!
C:servlet来管理,控制显示
V:jsp—来完成视图显示
市场上主流的MVC框架
SpringMVC:
Struts:
JFinal:
SpringMVC简介
1、 SpringMVC:是Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块,容易和spring整合,父子容器的关系.
2、 SpringMVC:本质是一个纯正的Servlet系统.只不过是将多个servlet整合到了一起。统一由SpringMVC来管理。
a) Jsp+servlet+jdbc: CRUD: 功能可以写在一个servlet中,如果写在一个servlet中,则必须要加以判断:if(flg==1){add} else if(fla==2){delete }else if(flg==3){update}
3、核心控制器:DispatcherServlet
SpringMVC环境搭建
导入jar包
commons-logging-1.1.3.jar jstl-1.2.jar spring-aop-4.1.6.RELEASE.jar spring-aspects-4.1.6.RELEASE.jar spring-beans-4.1.6.RELEASE.jar spring-context-4.1.6.RELEASE.jar spring-context-support-4.1.6.RELEASE.jar spring-core-4.1.6.RELEASE.jar spring-expression-4.1.6.RELEASE.jar spring-instrument-4.1.6.RELEASE.jar spring-instrument-tomcat-4.1.6.RELEASE.jar spring-jdbc-4.1.6.RELEASE.jar spring-jms-4.1.6.RELEASE.jar spring-messaging-4.1.6.RELEASE.jar spring-orm-4.1.6.RELEASE.jar spring-oxm-4.1.6.RELEASE.jar spring-test-4.1.6.RELEASE.jar spring-tx-4.1.6.RELEASE.jar spring-web-4.1.6.RELEASE.jar spring-webmvc-4.1.6.RELEASE.jar spring-webmvc-portlet-4.1.6.RELEASE.jar spring-websocket-4.1.6.RELEASE.jar standard-1.1.2.jar |
创建web.xml:配置核心控制器
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>01springmvc</display-name> <!-- 配置核心控制器 --> <servlet> <servlet-name>mvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--当程序运行的时候就加载读取servlet、DispatcherServlet --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc</servlet-name> <!-- url-pattern 配置方式 /代表当前目录表示拦截所有请求 *.action 表示拦截以.action为结尾的请求 *.xxx /*错误的配置方式 --> <url-pattern>*.do</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> |
配置springmvc的核心配置文件
核心配置文件配置在哪?如果是配置在WEB-INF下,则配置核心配置文件命名有个默认规则:<servlet-name>mvc</servlet-name> - servlet.xml即: mvc-servlet.xml;
适配器SimpleControllerHandlerAdapter
映射器BeanNameUrlHandlerMapping
试图解析器InternalResourceViewResolver
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!-- 适配器 --> <bean class="org.springframework.web.portlet.mvc.SimpleControllerHandlerAdapter"></bean> <!-- 映射器 --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <!-- 视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 视图显示 --> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> <!-- 配置前缀:在每次运行之前,加一个路径--> <property name="prefix" value="/WEB-INF/jsp/"></property> <!-- 添加后缀:在每次请求完之后,加一个后缀名 --> <property name="suffix" value=".jsp"></property> </bean> </beans> |
编写控制器
public class UserController implements Controller {
@Override public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception { ModelAndView mv = new ModelAndView(); // 设置视图名 mv.setViewName("index"); // 存储值 mv.addObject("msg", "敌军还有五秒到达战场!"); return mv; } } |
继续编写springmvc的核心配置文件,将controller添加到核心配置文件中
<!-- 添加controller --> <bean id="con" name="/index.do" class="com.bjsxt.controller.UserController"></bean> |
测试:
http://localhost:8080/01springmvc/index.do
结果是:敌军还有五秒到达战场!