springmvc配置

SpringMVC拦截器

烂漫一生 提交于 2019-12-04 08:33:28
一、 Spring MVC拦截器的使用 一、 什么是拦截器 Spring MVC中的拦截器(Interceptor )类似于 Servlet中的过滤器(Filter ),它主要用于拦截用户请求并作相应的处理。例如通过拦截器可以进行权限验证、记录请求信息的日志、判断用户是否登录等 。 在 SpringMVC中通过实现HandlerInterceptor 接口实现自定义拦截器类。 二、 拦截器的执行流程图 2 、执行具体流程: ( 1 )当客户端方法请求过来后,先调度 Filter 过滤器; ( 2 )过滤器之后执行中央调度器; ( 3 )中央调度器调度 HandlerMapping ; ( 4 ) HandlerMapping 返回处理器执行链交给处理器适配器; ( 5 )中央调度器将处理器执行链交给处理器适配器; ( 6 )中央调度器将先执行拦截器中的 preHandle 方法,进行请求拦截,如果返回 true 则继续执行,返回 false 则请求结束; ( 7 )当拦截器返回 true 时,处理器适配器调度 Handler 执行; ( 8 ) Handler 将执行后的 ModelAndView 交给中央调度器; ( 9 )中央调度器执行拦截其中的 postHandler 方法; ( 10 )拦截器 postHandle 方法执行完毕后,由中央调度器将 ModelAndView

springMVC简述

守給你的承諾、 提交于 2019-12-04 06:21:34
 Springmvc 1 SpringMVC架构 1.1 架构图 1.2 架构流程图 用户发送请求至前端控制器DispatcherServlet; DispatcherServlet收到请求调用HandlerMapping处理器映射器; 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet; DispatcherServlet通过HandlerAdapter处理器适配器调用处理器; 执行处理器(Controller,也叫后端控制器); Controller执行完成返回ModelAndView给HanderAdapter处理器适配器; HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet; DispatcherServlet将ModelAndView传给ViewReslover视图解析器; ViewReslover解析后返回具体View给DispatcherServlet; DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中); DispatcherServlet响应用户 1.3 组件说明 DispatcherServlet:前端控制器 用户请求到达前端控制器,它就相当于mvc模式中的c

SpringMVC 中ModelAndView用法

只愿长相守 提交于 2019-12-04 06:13:10
ModelAndView 作用 1.返回到指定的页面 ModelAndView构造方法可以指定返回的页面名称 例:return new ModelAndView("redirect:/m07.jsp"); 通过setViewName()方法跳转到指定的页面 例:mav.setViewName("hello"); 2.返回参数到指定页面的request作用于中 使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字,参数会返回到新页面的request作用域中 ModelAndView 的3种用法 1.ModelAndView的第一种用法,先创建ModelAndView对象,再通过它的方法去设置数据与转发的视图名 setViewName(String viewName):‎设置此 ModelAndView 的视图名称, 由 DispatcherServlet 通过 ViewResolver 解析‎ addObject(String attributeName, Object attributeValue):通过key/value的方式绑定数据 package com.gxa.spmvc.controller; import java.io.IOException; import java.io.PrintWriter;

SpringMVC异常处理

妖精的绣舞 提交于 2019-12-04 06:06:00
作用 如客户端调用 web 程序时,如果程序出现异常,特别是运行时异常;如果没有 try-catch 进行捕获, 异常将最终不会被 ExceptionResolver 进行处理,导致程序出现 500 错误。亦或者当客户端访问一个 不存在的商品详情时,此时需要呈现给用户一个显示页,用户告知“您查找的商品不存在”等信息。 没有异常处理机制下的程序 非运行时异常: 当程序需要显式的 try-catch 捕获进行处理时,不会造成 500 错误码。 但如果通过 throws 方式逐层抛出最终到 Controller 抛出, DispatcherServlet 将异常分发给 ExceptionResolver 模块;如果未添加特殊处理,则程序抛出 500 错误码。 运行时异常: 由于不需要显式的 try-catch ,如果在程序未添加处理的情况下,通常会抛出 500 错误码。 访问详情不存在时显示页: 如果没有异常机制的统一处理,则添加 return "redirect:/notFound.html"; 来处理 Spring MVC 的异常处理机制下的处理方案 处理逻辑: 将系统中的异常、自定义异常 ( 逻辑错误如访问详情时数据不存在 ) ,通过 throws 的方式,抛至 spring 的 ExceptionResolver 来统一进行处理。 有三种方式:

SpringMVC拦截器及多拦截器时的执行顺序

纵饮孤独 提交于 2019-12-04 06:01:53
本文链接:https://blog.csdn.net/itcats_cn/article/details/80371639 拦截器的配置步骤 springmvc.xml中配置多个拦截器 配置自定义拦截器并实现接口 <!-- 配置springmvc拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 对什么url路径进行拦截 /**代表对全路径拦截 --> <mvc:mapping path="/**"/> <!-- 注入自定义拦截器到bean标签 --> <bean class="cn.itcats.ssm.interception.Inteceptor1" /> </mvc:interceptor> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="cn.itcats.interception.Inteceptor2" /> </mvc:interceptor> </mvc:interceptors> //拦截器1 public class Inteceptor1 implements HandlerInterceptor{ //方法执行前1 public boolean preHandle(HttpServletRequest arg0,

SpringMVC拦截器拦截页面(坑)

时光总嘲笑我的痴心妄想 提交于 2019-12-04 05:00:41
问题:在使用了MVC拦截器时,访问除登录页面以外的URL时,判断是否登录,未登录的访问全部跳转至登录界面,但是在设置好时,是会判断并跳转,但是在起初,未登录访问,会先进入访问的资源页面后,立即闪退去登录页面。 但是明显这种状况是不满足权限拦截需求的,是错误操作。 原因就在于一开始在web.xml中配置了默认servlet对 *.html 资源的放行,(因为不配无法访问到html资源。) 于是问题就产生了,下面是开始的配置: <!--避免springmvc拦截以html结尾的请求--> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> 但是,这样虽然表面上的功能都实现了,却会出现上面说的问题。 解决方式很简单,在web.xml删除上面的配置,将该默认的servlet配置移到mvc的配置文件中配置,如下: <!-- 配置静态资源 默认servlet配置 允许使用"/"做整体映射 等--><mvc:default-servlet-handler /> 重新运行,问题解决,不会再进入被拦截页面后又闪跳会登录界面了。 来源: https://www.cnblogs.com/xk920/p/11832553.html

SpringMVC 学习笔记

瘦欲@ 提交于 2019-12-04 04:54:35
一、MVC 模式   MVC: Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。   model(模型):用于存储数据及用户请求的业务逻辑;   view(视图):向控制器提交数据;显示模型中的数据;   Controller(控制器):根据视图层的请求判断交给哪个模型处理、处理后的结果交给哪个视图显示。                                (图片来源:菜鸟教程) 二、spring MVC 的工作流程        三、示例   先新建项目,用maven导入依赖。然后在web.xml文件中进行配置,部署DispatcherServlet(前端控制器) <!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 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

junit 集成spring报错: GenericApplicationContext cannot be cast to WebApplicationContext

柔情痞子 提交于 2019-12-04 03:08:47
公司这个项目,不是我来配置构建的, 把 spring的配置什么的,和 springmvc的配置没有区分开来,都是在一个配置文件里面,也就是 springmvc 里面。 和我们一般的 配置不一样,我们一般配置都是 配置好 spring 容器的,,然后配置好 springmvc 的分开来。 可是 这个项目不是这样的,,,感觉是有点乱,后期也难维护管理。。。 没办法了。 这个项目,他们是没有 junit 的, 估计他们不喜欢用吧。 可是我是有点喜欢junit 测试的。 所以想自己集成junit ,在写代码的时候,方便自己测试使用。 可是在集成的时候 junit的时候 居然报错了。。。 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.CacheAwareContextLoaderDelegate.loadContext(CacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.TestContext.getApplicationContext(TestContext.java:122) at org.springframework.test

1、Spring Boot——使用Java搭建SSM环境

此生再无相见时 提交于 2019-12-04 02:40:18
在学习Spring Boot之前先使用Java搭建一个SSM环境。因为在Spring Boot项目中,正常来说不存在XML配置,这是因为Spring Boot不推荐使用XML,注意,并非不支持。Spring Boot推荐开发者使用Java配置来搭建框架,Spring Boot中,大量的自动化配置都是通过Java配置来实现的,这一套实现方案,我们也可以自己做,即自己使用纯Java来搭建一个SSM环境,即在项目中,不存在任何XML配置,包括web.xml。 如果使用纯Java搭建SSM工程,要求tomcat版本必须7以上(实际上tomcat版本在7以上,servlet版本也是3.0以上,以前刚开始学习web的时候,要使用一个servlet,要在web.xml中注册一下才能用,除此之外还可以加一个注解@WebServlet,但是如果用的是tomcat6的话,它是没有这个注解的,7以上才有,而tomcat里面有servlet),servlet版本至少要3.0以上。 搭建步骤: 1、创建工程 创建一个普通的Maven工程,并添加SpringMVC的依赖。 (1)把新创建的工程打成一个war包,无需webapp目录和web.xml文件(可以不必创建web工程)。同时这里环境的搭建还需要用到Servlet,所以我们还需要引入Servlet的依赖(一定不能使用低版本的Servlet

手写SpringMVC 框架

假如想象 提交于 2019-12-04 02:34:53
手写SpringMVC框架 细嗅蔷薇 心有猛虎 背景: Spring 想必大家都听说过,可能现在更多流行的是Spring Boot 和Spring Cloud 框架;但是SpringMVC 作为一款 实现了 MVC 设计模式的 web (表现层) 层框架,其高开发效率和高性能也是现在很多公司仍在采用的框架;除此之外,Spring 源码大师级的代码规范和设计思想都十分值得学习;退一步说,Spring Boot 框架底层也有很多Spring 的东西,而且面试的时候还会经常被问到SpringMVC 原理,一般人可能也就是只能把SpringMVC 的运行原理背出来罢了,至于问到有没有了解其底层实现(代码层面),那很可能就歇菜了,但您要是可以手写SpringMVC 框架就肯定可以令面试官刮目相看,所以手写SpringMVC 值得一试。 在设计自己的SpringMVC 框架之前,需要了解下其运行流程。 一、SpringMVC 运行流程 图1. SpringMVC 运行流程 1、用户向服务器发送请求,请求被 Spring 前端控制器 DispatcherServlet 捕获; 2、DispatcherServlet 收到请求后调用HandlerMapping 处理器映射器; 3、处理器映射器对 请求 URL 进行解析,得到请求资源标识符( URI );然后根据该 URI, 调用