(二)springMvc 入门
目录
配置前端控制器
在 web.xml 配置 DispatcherServlet
<!-- **************************** 配置springMvc前端控制器(DispatcherServlet)************************* -->
<!--前端控制器是个servlet,因此,这里就像配置servlet一样-->
<servlet>
<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--初始化读取配置文件,我们指定配置文件在哪;
否则默认加载 /WEB-INF/servlet-name-servlet.xml
我们这里的 servlet-name 是 springMvc ,那么就是去加载 servlet-name.xml
-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:xin/ijava/ssm/config/springMvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springMvc</servlet-name>
<!--
1、 *.action 拦截 .action 结尾的url
2、/ 拦截所有url,即使是访问 静态资源也会被拦截,全部走前端控制器,可以实现 resultFul 风格的url
3、/* 这样配置不对,当转发到jsp页面时,还是会交给前端控制器,去找处理器
-->
<url-pattern>*.action</url-pattern>
</servlet-mapping>
servlet拦截方式
拦截固定后缀的
url比如
*.action、*.do;这种拦截,不会拦截静态资源,因为静态资源的后缀,css , js , jpg , png ...不再拦截的范围内 ;拦截所有
url设置为
/;这样静态资源也会被拦截,导致不能正常显示,需要做特殊处理 ;
springMvc的配置文件
跟 spring 的配置文件一样,我们的 处理器映射器、处理器适配器、视图解析器 都在其中进行配置 ;
其中 视图解析器 用到 JSTL 注意导入包。
<!--配置处理器适配器-->
<!--所有的处理器适配器,都实现了 HandlerAdapter -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
<!--配置适配器映射器-->
<!--bean的名字,就是映射 map 中的键 -->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"/>
编写处理器类
自定义处理器类,需要实现 Controller 接口 ;
/**
* 自定义 处理器类。所有处理器都需要实现 Controller 接口,
* 包不要导入错了,导 mvc 下面的包
* @author An
*/
public class ItemsController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
List<Item> items = new ArrayList<>() ;
Item item1 = new Item();
item1.setId(001);
item1.setName("锋麦笔记本");
Item item2 = new Item();
item1.setId(999);
item1.setName("牛奶");
items.add(item1) ;
items.add(item2) ;
// 创建 ModelAndView
ModelAndView modelAndView = new ModelAndView() ;
// 添加model,也就是数据。(键值对)
// 在页面中取数据,就是根据键名
modelAndView.addObject("items",items) ;
// 添加视图,也就是界面
modelAndView.setViewName("/WEB-INF/jsp/Item/ItemController.jsp0");
return modelAndView;
}
}
配置自定义处理器
<!--配置自定义处理器 -->
<!-- name 就是url地址-->
<bean name="/queryItems.action" class="xin.ijava.ssm.controller.ItemsController"/>
(二)springMvc 入门的更多相关文章
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)--S ...
- SpringMVC入门学习(二)
SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...
- SpringMVC.入门篇《二》form表单
SpringMVC.入门篇<二>form表单 项目工程结构: 在<springmvc入门篇一.HelloWorld>基础上继续添加代码,新增:FormController.ja ...
- springMVC入门二
一.准备工作 参考springMVC入门一,搭建maven项目如下: 前台结构如下: 项目介绍:使用springMVC实现前后台数据交互,例如controller返回json,页面传入pojo 二.具 ...
- Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...
- 【SSM】学习笔记(二)——SpringMVC入门
原视频链接:https://www.bilibili.com/video/BV1Fi4y1S7ix/?p=43&spm_id_from=pageDriver&vd_source=8ae ...
- 【Spring】SpringMVC入门示例讲解
目录结构: // contents structure [-] SpringMVC是什么 Spring MVC的设计原理 SpringMVC入门示例 1,复制Jar包 2,Web.xml文件 3,My ...
- SpringMVC入门(基于XML方式实现)
----------------------siwuxie095 SpringMVC 入门(基于 XML 方式实现) (一)搭建 SpringMVC 环境 1.先下载相关库文件,下载链接: (1)ht ...
- 零基础学习java------38---------spring中关于通知类型的补充,springmvc,springmvc入门程序,访问保护资源,参数的绑定(简单数据类型,POJO,包装类),返回数据类型,三大组件,注解
一. 通知类型 spring aop通知(advice)分成五类: (1)前置通知[Before advice]:在连接点前面执行,前置通知不会影响连接点的执行,除非此处抛出异常. (2)正常返回通知 ...
随机推荐
- 安装包设计-------安装(QT)---------知识总结
1.判断文件是否存在 QFile file(path): file.exists(); 2.复制文件 bool copy(const QString &fileName, const QStr ...
- 【线性代数】6-6:相似矩阵(Similar Matrices)
title: [线性代数]6-6:相似矩阵(Similar Matrices) categories: Mathematic Linear Algebra keywords: Similar Matr ...
- I Hate It (HDU 1754)
Problem 很多学校流行一种比较的习惯.老师们很喜欢询问,从某某到某某当中,分数最高的是多少. 这让很多学生很反感. 不管你喜不喜欢,现在需要你做的是,就是按照老师的要求,写一个程序,模拟老师 ...
- elasticsearch各种服务链接
查看elasticsearch信息http://localhost:9200/ 查看某个索引信息http://localhost:9200/index_name例如:http://localhost: ...
- plus.zip.compressImage 压缩报错{"code":-5,"message":"输出图片失败"}
var pathCompress = "_doc/" + getNowFormatDate(new Date()) + ' ' + Math.random() + ".c ...
- 从 10.x 到 ArcGIS Pro 的 Python 迁移
与 ArcGIS Pro 结合使用 Python 的方式与包括 ArcGIS Desktop.ArcGIS Server 以及 ArcGIS Engine 在内的其他 ArcGIS 产品不同. 地理处 ...
- ccf 201803-2 碰撞的小球(Python)
问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒. 当小球到达线 ...
- PHP学习之工厂模式
<?php //工厂模式 interface Doing { function eat(); function sleep(); } class Cat implements Doing { f ...
- 09 Flutter底部Tab切换保持页面状态的几种方法
IndexedStack:保此所有页面的状态: AutomaticKeepAliveClientMixin:保此部分页面的状态: 修改的页面代码: 页面效果: Tabs.dart import 'pa ...
- eclipse、MyEclipse 修改字符集和JDK
eclipse 中UTF-8设置 1.windows->Preferences 打开"首选项"对话框: 2.然后,general->Workspace,右 侧Tex ...