SpringMVC01

SpringMVC的入门:

传统的servlet只能接受一个请求路径,然后还需要自己传入要执行的method方法名称

客户端浏览器传递的参数 在servlet中还需要自己去获取参数 getparameter

而 SpringMVC 把这些都给优化了 下面是使用SpringMVC的方法

1. 导入jar包

EL 表达式需要在 web.xml中设置版本 需要2.5以上的版本才可以使用

在 pom.xml 中导入spring-context  spring-webmvc

2.在 web.xml 配置文件中 配置一个servlet

servlet的名字随便 但是要和 servlet-mapping 相同 class: DispatcherServlet

初始化参数 可以读取Springmvc 配置文件

值固定 值为 springmvc.xml文件路径

3.在Spring.xml 的配置文件中  配置包扫描 还有视图解析器

视图解析器的标签中 id 和 class都是固定的 配置前缀后缀 

4 Controller 核心控制器

(Spring MVC执行流程:  浏览器发请求 web.xml 文件中DispatcherServlet先收到请求

 然后根据配置扫描 找到对应类和方法 执行后将执行结果转发到jsp模板上 不用传方法名字了)

类上使用@Controller(web层)包扫描注解  方法上使用 @RequestMapping( "/方法名")  注解

方法:  返回值 ModelAndView   参数也是 ModelAndView类型

modelAndView.addobject  相当于request.setAttribute

modelAndView.setViewName("转发到哪个jsp模板")

@RequestMapping 也可以用在类上 @RequestMappin g("/类路径名") 但是只写在类上是没用的

@RequestMapping( "/方法名",params="xx")  表示访问此方法必须带一个 xx名字的参数

 @RequestMapping( "/方法名",method=RequestMethod.POST)

代表访问此方法必须是以规定好的访问方式 访问 此代码表示必须使用post方法访问


(@RequestParam作用是给参数起个名字 然后赋值一个默认值 )  例如起名字为 name="xid"

浏览器界面的text输入框name属性用这个名字 例如

如果参数是对象 那么名字需要1 1对应 前端text标签输入框的name值和对象成员属性名一致

如果参数是一个符合对象(参数的子属性也是一个对象) 

那么前端text标签中\输入框的name属性要写 子属性对象.成员属性名 例如 user.id

如果参数是一个符合对象(参数的子属性其中一个是list集合)

那么前端text标签中\输入框的name属性要写 (集合名[索引值].成员属性名)  例如 users[0].id

如果参数是一个符合对象(参数的子属性其中一个是map集合)

那么前端text标签中\输入框的name属性要写  map集合名["key"]   例如:   faxinren["name"]  faxinren["phone"]  faxinren["address"]

@RequestHeader("user-agent") 表示获取请求头user-agent的值 String类型

@CookieValue(value="JSESSIONID") 获取Cookie的名字为jsessionid的值

如果给的是一个字符串 而我要的是一个日期 则需要自己写一个类 并实现Converter接口

类中写方法把字符串转换成Date类型 并返回 然后在spring.xml中设置转换服务器


你可能感兴趣的:(SpringMVC01)