springMVC笔记
来源:互联网 发布:odi 绿地 并购 数据 编辑:程序博客网 时间:2024/04/29 13:59
SpringMVC
什么是SpringMVC?
前台框架,负责与前台页面的交互。取代servlet的位置。
Servlet的缺点:
1、配置繁琐:一个servlet对饮着一个servlet的配置信息。
2、局限性高:一个servlet只能处理一种逻辑。
3、结构单一:每次只能是使用request.getParameter(),而且得到的只能是String类型。
springMVC的调用过程:
一个控制器:前端控制器。(DispatherServlet)(核心分发器)
三个适配器:处理器适配器(handlerMapping)
处理器映射器(handlerAdapter)(xml或注解的解析)
视图解析器(viewResolver)
不使用注解时:
springMVC的实现步骤:
1、在web.xml中编写一个<servlet>以完成前端控制器的配置
<servlet>
<servlet-name>springmvc </>
<servlet-class>前端控制器的路径</>
</servlet>
<servlet-mapping>
<servlet-name>springmvc </>
<url-pattern>*.action</>//过滤器
</>
2、配置handlerMapping处理器映射器
处理器映射器的名称为servlet-name的值-servlet.xml(springmvc-servlet.xml)。
在里面配置映射的关系
<bean id=”/hello.action” class=”hello类的全路径”></>
进行视图处理,即在视图前后添加路径。
<bean id=”视图解析器的id” class=”视图解析器的全路径名称”>
<property name=”prefix” value=”/WEB-INF/”></>
<property name=”suffix” value=”.jsp”></>
</>
3、写处理器
处理类实现Controller接口
其中用modelAndVeiw去接收model和view的两个数据
Modelandveiw.addObject(“属性”,”值”);
Modelandveiw.setviewname(“hello”);
并返回接收对象。
此配置方式还存在的问题有:
1、spring的配置文件应该在src中,而不是WEB-INF中,还有就是配置文件的名称在给定servlet的名字时已经固定了。
解决方法:在servlet中设置一个init-param将配置文件的位置放置于src中,名字也可以改变。
2、在当前的handle中,只能执行一个方法,与之前的servlet存在相同的问题?
解决方法:使用注解的方式。可以很好的解决这个问题。
3、如何获取页面中的参数呢?
解决方法:只需要确保在页面中的参数的名称与Controller中的名称一致,即可获取任意类型的参数。
SpringMVC的注解实现的步骤:
1、在web.xml中将servlet配置完成,还要讲springMVC的初始化参数进行配置。
2、在springMVC的配置文件中配置MVC的注解<mvc:annotation-driver/>;开启类扫描<context:Component-scan base-package=”包名”>;开启视图解释器。
3、在Controller文件中配置注解,类上的注解@Component或@Controller;在对应的方法上对具体的方法进行过滤@RequestMapping(value=”/hello.action”),当Controller的数据的名称与页面中名称不一致时可以使用@RequestParam(value=”页面中的名称”) Controller中的名称。没有modelandview对象,可以使用Model对象在页面与Controller中进行数据的传输。其中的方法为model.addAttribute(“属性”,”值”)。在此类中能写多个方法。
重定向:“redirect:/”
- springMVC 笔记
- springMVC 笔记
- springmvc 笔记
- springMVC笔记
- springmvc笔记
- SpringMVC笔记
- SpringMVC笔记
- springmvc笔记
- 【springmvc笔记】
- springMVC 笔记
- springmvc笔记
- SpringMVC笔记
- SpringMVC笔记
- springmvc笔记
- springMVC笔记
- springMVC笔记
- springmvc笔记
- springMVC笔记
- CAN/RS485隔离收发模块在直流充电桩上的应用
- 模拟时钟
- 杭电oj编码2021
- GnuPG教程(一)-CLI
- 开发中尽量用fragment代替activity来完成跳转,那么如何用fragment来替换activity来替换呢???
- springMVC笔记
- leetcode(4) - Median of Two Sorted Arrays
- 处理tcp粘包问题
- docker容器资源配额控制
- STL学习1——简介
- 使用next-key locks 用于搜索和索引扫描,可以防止幻读
- 支持向量机的近邻理解:图像二分类为例(2)
- java基础3
- 统计偶数1~100间的个数及其累加结果