SpringMVC(SSM)获取网页数据和传出数据的几种方式
1.从JSP页面里传数据到SpringMVC中的Controller处理
a.直接读取表单的数据。在控制器里的方法里,按照这种格式写。
@RequestMapping(value="/login.action")
public void login(HttpServletRequestreq,HttpServletResponse resp){
req.setCharacterEncoding("utf-8");//设置参数的编码格式
String userName =req.getParameter("txtUserName");
String userPwd =req.getParameter("txtUserPwd");
System.out.println("用户名:"+userName);
System.out.println("密码:"+userPwd);
}
需要解决post提交数据的时候,乱码的问题:在web.xml里做配置:
<!-- 解决post提交乱码的问题 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
解决Get提交数据的时候的乱码问题:
方法一:修改tomcat配置文件添加编码与工程编码一致,如下:
<ConnectorURIEncoding="utf-8" connectionTimeout="20000"port="8080" protocol="HTTP/1.1"redirectPort="8443"/>
方法二: 对参数进行重新编码:
String userNamenew
String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")
SpringMVC的参数映射问题:(JSP页面或者说url路径的参数同控制器里的方法的参数的对应)
1)第一种映射方式:
表单里的表单元素的name名字和控制器里的方法的形参名一致。
比如界面中的数据:
<inputtype="text" value="" name="typeName"/>
在控制器里方法的定义:
@RequestMapping(value="/addtype.action")
public void addType(String typeName){
System.out.println("传递过来的数据:"+typeName);
}
2)采取普通的Java对象(POJO)传值的方式。
jsp页面里的表单元素的name名字为java对象的字段名。
比如:用户的注册页面:
<tr>
<td>用户名:</td>
<td><inputtype="text" name="userName"/></td>
</tr>
<tr>
<td>密码:</td>
<td><inputtype="password" name="userPwd"/></td>
</tr>
<tr>
<td>确认密码:</td>
<td><inputtype="password" name="txtUserRpPwd"/></td>
</tr>
<tr>
<td>电子邮箱:</td>
<td><inputtype="text" name="userEmail"/></td>
</tr>
<tr>
<td>注册原因:</td>
<td><inputtype="text" name="regReason"/></td>
</tr>
<tr>
<td>居住地:</td>
<td><inputtype="text" name="userAddress"/></td>
</tr>
在控制器里的方法的定义:
@RequestMapping(value="/reg.action")
public void reg(UserInfo u){
System.out.println("用户名:"+u.getUserName());
}
3)通过url参数传递。将url的参数和形参进行一个匹配:
自动映射URL对应的参数到Action上面的数值,RequestParam 默认为必填参数。
public String GetContent(@RequestParam(“key”) String key){
}
扩展:
@RequestParam(value="number",required=false) String number
@RequestParam("id") Long id
@RequestParam("balance") double balance
@RequestParam double amount
注意,最后一个例子没有提供清晰的参数名。当且仅当代码带调试符号编译时,结果会提取名为“amount ”的参数,否则,将抛出IllegalStateException异常,因为当前的信息不足以从请求中提取参数。由于这个原因,在编码时最好显式的指定参数名
在controller中定义的方法的参数的类别:
默认支持的参数类型
Ø HttpServletRequest
Ø HttpservletResponse
Ø HttpSession
Ø Model/ModelMap
比如:@RequestMapping(value="/reg.action")
public void reg(UserInfo u){
System.out.println("用户名:"+u.getUserName());
SpringMVC(SSM)获取网页数据和传出数据的几种方式相关推荐
- webbrowser 检测ajax,控制台获取网页AJAX的返回数据,用的WebBroWser
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 至于HttpRequest大家都知道,他不能获取网页的Ajax异步数据,代码如下: using System; using System.Collecti ...
- ajax上传多文件和数据,Ajax上传数据和上传文件(三种方式)
Ajax向后端发送数据可以有三种方式:原生Ajax方式,jQuery Ajax方式,iframe+form 方式(伪造Ajax方式) Title .btn { background-color: co ...
- mysql数据存储方式_数据存储在mysql的两种方式
数据存储在mysql的两种方式 发布时间:2020-05-12 16:16:25 来源:亿速云 阅读:250 作者:三月 下文主要给大家带来数据存储在mysql的两种方式,希望这些内容能够带给大家实际 ...
- Docker的常用管理命令Docker将数据挂载到容器的三种方式
文章目录 镜像管理命令 容器管理常用命令 docker run常用参数 Docker run的其他参数 docker 创建容器命令 容器资源限制 docker管理容器常用命令 docker将数据挂载到 ...
- 大数据正在改变客户服务的五种方式
大数据正在改变客户服务的五种方式 任何组织的命脉,无论是否面向服务,都是需要为客户提供良好的服务.组织如何与其客户进行互动,会影响他们如何看待组织,这会影响潜在客户,除了组织最忠实的客户之外. 客户服 ...
- 将数据渲染到页面的几种方式
将数据渲染到页面的几种方式: 1.字符串拼接: 2.dom回流 3.文档碎片(文档碎片节点:documentFragment) 4.模板 (下章会详细介绍模板) 转载于:https:/ ...
- 安卓androidstudio访问本地接口_安卓开发之数据存储在本地的四种方式
安卓开发之数据存储在本地的四种方式 本地数据存储,在安卓开发过程中是不可避免的一个话题.这些本地的数据可能是用户的设置,程序的设置,用户的数据图片, 也可能是网络传输的一些缓冲数据. 基本上我们有 ...
- asp.net中读取数据库中的数据可以使用DataReader和DataSet 2种方式(初学者望大家不要笑我)...
在asp.net中,读取数据库中的数据可以使用DataReader和DataSet 2种方式, 两者的差异如下: 使用Dataset对象读取数据大致需要以下5个步骤: (1)建立数据库 ...
- 备份数据迁移到云端的七种方式
人们可能对云备份的方式有一个普遍的认识,即很少有人希望保留昂贵和过时的遗留系统.下面,让我们来看看云端数据备份可以为组织做些什么. 1.确保合规性 如果组织在全球拥有自己的数据中心或云计算设施,就必须 ...
- python 保存csv,Python数据存储到文件的3种方式
原标题:Python数据存储到文件的3种方式 爬虫请求解析后的数据,需要保存下来,才能进行下一步的处理,一般保存数据的方式有如下几种: 文件:txt.csv.excel.json等,保存数据量小. 关 ...
最新文章
- [Share]2008年国外最佳Web设计/开发技巧、脚本及资源总结
- MySQL时间增加、字符串拼接
- Javascript 限制文本字节数
- 例子---JS无缝轮播图
- Android P (2)---Android 9.0 “Pistachio Ice Cream”新功能和特性
- Redis性能基准测试
- [VB]多级目录创建函数,支持很深的目录创建。
- 基础佛学知识-间歇博客
- S32K MCAL03-如何使用EB工具配置FlexCAN的波特率
- 帧间差分法函数python_【目标追踪】python帧差法原理及其实现
- 滑铁卢大学 S. Keshav 教授:高效阅读科研论文的方法
- 计算机 桌面上的文件怎么发送,文本文件如何发送到QQ邮箱里?
- poi中excel锁定行列问题
- 一位美国教授给研究生的怎样记读书笔记的建议(中文总结)
- Excel函数——小数点计算
- 2010年全球移动行业回顾:iPad大热 中国崛起
- android 图片手动放大,Android图片的手动放大缩小
- BZOJ 1251 序列终结者 Splay
- Redis集群搭建失败 connected_slaves:0
- 近期必读的6篇 NeurIPS 2019 的零样本学习(Zero-Shot Learning)论文