在项目开发过程中,发现有个页面会提交两次,一直没有找到原因,后来发现产生这个Bug的原因是UI设计师在JSP页面中加入了下面这些代码:
<style>
body {background:#ffffff url();}
</style>
他的目的是设置页面背景颜色,页面图片的地址为空,这个写法在IE中没有问题,但是在FireFox和谷歌浏览器中会有问题,会以GET方式提交当前页面,通过FireBug请求的头信息为(说明页面不知道图片地址,会向后台发GET请求):
Accept image/png,image/*;q=0.8,*/*;q=0.5
其实这是一个CSS规范语法问题,如果把url的参数设为"有效图片地址"就没有问题了(不需加单引号或双引号),另外去掉url函数也没有问题:
<style>
body {background:#ffffff url(a.jpg);}
</style>
<style>
body {background:#ffffff}
</style>
回到主题,在Java文件中,判断页面提交方式的代码如下:
String method = org.apache.struts2.ServletActionContext.getRequest()
.getMethod();
boolean isPostMethod = "POST".equalsIgnoreCase(method);
if (!isPostMethod) {
System.out.println("prepare() GET 方式提交");
} else {
System.out.println("prepare() POST 方式提交");
}
分享到:
相关推荐
下面我们将深入探讨如何解决J2EE环境下GET和POST方式提交表单时出现的乱码问题。 首先,我们要理解GET和POST的区别。GET方式会将表单数据附加到URL后面,而POST方式则将数据放在请求体中。由于GET方式的限制,它...
在这个实例中,“整合jquery+json+struts2异步提交”是一个典型的前端与后端交互的示例,利用了jQuery的Ajax功能和Struts2框架处理JSON数据。下面我们将详细探讨这些技术及其相互配合的工作原理。 **jQuery** 是一...
Struts2是一个流行的Java Web框架,它为开发者提供了一种构建MVC(Model-View-Controller)架构的应用程序的方式。在Web开发中,防止重复提交是一个重要的问题,尤其是在处理敏感数据时,比如银行转账或用户注册。...
总结来说,通过这种方式,我们可以利用AJAX向Struts2 Action传递JSON数组,实现异步数据交互。这在动态更新页面内容、处理表单提交等场景下非常有用。同时,使用JSON作为数据交换格式,使得前后端的数据交换变得更加...
总结起来,"struts2+Mysql搭建的服务端 +android 客户端 post,get请求"这个项目涵盖了Web服务开发的多个关键方面:服务端架构设计、数据库管理和客户端网络通信。了解并熟练掌握这些技术,对于构建高效、安全的移动...
例如,我们可以使用jQuery的`.ajax()`方法发送POST或GET请求到Struts2 Action,获取服务器端数据并动态更新页面。 GET和POST是HTTP协议中的两种基本请求方法。在Struts2中,Action可以通过注解或配置文件指定处理...
Struts2Demo2是一个基于Apache Struts2框架的示例应用,它展示了如何在实际开发中使用Struts2来构建动态Web项目。Struts2是一个强大的MVC(Model-View-Controller)框架,用于简化Java Web应用程序的开发过程。在这...
本文将详细讲解如何在Android端使用GET和POST方法提交数据到服务器,并结合传智播客张泽华Android视频54-57中的代码示例进行解析。 一、GET方法 GET方法是最简单的HTTP请求方式,常用于获取服务器上的资源。在...
在Struts2中,REST(Representational State Transfer)风格的处理方式与传统的基于HTTP方法(如GET、POST)的非REST方式可以共存,为开发者提供了更大的灵活性。这篇博客文章探讨了如何在同一个Struts2应用中实现这...
总结,Struts2中返回JSON数据有两种主要方式:一是通过`response.getWriter().print()`手动输出JSON字符串;二是利用Struts2的内置JSON插件,通过返回特定的属性和结果类型自动处理JSON。每种方法都有其适用场景,...
type: 'POST', // 或者 'GET' url: 'your_action_url', data: {key1: value1, key2: value2}, // 发送到服务器的数据 dataType: 'json', // 预期服务器返回的数据类型 success: function(response) { // 在...
在Struts2框架中,防止重复提交可以通过以下几种方式实现: 1. **使用Token机制**: - 在表单中加入一个隐藏字段(如`<s:token />`),每次提交表单时都会包含这个token值。 - 服务器端在接收到请求后会验证这个...
Struts2提供了几种策略来防止表单的重复提交,确保请求的唯一性和事务的一致性。 一、令牌(Token)机制 Struts2的Token插件是防止重复提交的一种常见方法。这里的"Strut2Token"很可能是指这个插件的应用。它的...
在Struts2的各个版本和不同过滤器设置下,GET方式提交的中文乱码问题仍然存在。一种可行的解决方案是在Tomcat服务器的配置文件`server.xml`中,修改`<Connector>`标签,添加`URIEncoding="UTF-8"`属性。这将强制...
使用说明: ...7、支持GET、POST、UPLOAD三种请求方法,您可以自由选择。(UPLOAD为Multi-Part方式提交) 8、部分漏洞测试支持UTF-8、GB2312、GBK编码转换。 9、每次操作都启用一个线程,防止界面卡死。
在这个“Struts2+jQuery实现局部刷新”的主题中,我们将探讨如何利用这两者的优势来实现页面的无刷新更新。 1. **Struts2框架介绍**: Struts2是一个基于MVC设计模式的Java Web框架,它提供了良好的结构和可扩展性...
7. **RESTful服务**:Struts2也可以创建RESTful服务,示例可能包含如何处理HTTP动词(GET、POST、PUT、DELETE)和返回JSON或XML响应。 通过研究和运行这些示例,开发者不仅可以理解Struts2的工作原理,还能快速上手...
漏洞的成因是 Struts2 标签库中的 url 标签和 a 标签的 includeParams 属性,代表显示请求访问参数的含义,一旦它的值被赋予 ALL 或者 GET 或者 POST,就会显示具体请求参数内容。按照正常的需求,把参数 urlEncode ...
在Struts2中,使用了一系列的标签库来增强JSP页面的功能,使得开发者可以更方便地实现业务逻辑与视图的分离,提高代码的可读性和可维护性。本篇文章将详细介绍Struts2中的各种标签及其应用。 1. **s:form标签**:这...
在Struts2中,文件上传功能是一个常用特性,尤其在处理用户提交的多个文件时。本文将详细讲解如何使用Struts2进行多个文件的上传,重点是使用List集合进行上传。 首先,要实现Struts2的文件上传,必须引入必要的...