SpringMVC 学习笔记1
来源:互联网 发布:网络虚拟信用卡申请 编辑:程序博客网 时间:2024/06/08 11:30
- 一导入
- 二创建springmvcxml配置文件
- 三在webxml中配置SpringMVC
- 四在springmvcxml中配置bean和映射器适配器视图解析器
- BeanNameUrlHandlerMapping
- SimpleUrlHandlerMapping
- SimpleControllerHandlerAdapter和HttpRequestHandlerAdapter
- InternalResourceViewResolver视图解析器
- 六实现控制类和控制方法使用注解的方式
- RequestMapping注解控制器类
- RequestMapping注解控制方法
- 注解RequestMapping的处理方法
- 参数绑定
- 返回的类型
一、导入
Maven:
<!--会自动依赖spring-web核心模块--><dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.10.RELEASE</version></dependency>
二、创建springmvc.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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"></beans>
三、在web.xml中配置SpringMVC
<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:springmvc.xml</param-value> </init-param></servlet><servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>*.action</url-pattern></servlet-mapping>
注意:url-pattern可以是.action,也可以是/,但不能是/。因为/*时Spring会匹配到jsp页面,
而Spring又没有处理jsp页面的能力,后果就是浏览器把jsp页面当作资源文件直接下载。
四、在springmvc.xml中配置bean和映射器,适配器,视图解析器
配置bean,无非就是用bean标签或自动扫描加注解,没什么好说的。
配置地址映射器:
- BeanNameUrlHandlerMapping(根据控制器bean的name属性映射控制器。默认,如果就是使用这个,可不写)
- SimpleUrlHandlerMapping(根据property子标签映射控制器)
- RequestMappingHandlerMapping(注解)
配置处理器适配器(处理自己写的业务控制类):
- SimpleControllerHandlerAdapter(处理Controller的实现类。默认,如果就是使用这个,可不写)
- HttpRequestHandlerAdapter(处理HttpRequestHandler的实现类)
- RequestMappingHandlerAdapter(注解)
配置视图解析器(给所有访问的url统一加上前后缀):
- InternalResourceViewResolver
BeanNameUrlHandlerMapping
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/><bean id="loginController" name="/login.action" class="com.springmvc.controller.LoginController"/>
要求:LoginController必须实现接口org.springframework.web.servlet.mvc.Controller。说明:当访问/login.action时,就会跳转到LoginController。优点是配置起来相对简单。缺点是必须在配置文件中显式地声明bean,自动扫描功能component-scan就没用了。
SimpleUrlHandlerMapping
<context:component-scan base-package="com.springmvc.controller"/><bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <!-- 这里的name必须是mappings --> <property name="mappings"> <props> <prop key="/register.action">registerController</prop> <prop key="/login.action">loginController</prop> </props> </property></bean>
要求:LoginController和RegisterController必须实现接口Controller,注解@Controller。说明:registerController和loginController是由Spring自动推导出来的,不用手动设置。
SimpleControllerHandlerAdapter和HttpRequestHandlerAdapter
<!--处理适配器SimpleControllerHandlerAdapter,处理实现了Controller接口的类,可省略--><bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/><!-- 处理适配器HttpRequestHandlerAdapter,处理实现了Controller接口的类 --><bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"/>
注:两者可同时存在。
InternalResourceViewResolver(视图解析器)
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/page"/> <property name="suffix" value=".jsp"/></bean>
六、实现控制类和控制方法(使用注解的方式):
方法1【推荐】:配置文件添加\
@RequestMapping(注解控制器类)
value:控制方法地址的前缀。
@RequestMapping(注解控制方法)
params:规定参数,可以定义必须有(无)某个参数,参数必须(不)等于某个值。 "name" --> 必须有参数name "name,!pass" --> 必须有参数name,没有参数pass "name=wang" --> 必须有参数name且值为wang "name!=wang" --> 必须有参数name且值不为wangmethod:规定请求方法。默认是GET或POST。
注解@RequestMapping的处理方法
参数绑定
详见《SpringMVC 学习笔记2 - 参数绑定》
返回的类型
返回Null: 声明的返回类型为void,String,ModelAndView均可,需要自己实现跳转或重定向。 不会加上InternalResourceViewResolver定义的前后缀。返回ModelAndView: 通过addObject设置传递的参数,效果等同于req.setAttribute + url显式传参。 通过setViewName设置需要跳转的页面,会加上InternalResourceViewResolver定义的前后缀。返回String: 1. 地址:"/{path}"(效果等同于modelAndView.setViewName,会加上前后缀) 2. 转发:"forward:/{path}"(效果等同于request.getRequestDispatcher.forward,不会加上前后缀) 3. 重定向:"redirect:/{path}"(效果等同于response.sendRedirect,不会加上前后缀,Intellij IDEA不会链接)注:转发和重定向开始的反斜杠代表根目录,而地址开始的反斜杠仅仅是作为分隔符。参数列表可以为空,也可以是request和response,还可以是url参数(自动通过名字获取request的参数),甚至可以是Model(类似于request)
使用示例:
// TODO : UserController完善后复制到这里作为示例
阅读全文
0 0
- springmvc学习笔记《1》
- SpringMVC学习笔记1
- SpringMVC学习笔记1
- SpringMVC学习笔记1
- springmvc学习笔记1
- SpringMVC 学习笔记1
- SpringMVC学习笔记(1):初识SpringMVC
- springmvc学习笔记1_DispatcherServlet_HandlerMapping_HandlerAdapter_ViewResolver
- SpringMvc学习笔记之1
- springmvc学习笔记 1 --- helloworld
- SpringMVC学习笔记--(1)
- SpringMVC学习笔记(1)
- springMVC学习笔记--初识springMVC
- SpringMvc 学习笔记-------springmvc框架
- SpringMVC学习笔记1:springMVC1 springmvc的基础知识
- Spring学习笔记-1:SpringMVC hello world
- Spring学习笔记-1:SpringMVC hello world
- SpringMVC学习笔记1_XML配置文件
- Mysql写入windows服务中
- java上传文件
- 洛谷 1807 最长路 SPFA 解题报告
- 移动架构31_责任链和模板模式封装连续请求
- ElasticSearch入门 第三篇:索引
- SpringMVC 学习笔记1
- 10.28日常总结
- 【Python爬虫】编写第一个爬虫
- 跟上 Java 8 – 你忽略了的新特性
- 推荐: Kafka详细原理总结
- 重写Collection.sort方法时,判断返回值作用
- java-MD5加密
- 折半插入排序
- Nim Game(leetcode)