1.简要说明:

Spring为展现层提供的基于MVC设计理念的优秀web框架,目前主流的框架

Spring3.0以后全面超越Struts2,成为最优秀的MVC框架

Spring MVC通过一套MVC注解,让pojo成为处理请求控制器,无需实现任何接口

支持REST风格URL请求

是Spring框架的一个模块,无需通过中间层进行整合

2.在b/s系统下的

 3.springmvc的流程:

 
前端控制器DispacherServlet
作用:接受请求,响应结果,相当于转发器,中央处理器
 
处理器映射器HandlerMapping
作用:根据请求的url查找Handler
 
处理器适配器HandlerAdapter
作用:按照特定的规则(HandlerAdapter)的要求去执行handler
注意:编写handler时按照HandlerAdpter的要求去做
 
视图解析器View resource
作用:进行视图解析,根据逻辑视图名解析成真的视图
 
视图View
View是一个接口,实现支持不同的View类型(jsp,pdf...)

 4.简单的小代码实例:

新建一个web工程!

 4.1 首先是web.xml文件中

 <!-- 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--
contextConfigLocation配置springmvc加载的配置文件(配置处理器映射器,设配器等...)
如果不配置contextConfigLocation,默认加载的是/web-INF/servletName-servlet.xml

此时实例--->(springmvc-servlet.xml)
-->

<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>

注意: <url-pattern>*.action</url-pattern>中的类型

one: *.action 访问以  .action 结尾由 DispatcherServlet进行解析
two:    /    所以访问的地址由DispatcherServlet进行解析,,对于静态文件的解析需要配置不让DispatcherServlet进行解析
three:  /*   这压根配置不对,使用这种配置,最终需要转发到一个jsp页面时,仍然由DispatcherServlet
                解析jsp地址,不能根据jsp页面找到hander会报错

第三种不能使用

 4.2配置处理器适配器

在在springmvc.xml文件中

<!-- 处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

所有的处理器适配器都实现了HandlerAdapter接口

观察源代码发现:

public interface HandlerAdapter {
boolean supports(Object handler);
...
}

supports:支持哪一种handler

SimpleControllerHandlerAdapter.java

实现Controller接口的handler

观察Controller.java代码

所以此时需要实现Contoller接口

public class ItemsController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { List<Items> itemsList = new ArrayList<Items>();
//向list中填充静态数据 Items items_1 = new Items();
items_1.setName("手机");
items_1.setPrice(3000f);
items_1.setDetail("一个新款的手机"); itemsList.add(items_1); ModelAndView modelAndView = new ModelAndView();
//相当于request的setAttribute
modelAndView.addObject("itemsList", itemsList); //指定视图
modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
return modelAndView;
}
}

modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");

这句话的意思即是我们需要新建的jsp文件以及相关的路径问题

即视图:

itemsList.jsp

商品列表:
<table width="100%" border=>
<tr>
<td>商品名称</td>
<td>商品价格</td>
<td>生产日期</td>
<td>商品描述</td>
<td>操作</td>
</tr>
<c:forEach items="${itemsList }" var="item">
<tr>
<td>${item.name }</td>
<td>${item.price }</td>
<td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${item.detail }</td> <td><a href="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改</a></td>
</tr>
</c:forEach>
</table>
</form>

4.3配置....

springmvc.xml文件中

配置handler

<!-- 配置Handler -->
<bean name="/queryItems.action" class="com.MrChengs.controller.ItemsController"></bean>

class是全类名

name是请求的url

 

配置处理器映射器

<!-- 处理器映射器 -->
<!-- 将bean的name作为url进行查找,需要配置Handler时指定beanName -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

  

配置视图解析器

<!-- 视图显示器 -->
<!-- 解析jsp视图 -->
<!-- 默认使用jstl的包 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>

然后运行Tomcat:访问即可看到结果

SpringMVC(1)的更多相关文章

  1. 【.net开发者自学java系列】使用Eclipse开发SpringMVC(3)

    [.net开发者自学java系列]使用Eclipse开发SpringMVC(3) 标签(空格分隔): Spring RESTful 很久没继续学习java的spring了.接下来继续 回忆一下上个随笔 ...

  2. 整合SSM框架必备基础—SpringMVC(下)

    在上一篇文章<整合SSM框架必备基础-SpringMVC(上)>中,胖达介绍了关于SpringMVC的诞生.优势以及执行流程等理论知识点,这篇文章打算在实操中加深一下对SpringMVC的 ...

  3. SSM框架之SpringMVC(6)异常处理及拦截器

    SpringMVC(6)异常处理及拦截器 1.异常处理 1.1.异常处理的思路 ​ 系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主 ...

  4. SSM框架之SpringMVC(5)文件上传

    SpringMVC(5)文件上传 1.实现文件上传的前期准备 1.1.文件上传的必要前提 A form 表单的 enctype 取值必须是: multipart/form-data(默认值是:appl ...

  5. SSM框架之SpringMVC(4)返回值类型及响应数据类型

    SpringMVC(4)返回值类型及响应数据类型 1. 返回值分类 1.1. 返回字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器为物理视图的地址. @RequestM ...

  6. SSM框架之SpringMVC(3)常用注解

    SpringMVC(3)常用注解 1. RequestParam注解 1.作用:把请求中指定名称的参数传递给控制器中的形参赋值 2.属性: ​ 1.value:请求参数的每次 ​ 2.required ...

  7. SSM框架之SpringMVC(2)参数绑定及自定义类型转换

    SpringMVC(2)参数绑定及自定义类型转换 1.请求参数的绑定 1.1. 请求参数的绑定说明 1.1.1.绑定机制 表单提交的数据都是k=v格式的 username=haha&passw ...

  8. SSM框架之SpringMVC(1)入门程序

    SpringMVC(1) 1.三层架构和MVC 1.1. 三层架构 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序 使用Java语言基本上都是开发B/S架构的程序,B ...

  9. SpringMVC(8)国际化

    在SpringMVC(七)格式化显示中我们讲了数据的格式化显示,Spring在做格式化展示的时候已经做了国际化处理,那么如何将我们网站的其它内容(如菜单.标题等)做国际化处理呢?这就是本篇要将的内容- ...

  10. SpringMVC(7)格式化显示

    在SpringMVC(六)数据验证中我们介绍了如何验证提交的数据的正确性,当数据验证通过后就会被我们保存起来.保存的数据会用于以后的展示,这才是保存的价值.那么在展示的时候如何按照要求显示?(比如:小 ...

随机推荐

  1. 8、导航:Nav

    1.导航视图   angular2 中的是视图是显示在<router-outlet></router-outlet>里的同时他要依赖于 directives:[ ROUTER_ ...

  2. mybatis学习之高级映射

    一对一映射查询 1.数据库执行脚本: /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.11-log : Database - db_mybatis *** ...

  3. 前端(二):css样式

    本节笔记根据css中文手册整理,内容已做成思维导图.下载地址https://files.cnblogs.com/files/kuaizifeng/css.xmind.zip. css(Csacadin ...

  4. go install runtime/cgo: open /usr/local/go/pkg/darwin_amd64/runtime/cgo.a: permission denied

    在做更新时,收到下面提示: go get  github.com/astaxie/beego go install runtime/cgo: open /usr/local/go/pkg/darwin ...

  5. new date()标准时间转yyyy-mm-dd hh:mm 24小时制

    <!DOCTYPE html> <html> <head> <title>new date()标准时间转yyyy-mm-dd hh:mm 24小时制&l ...

  6. 爬虫之lxml - etree - xpath的使用

    # 解析原理: # - 获取页面源码数据 # - 实例化一个etree对象,并且将页面源码数据加载到该对象中 # - 调用该对象的xpath方法进行指定标签定位 # - xpath函数必须结合着xpa ...

  7. VScode设置jsx语法自动补全

    1.打开VScode 2.文件>首选项>设置 3.加上以下配置项就可以了 "emmet.includeLanguages": { "javascript&qu ...

  8. Oracle数据库中设置表字段为自动序列

    --创建序列 increment ; --创建触发器 create or replace trigger zonecode_trigger before insert on org_HospitalZ ...

  9. 基于Vue的WebApp项目开发(一)

    了解webpack的魔力: 项目结构以及开发环境 webpack初体验之打包文件 1.首先创建三个文件,分别是index.html.main.js和calc.js index.html <!DO ...

  10. WebService性能测试

    什么是WebService?(本文也会在最下面通俗的介绍) 这里给一个站内大哥的讲解:http://www.cnblogs.com/Leo_wl/archive/2010/05/20/1740205. ...