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等,保存数据量小. 关 ...
最新文章
- 超级账本(Hyperledger Fabric)源码分析之一:总览
- 企业微服务中台落地实践和思想之我见
- Messaging CorrelationID
- 腾讯首个AI开源项目完成3.0版本迭代,从顶级开源基金会毕业
- Android 网络请求详解
- IOS贝塞尔曲线圆形进度条和加载动画
- 生产环境子域降级记录
- 地址已经被使用——Address already in use(来自《后台开发:核心技术于应用实践》)
- BZOJ 1026 windy数 (数位DP)
- Linux 实操 —— Linux 系统性能分析
- 树莓派vnc用法 linux,怎样使用VNC在树莓派上运行远程桌面
- C++::My Effective C++ (二)
- cad解除块的快捷命令_cad退出块编辑_cad常用快捷键命令表_cad打印快捷键
- cab和ocx什么区别_CAB的完整形式是什么?
- python实战(一)Python爬取猫眼评分排行前100电影及简单数据分析可视化python实战(一)Python爬取猫眼排行前一百电影及简单数据分析可视化
- 如何将html模板资源转为vuecli项目
- java pdf添加透明水印,PDF怎么加透明水印?
- 【网络工程师配置篇】华为RIP路由基础配置续篇——重分发
- SCU - 4437 Carries
- 在html中制作多彩照片墙,照片墙不是乱贴的,教你1分钟打造高逼格照片墙!