1.获得请求参数值
(1)通过request对象提供的方法
![](https://i-blog.csdnimg.cn/blog_migrate/0335929bfd30be4179443e4546b94e8a.png)
(2)通过@RequestParam
![](https://i-blog.csdnimg.cn/blog_migrate/f73aae36c2d7c684581e558d744dfb2c.png)
(3)通过javabean
step1.写一个用来封装请求参数的java类。
![](https://i-blog.csdnimg.cn/blog_migrate/bcc1481a4c2e00d9d4b5ea131330bae3.png)
step2.请该类作为方法参数。
![](https://i-blog.csdnimg.cn/blog_migrate/bd58de5e33321639147004047d8a3418.png)
2.向页面传值
(1)将数据绑订到request。
(2)返回ModelAndView。
![](https://i-blog.csdnimg.cn/blog_migrate/1b4cc91c5ca7b45f01dc39edf1c4df58.png)
(3)将数据添加到ModelMap。
![](https://i-blog.csdnimg.cn/blog_migrate/eb0d185c86d2dcc9a9697ced95e07937.png)
(4)将数据绑订到session。
![](https://i-blog.csdnimg.cn/blog_migrate/a66e4b706f4ce978b84f0c083e5d466e.png)
3.重定向
(1)返回值是String
在重定向地址前添加"redirect:",比如
return "redirect:toView.do";
(2)返回值是ModelAndView(下周讲)
4.系统分层(扩展)
(1)如何分层
a.将系统一般划分成表示层、业务层和持久层。
b.表示层负责数据展现、用户操作界面及请求分发,
业务层负责封装业务逻辑,持久层负责封装数据访问
逻辑。
c.表示层调用业务层,业务层调用持久层。
注:上一层通过接口调用下一层提供的服务,这样
,当下一层的实现发生变化,不影响上一层。
![](https://i-blog.csdnimg.cn/blog_migrate/3ae4a47ec8c4ee33af7fa026e91f6243.png)
练习:
登录
http://ip:port/spring-day05-lab/toLogin.do,
返回登录页面。
填写用户名和密码并提交,服务器端检查有没有
匹配的记录(不用访问数据库),如果没有,则
提示用户(“用户名或密码错误”),如果有,则登录
成功,重定向到list。(list显示一个登录成功提示)