正常使用spring MVC 开发的时候 自定义一个类,名称是xxxController 然后在其上使用@Controller注解这个类(将这个类交给spring 管理)(就不用去实现controller接口了)
@RestController
如果当前定义的xxxController 类中返回的数据是json格式,可以将@Controller改为@RestController(表示将来打给客户端响应的数据全是json格式)
@RequestMapping("/abc")
@RequestMapping("/abc")可以作用在类和方法上,用于表名定义请求路径 在类上需要使用@RequestMapping("/")注解来书写具体的请求路径(例如:@RequestMapping("/user") 只要是/user的请求 都会进入到当前类中)
在具体的方法上使用@RequestMapping("/") 来书写具体的映射地址
@RequestMapping的属性
* name属性
:给RequestMaping注解的命名 (可以省略)
* value/path属性:
用来书写具体请求路径的(如果在RequestMaping中只写路径 可以省略vlaue)
methods属性:
用来限制会客户端请求时 请求方式(get或者post 默认是GET)
(@RequestMapping(path = "/show1",method = {RequestMethod.POST}))
* 如果请求的方式和要求的方式不匹配 405报错
* params属性:
用于限定请求的参数内容的,如果请求中携带的参数 不匹配
* 会报400状态码
params = {"name","pwd"} 请求中必须包含 name 和pwd
* params = {"name!=admin","pwd"} 请求中name不能等于admin
* params = {"name!=admin","!pwd"} 请求中name不能等于admin 同时不能包含pwd
//通配符方式:
?: 匹配任何单字符,(也就是说 书写路径可以是任意字符 但是只能匹配一个)
*: 匹配零个 或任意数量的字符
**: 匹配零个或更多路径
占位符方式:
可以用于客户端给服务器端 传递请求参数的数据(类似get和post传递参数)
书写格式: {参数名称}/{参数名称}....
可以书写很多占位符:使用大括号包裹即可
正常情况下.客户端给服务器端传递参数:(get方式 在url地址后面使用?隔开,key=value的方式 post方式使用form表单提交数据)
//占位符方式
* 可以用于客户端给服务器端传递请求参数的数据(类似 get和post传递数据)
* 书写格式:
* {参数名称}/{参数名称}....
* 可以书写很多占位符:使用大括号包裹即可
* 正常情况下,客户端给服务器端 传递数据:
* 以get方式: 在url地址后面使用?隔开,key=value方式
* 以post方式:使用呢form表单 提交数据
*
* @PathVariable:标注的参数是在请求url中的占位符中的内容
注意:(使用注解需要先配置这个)
开启springmvc注解(不需要配置自己定义的handler对象了)
<mvc:annotation-driven/>
告诉springmvc注解在哪些包下
<context:component-scan base-package="com.neuedu"></context:component-scan>
<?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.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
<!-- (定义处理器映射器和定义处理器适配器 在springmvc已经写好了 可以不写 省略)
定义处理器映射器
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
定义处理器适配器
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
定义handler处理对象 也就是真正处理逻辑的代码 疑惑称作是是controller对象
name属性:访问的路径
class属性:访问的handler的全类名
-->
<bean name="/demo1.mvc" class="com.neuedu.controller.Demo1mvc"></bean>
<!-- 利用注解 -->
<!-- 开启springmvc注解(不需要配置自己定义的handler对象了) -->
<mvc:annotation-driven/>
<!-- 告诉springmvc注解在哪些包下 -->
<context:component-scan base-package="com.neuedu"></context:component-scan>
<!-- 配置视图解析器
Example:
prefix="/WEB-INF/jsps/", 前缀
suffix=".jsp" 后缀
viewname="test" 文件名 - > "/WEB-INF/jsps/test.jsp"
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsps/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
//springmvc 如何获取页面参数 --普通类型
//springmvc 如何获取页面参数 --欢迎登陆成功的案例
//spring mvc 如何获取页面请求参数--pojo(实体类)类型
定义方法--在方法中绑定web中的对象
想要使用web中的request和response对象,直接在方法中定义变量即可