modelandview

2.带你走进 SpringMVC 的世界

笑着哭i 提交于 2019-11-27 04:29:44
昨天跟大家从宏观上分享了一下SpringMVC,那今天老师就真正带大家进入SpringMVC的世界了。 1. 环境的搭建 需要导入spring的jar包,单纯的入门springmvc的话不需要导入所有的spring jar包,但是核心包和spring-web/spring-webmvc是一定要导入的,考虑到后面还会和mybatis整合,所以也导入了持久操作的包和aop的包,总共如下: 2. 配置前端控制器DispatcherServlet 前端控制器要配置在WEB-INF/web.xml中,如下: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>SpringMVC_Study</display-name> <welcome-file-list>

让我们一起走进SpringMvc(一)

丶灬走出姿态 提交于 2019-11-27 04:27:12
在讲述之前,首先讲一下什么是springMvc呢? 肯定很多人会说,这个谁不知道啊,springMvc不就是用来前后端交互的嘛,他就是一个框架嘛,让开发变得简单。当然这样理解也不是说不可以,只能说这样有点俗,哈哈 ,没有专业气质。好了 ,开个玩笑,现在可以正式说了,就我自己理解来说,springMvc是spring的一个子框架,它是基于mvc模式下的一个轻量级框架,无需中间整合层整合。它能够把业务处理和逻辑控制分离的很清楚。并且最舒服的是方便开发者的开发工作 (这句话显得我也没有专业气质,哈哈)。 既然说到mvc,那么何为mvc呢? mvc它的全英文是model,view,controller,三个单词的首字母小写,通过这几个单词我想你应该知道了吧,没错,就是模型,视图和控制器。那么可能你又想问:“什么是模型呢?什么是视图呢?什么是控制器呢?”;看知道你想问的这么多,我瞬间想说:”那有那么多问题,自己百度去”。但是博主是不会说的。博主还是爱你们的,我就和你们解释一下,模型(model)它其实就是存储数据的一个对象或者java的pojo。通常就是在与数据库交互时拿到的结果集,它将把这些数据返回给控制器。控制器就是作用在视图和模型上的,把二者分离。(它就相当一个桥梁,沟通你我的心)它通常把model返回的数据进行渲染,进过处理返回给view。进行展示给用户。 上面啰嗦了很多

springmvc+ibatis整合示例(转)

无人久伴 提交于 2019-11-27 04:16:58
转自: http://www.cnblogs.com/archie2010/archive/2011/05/06/2038792.html SpringMVC与Ibatis框架整合所使用版本 Ibatis 2.3.4 Spring 3.0 web.xml <? xml version="1.0" encoding="UTF-8" ?> < web-app version ="2.5" xmlns ="http://java.sun.com/xml/ns/javaee" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" > <!-- 字符过滤_防止添加到数据库中的数据为乱码 --> < filter > < filter-name > characterEncodingFilter </ filter-name > < filter-class > org.springframework.web.filter.CharacterEncodingFilter </ filter-class > < init-param

Spring全家桶之springMVC(二)

China☆狼群 提交于 2019-11-27 04:04:14
   spring mvc中url-pattern的写法     1、 设置url-pattern为*.do     之前我们在web.xml文件中配置DispatcherServlet的时候,将url-pattern配置为*.do的方式,其实除了这种方式之外你还可以配置为其他任意方式:*.abc或*.action或*.123。     只要你的请求url中包含配置的url-pattern,该url就可以到达DispatcherServlet。当然这里业内通常都将url-pattern配置为*.do的方式,所以你最好也这么去做。(不过现在这种.do的配置方式不如以前多了,是因为一种叫做restful风格的URL越来越流行了,这个咱们以后再介绍)。     2、设置url-pattern为/*     如果将url-pattern设置为/*之后,web项目中的jsp都不能访问了会报出404的错误,这是因为 DispatcherServlet会将向JSP页面的跳转请求也当作是一个普通的 Controller 请求 ,会对其进行处理,而此时是找不到与其相应的controller。     其实说的简单一点就是/*这种配置会被web服务器(这里是tomcat)匹配到.jsp上面。      在实际开发中最好不要这样配置url-pattern。        3、设置url-pattern为

FreeMarker | 取值篇

旧巷老猫 提交于 2019-11-27 04:03:25
第一部分:Spring Boot 集成 FreeMarker 1、 pom.xml 需要这些依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> 2、yml 我喜欢 yml,所以删掉 application.properties ,新建 application.yml 3、配置 在 application.yml 中添加如下配置 # freemarker spring: freemarker: template-loader-path: classpath:/templates/ cache: false charset: UTF-8 check-template-location: true content-type: text/html expose-request-attributes: true expose-session

过滤器(Filter)与拦截器(Interceptor )区别

霸气de小男生 提交于 2019-11-27 03:51:55
过滤器(Filter) Servlet中的过滤器Filter是实现了javax.servlet.Filter接口的服务器端程序,主要的用途是设置字符集、控制权限、控制转向、做一些业务逻辑判断等。其工作原理是,只要你在web.xml文件配置好要拦截的客户端请求,它都会帮你拦截到请求,此时你就可以对请求或响应(Request、Response)统一设置编码,简化操作;同时还可进行逻辑判断,如用户是否已经登陆、有没有权限访问该页面等等工作。它是随你的web应用启动而启动的,只初始化一次,以后就可以拦截相关请求,只有当你的web应用停止或重新部署的时候才销毁。 Filter可以认为是Servlet的一种“加强版”,它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的处理链。Filter也可以对用户请求生成响应,这一点与Servlet相同,但实际上很少会使用Filter向用户请求生成响应。使用Filter完整的流程是:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。 Filter有如下几个用处。 在HttpServletRequest到达Servlet之前,拦截客户的HttpServletRequest。 根据需要检查HttpServletRequest

springMVC学习笔记(二)

↘锁芯ラ 提交于 2019-11-27 03:47:12
springMVC笔记(二) 1 响应数据和结果视图 1.1返回值分类 1.1.1字符串 controller 方法返回字符串可以指定逻辑视图名,通过视图解析器解析为物理视图地址。 /** * 返回值为String * @param model * @return */ //指定逻辑视图名,经过视图解析器解析为 jsp 物理路径:/WEB-INF/pages/success.jsp @RequestMapping("/testString") public String testString(Model model){ System.out.println("testString执行了..."); //模拟从数据库中查询出user对象 User user = new User(); user.setUsername("小明"); user.setAge(234); user.setPassword("123143"); //model对象 model.addAttribute("user",user); return "success"; } <a href="user/testString">testString</a> 1.1.2 void @RequestMapping("/testVoid") public void testVoid(HttpServletRequest

SpringMVC执行流程分析

血红的双手。 提交于 2019-11-27 03:22:27
1.客户端发送请求,给前端控制器; 2.前端控制器最终目的是要调用处理器(也就是我写的Controller类),它首先经过处理器映射器(HandlerMapping)查找处理器(Handler),通过请求路径的url去匹配,找到之后,返回一个处理器执行链(HandlerExcutorChain,里面包含n个拦截器(如果存在的话)以及找的处理器(Handler)),返回给前端控制器; 3.前端控制器会调用处理请求,但是它不是自己去调用,而是通过处理器适配器(HandlerAdapter),去调用我的处理器(Handler)方法 ,我的Controller方法会返回ModelAndView给前端控制器;补充:ModelAndView包括两部分:一是model:模型数据;而是view:跳转的页面; 4.前端控制器不会自己去处理这个ModelAndView,而是交个视图解析器(ViewResolver),视图解析器进行解析,返回一个视图对象(也就是值返回view)给前端控制器; 5.前端控制器找视图,把这个model填充(渲染)到视图中,这个视图就相当于一个html源代码; 6.最后将html源代码展示在浏览器中 这样做的原因是:体现解耦性; 来源: https://www.cnblogs.com/panbin/p/11341526.html

Spring MVC中的拦截器/过滤器HandlerInterceptorAdapter的使用

泄露秘密 提交于 2019-11-26 22:24:36
一般情况下,对来自浏览器的请求的拦截,是利用Filter实现的 而在Spring中,基于Filter这种方式可以实现Bean预处理、后处理。 比如注入FilterRegistrationBean,然后在这个Bean上传递自己继承Filter实现的自定义Filter进入即可。 而Spring MVC也有拦截器,不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。 Spring MVC提供的org.springframework.web.servlet.handler.HandlerInterceptorAdapter这个适配器,继承此类,可以非常方便的实现自己的拦截器。 它有三个方法: public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception { return true; } public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception { } public void

Spring MVC 返回值类型

China☆狼群 提交于 2019-11-26 21:24:57
一、 String : 不带数据页面跳转;   (1 )查找到指定的视图: return "user/show";   (2)请求转发/重定向;     return "redirect: path";     return "forword:path"; 二、 ModelAndView: 带数据页面跳转;   (1 )创建 ModelAndView返回的页面名称:     1 ) new ModelAndView("");     //new ModelAndView("forward:forwardResult");     2)modelAndView.setViewName("");  (2)添加数据:     public ModelAndView addObject(String attributeName, Object attributeValue) {}     //modelAndView.addObject("user",user); (3)示例: @RequestMapping("/test") public ModelAndView test(){ //通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面; ModelAndView mav=new ModelAndView("hello");