Springmvc 知识点+案例
来源:互联网 发布:天下游源码 编辑:程序博客网 时间:2024/06/01 10:26
1.Springmvc是什么
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
1、DispacherServlet前端控制器
负责用户请求和响应,是一个中央控制器(调度),调用HandlerMapping查找Handler,调用HandlerAdapter处理器适配器执行Handler,调用ViewResolver视图解析器去解析视图,有了DispacherServlet有利于框架扩展,减少了各各组件之间耦合性。
2、HandlerMapping处理器映射器
不需要开发,使用框架提供的
负责查找Handler(常用action),通过xml配置方式或注解方式将Handler类和request请求Handler链接地址进行对应配置。
3、HandlerAdapter处理器适配器
不需要开发,使用框架提供的
Springmvc提供了很多种适配器,注解适配器支持注解开发、原始servlet适配器(HanderRequestAdapter)支持原始servlet的执行。
负责执行Handler,适配器是按照一定的规则去执行Handler,调用Handler返回的结果是ModelAndView,ModelAndView将Model和view封装起来(模型数据和视图)
4、ViewResolver视图解析器
不需要开发,使用框架提供的
负责进行视图解析,返回View,框架执行很多类型的View(jstlView、pdfView。。。)
5、Handler处理器(需要开发)
需要开发,按照适配器的规则开发,比如适配器要求Handler实现某个接口,Handler必须实现接口。
6、View视图页面(jsp)(需要开发)
需要开发,jsp+jstl。为了视图通用性建议使用第三方框架,jstl。
处理器映射器、处理器适配器、视图解析器称为springmvc的三大件。
案例 1:首先我们看controller
我们需要是实现Controller接口,然后我们重写handleRequest方法 ,这个方法返回的值的ModelAndView 所有我 们需要创建一个ModelAndView返回返回他,
一个addObject属性 是可以在页面上传值的,第二个传的是路径。
public class FilstController implements Controller { public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv=new ModelAndView(); mv.addObject("name","我是一个美丽的 小女孩"); mv.setViewName("index"); return mv; }}
第二步我们看一下,web.xml按照基本 的步骤我们应该首先 配置 xml 实现前端控制器,最后一个大节点我们的是用来显示图片的 ,关于结尾 是.jpg的所有图片,
上面我们实现了DispatcherServlet,并且我们需要连接一个路径配置的xml springmvc .xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app> <display-name>Archetype Created Web Application</display-name> <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:springmvc02.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> <!--<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping>--></web-app>
第三步我们看springmvc.xml..首先 前俩个是图片显示的另外2种方法,然后BeanNameUrlHandlerMapping这个没什么用 ,写不写可以。
下面是配置视图解析器的配置。
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--图片显示--><!--<mvc:default-servlet-handler/>--><mvc:resources location="/img/" mapping="/img/**"></mvc:resources><bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <!-- <property name="mappings"> <props> <prop key="/hello.do">FilstController</prop> <prop key="/hehe.do">FilstController</prop> </props> </property> --> <property name="urlMap"> <map> <entry key="/hello.do" value="FilstController"></entry> <entry key="/hehe.do" value="FilstController"></entry> </map> </property> </bean> <!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/"></property> <property name="suffix" value=".jsp"></property> </bean><bean id="FilstController" class="cn.happy.springmvc01.FilstController"></bean></beans>
接下来我们是显示 的页面。我们会在页面上显示图片 还有我们传过去的name值。
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %><% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><html><head> <title>哈哈</title></head><body><h1>我是SpringMVC,你成功了!!!</h1><img src="<%=path%>/img/5.jpg"/><h2>${name}</h2></body></html>
示例2和1无太大的差别
不过是 示例1实现了Controller接口,而示例2是继承了AbstractController,不过把它的配置文件的类换一下,
而且这和带请求的限定
如果你只写了一个post但是你浏览网页是Get请求的话,那是不可以的。没了 就这些了。
- Springmvc 知识点+案例
- SpringMVC知识点
- SpringMvc知识点
- SpringMVC知识点
- springMVC 知识点
- springmvc知识点
- 彩票案例-封装知识点
- 彩票案例-知识点补充
- Quartz2D知识点聚合案例
- springMVC知识点总结
- SpringMVC知识点小结
- SpringMVC-基础知识点(一)
- SpringMVC-基础知识点(二)
- SpringMVC-基础知识点(三)
- SpringMVC 知识点整理
- springMVC知识点学习笔记
- SpringMVC知识点梳理
- springmvc的@RequestMapping知识点
- java的volatile关键字应注意的问题
- 敏捷项目管理流程-Scrum框架最全总结!
- 19.driverbase-分页与非分页宏定义
- context-params与init-params
- 网址中请求参数中%2c
- Springmvc 知识点+案例
- Python 中os与sys两模块的区别
- 微服务的12个要素
- Linux进程(一)
- quartz学习1
- WIN8.1虚拟机键盘不可用解决方案
- 跨域请求
- rails最简单调试
- 序列化的作用