实验八 获取请求参数及域对象共享数据

实验八 获取请求参数及域对象共享数据

一 实验目的

掌握以下主要内容:html页面使用Thymeleaf的基本语法;服务器获取页面请求参数的各种方法;域对象共享数据的不同方法;中文乱码解决方法;

二实验内容

1 获取请求参数的方式

1)传统方式获取请求参数:

index页面:

控制器

2)通过控制器方法的形参获取请求参

3)以@RequestParam获取请求参数

4)、通过POJO获取请求参数

首先写一个javaBean,用来封装请求数据

请求页面中写表单,用以收集用户数据:

然后写controller方法:

2 解决获取请求参数的乱码问题

Web.xml中配置编码过滤器(置于配置文件前面):

3 Request域对象共享数据

1)通过ModelAndView共享数据


2)通过Model共享数据


3)通过ModelMap和Map共享数据

4)比较转发与重定向的区别(地址栏是否变化,是否携带数据)

页面请求

4向seesion和application域共享数据


(备注:如果控制台直接输出中文有乱码,需要设置idea,如下):

实验内容

1 获取请求参数的方式

1)传统方式获取请求参数:

index页面:

控制器


2)通过控制器方法的形参获取请求参


3)以@RequestParam获取请求参数



4)、通过POJO获取请求参数

首先写一个javaBean,用来封装请求数据

请求页面中写表单,用以收集用户数据:

然后写controller方法:

2 解决获取请求参数的乱码问题

Web.xml中配置编码过滤器(置于配置文件前面):

3 Request域对象共享数据

1)通过ModelAndView共享数据



2)通过Model共享数据




3)通过ModelMap和Map共享数据




4)比较转发与重定向的区别(地址栏是否变化,是否携带数据)

页面请求

重定向(redirect) :

return "redirect:/scope/model" 是重定向方式。重定向时,浏览器会收到服务器的重定向响应,然后发起新的请求。重定向默认不会自动携带之前请求中设置在 Model 里的数据。

转发(forward) :

return "forward:/scope/model" 是转发方式。转发是在服务器内部进行的操作,浏览器并不知道转发的过程,地址栏不会发生变化。转发是在服务器内部将请求转发到另一个资源,之前在 Model 中设置的数据会被保留并传递到转发后的目标资源。

4向seesion和application域共享数据



三 实验收获与感想

通过本次实验,我掌握请求参数获取、域对象数据共享及中文乱码处理。在域对象数据共享方面,深入理解了request、session和application的作用域差异,并掌握其使用方法。针对中文乱码,通过使用SpringMVC提供的编码过滤器CharacterEncodingFilter解决问题,

相关推荐
鬼手点金11 小时前
Scrapy + Playwright 完整示例(JS 动态渲染网页)
开发语言·javascript·爬虫·python·scrapy·html·json
Mr. zhihao11 小时前
深度解析:为什么Java序列化需要搭配ByteArrayOutputStream?IO装饰器模式的精妙设计
java·开发语言·装饰器模式
vx-程序开发11 小时前
springboot旅游推介平台---附源码24175
java·spring boot·python·spring cloud·eclipse·django·idea
格林威11 小时前
多相机并行采图最佳实践:Task.WhenAll + 异常处理 + 资源释放
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·机器视觉
djjjx.11 小时前
【 C++ 】多态
开发语言·c++·多态
夜雪一千11 小时前
Python如何使用XPath定位没有特征的元素?无id、无class通用定位技巧
开发语言·python
艾莉丝努力练剑11 小时前
【QT:解决问题】Qt5Core.dll:无法定位程序输入点
java·开发语言·qt·学习·面试
流浪00112 小时前
Python 基础语法(一):常量、变量、输入输出与运算符
开发语言·python
小蒜学长12 小时前
“喵汪联盟”宠物领养系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·宠物
程序员黑豆12 小时前
Java字符串常量池完全指南:原理、intern()方法与性能优化最佳实践
java·前端·ai编程