传统MVC模式
全名Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。
通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
SpringMVC
大致流程如图
需要导入一些核心jar包
web.xml中DispatcherServlet的配置
<servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
默认会去WEB-INF下找(servlet-name)-servlet.xml
也可以使用如下配置(文件名需要和(servlet-name)中值一样)
<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springMVC.xml</param-value> </init-param>
接下来配置SpringMVC的配置文件
1.默认(根据Bean中name)
2.SimpleUrlHandlerMapping(根据id)
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/a.do">my1</prop> <prop key="/b.do">my2</prop> </props> </property> </bean> <bean id="my1" class="com.zhiyou100.xf.controller.MyController1"> </bean> <bean id="my2" class="com.zhiyou100.xf.controller.MyController2"> </bean>
3.ControllerClassNameHandlerMapping(类名除最后一个Controller小写)
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
对应的Controller
4.使用注解(需要额外的aop包)
<!-- 扫描包 --> <context:component-scan base-package="com.zhiyou100.xf.controller.annotation"> </context:component-scan> <!-- 开启注解 --> <mvc:annotation-driven />
controller
@Controller public class MyController { @RequestMapping("/login.do") public String login(String name) { System.out.println("登陆"); return "login"; } @RequestMapping("/exit.do") public String exit(String sex) { System.out.println("退出"); return "login"; } @RequestMapping("/select.do") public String select() { System.out.println("查询"); return "login"; } }
Springmvc的流程.
- 客户发出请求。http://localhost:8080/springmvc-01/my.do
- 到达web.xml文件中 DispatcherServlet.查看是否符合url的要求
- DispatcherServlet就会查询springmvc的配置文件。找HandlerMapping.
根据bean的名称查找相应的controller.
4.找到我的MyController类。执行该类中handleRequestInternal方法。
5.根据返回的modelAndView在找springmvc配置文件中视图解析器。
把viewName和prefix以及suffix做了一个拼接。把拼接的页面展示给客户。
##########################################
通过SpringMVC来接收参数
@Controller @RequestMapping("/user") public class MyController { @RequestMapping("/login.do")//对应的路径 public String login(String name) {//参数名必须和请求参数名相同 System.out.println("登陆"); return "login"; } @RequestMapping("/exit.do") public String exit(User u) {//属性名和请求参数名相同 System.out.println("退出"); return "login"; } @RequestMapping("/select.do") public String select() { System.out.println("查询"); return "login"; } }