-
-servlet.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:annotation-config></context:annotation-config>
<!-- 注解扫描 -->
<context:component-scan base-package="com.mvcdemo">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<mvc:annotation-driven/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
查看全部 -
一、DispatcherServlet 前端控制器
1.分发浏览器请求到Controller
2.将module传递给view
-----------------------------------------------------------------------
二、HandlerAdapter(DispatcherServlet类内部使用的类,Controller的一种表现形式)
1.识别Contoller类
2.适配器模式,将各种不同类型的Handler适配成DispatcherServlet可以使用的Handler
-----------------------------------------------------------------------
三、HandlerInterceptor(拦截器)
1.preHandle (HttpServletRequest request, HttpServletResponse response, Object handle)
a.在请求处理前调用
一般用作:
1)前置初始化操作
2)请求前预处理
3)请求是否被拦截
2.postHandle (HttpServletRequest request, HttpServletResponse response, Object handle, ModelAndView modelAndView)
a.执行Controller方法之后,在DispatcherServlet进行视图返回渲染之前调用
b.可以对Controller处理后的ModelAndView对象进行操作
3.afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handle, Exception ex)
前提:preHandle 方法返回true
规则:链式执行,与preHandler执行Interceptor执行顺序相反,与postHandle执行Interceptor执行顺序相同
a.完成请求处理后的回调。在视图呈现之后执行。
b.请求完成任何结果都将调用,通常用作清理资源。
----------------------------------------------------------------------
四、HandlerMapping
1.当DispatcherServlet接受到客户端的请求后,SpringMVC 通过 HandlerMapping 找到请求的Controller。
2.HandlerMapping 在这里起到路由的作用,负责找到请求的Controller
3.HandlerMapping执行完之后,会为dispacterServlet一个HandlerAdapter(这个HandlerAdapter包含某个Controller具体的实例、包裹这个Controller的HandlerInterceptor,构成执行链条)
-----------------------------------------------------------------------
五、HandlerExecutionChain
1.执行执行链条
preHandle->自己实现的Controller->postHandle->afterCompletion(发射机制 reflection)
-----------------------------------------------------------------------
六、ModuleAndView
model的具体表现
-----------------------------------------------------------------------
七、ViewResolver
逻辑视图名称解析为对象的View对象
-----------------------------------------------------------------------
八、View
负责页面展示
查看全部 -
如果使用spring 4 的小伙伴,可以会报mediaTypes没有set方法等错误,正确的配置是: <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" ><br> <property name="order" value="1" ></property><br> <property name="contentNegotiationManager"><br> <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"><br> <property name="mediaTypes"><br> <map><br> <entry key="json" value="application/json" ></entry><br> <entry key="xml" value="application/xml" ></entry><br> <entry key="htm" value="text/html" ></entry><br> </map><br> </property><br> <property name="ignoreAcceptHeader" value="true"></property><br> </bean><br> </property><br> <property name="defaultViews"><br> <list><br> <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView" ></bean><br> </list><br> </property><br> </bean><br> 这样就不会报错了。
查看全部 -
JSON是数据交换的特殊格式查看全部
-
POM:xml文件,可通过配置来完成依赖管理。 依赖:A直接依赖B、C,间接依赖D、E(传递依赖)。 /WEB-INF/lib:存放项目依赖的jar包。 maven:在POM配置依赖项,提供依赖管理、传递管理,可自动载入需要的依赖包。 maven坐标:groupId、artifactId、version、packaging(可缺省,默认jar)查看全部
-
Spring MVC 基本概念 1、DispatcherServlet: 前端控制器 2、Controller: 调用业务逻辑生成model的地方 3、HandlerAdapter:DispatcherServlet通过HandlerAdapter调用controller 4、HandlerInterceptor:拦截器 该接口提供after postHandle preHandle 三个方法,调用controller前后使用 5、HandlerMapping:前端控制器与controller映射关系的类 6、HandlerExecutionChain: preHandle->Controller method->postHandle->afterCompletion的执行链 7、ModelAndView:model的具体表现 8、viewResolver:视图解析器,决定需要用哪个视图来进行视图的呈现。 9、view:界面查看全部
-
@Controller声明一个controller @RequestMapping 声明访问的URL。类和方法上均可使用 @RequestParam 形如xx/xxx?xx=xx的参数 @PathVariable 形如xx/xx/{xxxx}的参数 springMVC传递参数的三种方式: 1)使用参数注解@RequestParam url形式:http://host:8080/courses/view?courseID=123 controller参数中传入:@RequestParam("courseID") Integer courseID 2)使用路径变量注解@PathVariable url形式:http://host:8080/courses/view2/{courseID} 方法的requestMapping:@RequestMapping(value="/view2/{courseID}",method=RequestMethod.GET) controller参数中传入:@PathVariable("courseID") Integer courseID 3)使用传统的从HttpServletRequest获取参数 url形式:http://host:8080/courses/view3?courseID=123 controller参数中传入HttpServletRequest,使用request.getParameter("key")来获取参数值。查看全部
-
Spring MVC 基本概念 1、DispatcherServlet: 前端控制器 2、Controller: 调用业务逻辑生成model的地方 3、HandlerAdapter:DispatcherServlet通过HandlerAdapter调用controller 4、HandlerInterceptor:拦截器 该接口提供after postHandle preHandle 三个方法,调用controller前后使用 5、HandlerMapping:前端控制器与controller映射关系的类 6、HandlerExecutionChain: preHandle->Controller method->postHandle->afterCompletion的执行链 7、ModelAndView:model的具体表现 8、viewResolver:视图解析器,决定需要用哪个视图来进行视图的呈现。 9、view:界面查看全部
-
1.在继承Maven的eclipse中,windows--->prefrences---->Maven--->Installation--->将新下载的maven文件add进去,确保在user Setings中配置文件的路径是之前配置了mirror的配置文件setting.xml 2.运行命令创建项目 注意:需要指定创建项目的路径 例如:cd C:\Users\Workspaces\Eclipse 10 命令: mvn archetype:generate -DgroupId=imooc-arthur -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp 参数解释: archetype:generate 调用插件 groupId:坐标 artifactId:坐标的一个元素,目录结构的根目录名称 archetypeArtifactId:目录类型的一个类型,此为webapp的类型查看全部
-
1.在继承Maven的eclipse中,windows--->prefrences---->Maven--->Installation--->将新下载的maven文件add进去,确保在user Setings中配置文件的路径是之前配置了mirror的配置文件setting.xml 2.运行命令创建项目 注意:需要指定创建项目的路径 例如:cd C:\Users\Workspaces\Eclipse 10 命令: mvn archetype:generate -DgroupId=imooc-loki -DartifactId=spring-mvc-study -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeCatalog=internal查看全部
-
<properties> <commons-lang.version>2.6</commons-lang.version> <slf4j.version>1.7.6</slf4j.version> <spring.version>4.1.3.RELEASE</spring.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${spring.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>查看全部
-
Maven安装并测试步骤: 1、下载并解压meaven.zip(百度谷歌搜索Maven); 2、配置环境变量, 名字M2_HOME ,值是meaven安装目录; 3、path:%M2_HOME%\bin; 4、测试cmd:mvn -version查看全部
-
@Controller声明一个controller @RequestMapping 声明访问的URL。类和方法上均可使用 @RequestParam 形如xx/xxx?xx=xx的参数 @PathVariable 形如xx/xx/{xxxx}的参数 springMVC传递参数的三种方式: 1)使用参数注解@RequestParam url形式:http://host:8080/courses/view?courseID=123 controller参数中传入:@RequestParam("courseID") Integer courseID 2)使用路径变量注解@PathVariable url形式:http://host:8080/courses/view2/{courseID} 方法的requestMapping:@RequestMapping(value="/view2/{courseID}",method=RequestMethod.GET) controller参数中传入:@PathVariable("courseID") Integer courseID 3)使用传统的从HttpServletRequest获取参数 url形式:http://host:8080/courses/view3?courseID=123 controller参数中传入HttpServletRequest,使用request.getParameter("key")来获取参数值。查看全部
-
springMvc中返回json格式的方法: 1)方法返回值使用注解:controller方法中返回值使用注解“@ResponseBody”来修饰,例如@ResponseBody Course,则返回的course类型的对象为json格式。 2)方法返回值使用ResponseEntity<Course>类型修饰,则在return时只需要返回该类型的对象即可,例如:return new ResponseEntity<Course>(course,HttpStatus.OK)查看全部
-
web.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>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--DispatcherServlet对应的上下文配置,默认为/WEB-INF/$servlet-name$-servlet.xml下面语句改变了该默认参数 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <!-- mvc-dispatcher拦截所有请求 --> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>查看全部
举报