SpringMVC导入

MVC是一个设计模式,来源于web2.0
如下图所示:
在这里插入图片描述
浏览器发一个http请求到控制器(基于http协议,发一个request,接收一个response响应)
控制器:接受客户的请求,转发到其他的组件,然后调用业务逻辑。
模型层:(业务层),访问持久层
持久层:用来对数据进行持久化,真正访问数据库的。
就是 把O(Object)到R(Relations)做一个映射
把一个类映射成数据库中的一张表,把属性映射成表中的字段。
如上图所示,在直线上,是个面向对象的过程(Object)。
上层依赖与下层,下层不依赖与上层。
SpringMvc
如下图所示:
在这里插入图片描述
操作步骤机器功能。
1.用户发一个HTTP请求到前端控制器。
前端控制器的作用:(1)截取url (2)转向
2. 处理器映射器:接受查找的Handler,组装后返回查找的Handler到前端控制器。将其请求到处理器适配器。
3.处理器适配器:【注:适配器是一种模式】(按一定的规则,执行处理器)执行处理器。
4.处理器的功能:
(1)获取表单参数,
(2)调用业务逻辑,
(3)转发到其他的web组件。
5.处理器返回ModelAndView给适配器。适配器再将其返回给前端控制器。
6.前端控制器将ModelAndView发送给视图解析器。
视图解析器作用:将逻辑视图转换为物理视图,返回物理视图给前端控制器。
7. 到JSP:请求真实物理视图。(真实视图只是一个框架,里面没有东西)
8.填充model到视图中并返回。
在此给出一个简单的实例:
在新建项目时选中下图中的目录,项目就会自动生成webapp目录
在这里插入图片描述
当下面显示BUILD SUCCESS,则表示成功,可以继续进行。
配置xml,注入依赖
在这里插入图片描述
接下来配置处理器映射器,处理器适配器,处理器,视图解析器。
有两种方式:
(1)配置的方式
先建一个普通的处理器的类
然后对其进行配置

   <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
    <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/abc.action">handler2</prop>
                <prop key="/ming.action">handler1</prop>
            </props>
        </property>
    </bean>
    <!--处理器映射器-->
    <!--处理器适配器-->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
    <bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
    <!--处理器-->
    <bean id="handler1" name="/handler1.action" class="com.ming.controller.Handler1"/>
    <bean id="handler2" class="com.ming.controller.Handler2"/>
    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/jsps/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

(2)注解

 <!-- Mapping + Adapter-->
    <mvc:annotation-driven/>
     <context:component-scan base-package="com.zh.controller"/>
 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>        //扫描包
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

上述的注解方式太长了,不方便记忆,我们可以将其修改为以下的写法。

 <context:component-scan base-package="com.zh.controller"/>
    
    <mvc:annotation-driven/>

我们在处理器的类中实现模拟数据库的方法
然后编写适配器和映射器
在jsp文件中通过一个表格做。
showItemsList.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>  //通过一个标签导入
<html>
<head>
    <title>Title</title>
</head>
<body>
<table border="1" align="center">
    <tr>
        <th>ItemsId</th>
        <th>ItemsName</th>
        <th>ItemsPrice</th>
    </tr>

    <c:forEach items="${itemsListKey}" var="items">
        <tr>
            <td>${items.itemsId}</td>
            <td>${items.itemsName}</td>
            <td>${items.itemsPrice}</td>
        </tr>
    </c:forEach>
</table>
</body>
</html>

本次示例的运行结果:
运行出来的初始界面:
在这里插入图片描述
在http://localhost:8081后面添加/showItemsList.action,回车得到最终的结果
在这里插入图片描述
注意事项:控制器类前记得加@Controller

完整的项目工程请见github链接
https://github.com/zhdfuture/SpringMvc/commit/9b2c0d625e98ddf9d7ae1a0dbff112983027686c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值