`

out.print引起的post无法获取参数的问题?

阅读更多

问题请看分割线下面方法里的注释中的问题...找到问题的原因了..但是不知道为什么会产生这样的情况,求解答.
1.先有一个工具类如下:

 

 

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;
/**
 * 将字符串传送到页面
 * @author zcqshine
 *
 */
public class AjaxUtil {
	private String jsonResult;
	
	/**
	 * 将字符串传送到页面
	 * @param jsonResult 字符串,json格式的字符串也可以
	 */
	public AjaxUtil(String jsonResult,HttpServletResponse response){
		this.jsonResult = jsonResult;
		init(jsonResult, response);
	} 
	
	public  void init(String jsonResult,HttpServletResponse response) {
		if(jsonResult != null && jsonResult.length() > 0){
			jsonResult = jsonResult.replaceAll("[\\n\\r]", "");  //去掉换行符
		}
	
		PrintWriter out;
//		response.setContentType("text/plain;charset=utf-8");
		response.setCharacterEncoding("gbk");
		try {
			out = response.getWriter();
			out.print(jsonResult);
			out.flush();
			out.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}

	public String getJsonResult() {
		return jsonResult;
	}

	public void setJsonResult(String jsonResult) {
		this.jsonResult = jsonResult;
	}
}

 -=======================  分割线 ==========================

2. 再有一个spring注解的方法(controller注解的)

@RequestMapping(value="/callback")
	public void callback(HttpServletRequest request,HttpServletResponse response) {
                                new AjaxUtil("SUCCESS",response);	//如果这个调用放在此处, 并且外部传参数的方式是POST, 则会导致下面的request.getParameter() 方法获取不到参数以及参数值. 但是GET方式正常
    
				String r0_Cmd = formate(request.getParameter("r0_Cmd"));			
				String p1_MerId = formate(request.getParameter("p1_MerId"));		
				String p2_Order = formate(request.getParameter("p2_Order"));		
				String p3_Amt = formate(request.getParameter("p3_Amt"));			
				String r1_Code = formate(request.getParameter("r1_Code"));			
				String userid = formate(request.getParameter("userid"));			
				String gamepid = formate(request.getParameter("gamepid"));			
				String cpOrderId = formate(request.getParameter("cpOrderId"));		
				String sign = formate(request.getParameter("sign"));				
                                
                               // new AjaxUtil("SUCCESS",response);	//如果这个调用放在此处则上面的request.getParameter()不论POST还是GET方法都可以获取到参数以及参数值

                                /**
                                    其他方法体省略
                                **/

}

 

 

分享到:
评论

相关推荐

    用jsp对数据库进行增删改查操作

    out.print("<TD>" + rs.getInt("数据库成绩") + "</TD>"); out.print("<TD>" + rs.getFloat("生活费") + "</TD>"); out.print("</TR>"); } out.print("</Table>"); con.close(); } catch (SQLException e1) {...

    如何用jsp连接Access数据库.pdf

    out.print("数据库驱动程序装入错误"); } try{ String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+request.getRealPath("/")+"test.mdb"; Connection conn=DriverManager.getConnection...

    JspSmartUpload上传文件到文件夹重名问题解决方法

    out.print("服务器上的相对路径名: "); //构造服务器上的相对路径名 String name2=dir+"/"+"new.jpg"; out.print(name2); out.print(" "); %> <!-- 将上传后的图片发布 --> <img src="<%=name2 %>"> } ...

    post调用接口(附带身份验证和自带参数的方式)

    本教程将详细解释如何使用POST方法附带身份验证和自带参数来调用接口,这在开发中非常重要,尤其是在涉及到用户登录、数据提交等场景。 首先,我们要理解身份验证的概念。身份验证是确认用户或应用程序是否具有访问...

    Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法

    本文将深入探讨如何在Java中实现URL带请求参数(GET/POST)以及如何获取这两种请求的URL和参数列表。 首先,我们来看如何发送带有参数的GET和POST请求。在Java中,我们可以使用`java.net.URL`和`java.net....

    “jsp内置对象”单元习题.pdf

    7. `out.print()`方法用于输出各种类型数据但不换行。 8. `out.newLine()`方法用于输出一个换行符。 9. `out.close()`方法用于关闭输出流。 10. `out.flush()`方法用于将缓冲区中的数据输出到客户端。 11. `out....

    java发送get或post请求源码

    GET请求通常用于获取资源,参数包含在URL中。以下是一个简单的示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;...

    jsp内置对象

    - 输出文本:`out.print("Hello World")`。 - 输出换行:`out.println("Hello World")`。 - 获取缓冲区大小:`out.getBufferSize()`。 - 清空缓冲区:`out.clearBuffer()`。 - 关闭输出流:`out.close()`。 ##...

    用AJAX的Get和Post调用Servlet的简单示例.doc

    out.print("aaabbbccc"); // 输出响应内容 log.info("[cfgupdateServlet]isok!"); // 记录日志信息 out.flush(); // 刷新输出流 out.close(); // 关闭输出流 } } ``` #### 四、HTML页面与AJAX函数详解 HTML...

    jsp 知识总结1

    2. **输出**:`表达式 %>`用于输出表达式的值,等价于`out.print()`,无需分号,但代码块和声明后需加分号。示例:输出9x9乘法表。 ```jsp <% out.print("<table border='1px'>"); for(int i=0; i; i++){ out....

    WEB应用与开发-05JSP内置对象PPT文档.pptx

    示例中,`EXAMPLE2.JSP`展示了如何从Request对象中获取参数。`firstName`和`balance`分别通过`request.getParameter("fName")`和`request.getParameter("bal")`获取,然后转换处理。 3. **Response对象**: ...

    JSP初学心得

    - **请求参数获取**:在JSP页面中获取客户端传递过来的参数是常见的需求。可以通过`request.getParameter()`方法获取表单或URL中的参数值。例如: ```java String title = request.getParameter("title").trim(); ...

    jsp传值中文乱码问题解决方法示例介绍.docx

    这是因为字符编码不一致导致的,特别是在处理用户输入或从数据库获取数据时。本篇将详细介绍如何解决JSP传值过程中出现的中文乱码问题。 首先,我们需要理解乱码产生的原因。在网页中,数据的编码和解码过程需要...

    JavaWeb基础与SSH框架知识总结.docx

    10. out.print 和 out.println:out.print() 和 out.println() 都是用于输出信息的,但 out.println() 会自动添加换行符。 11. Post 提交和 Get 提交:Post 提交和 Get 提交是两种不同的提交方式,Post 提交将数据...

    关于ajax技术.pdf

    9. 服务器端响应:服务器端可以使用`Out.print()`和`Out.write()`来返回数据。`Out.print()`不会输出HTML格式,而`Out.write()`则会。若需返回多个数据,可以将它们合并成一个字符串,用自定义的分隔符(如`|`)分隔...

    jsp+ajax发送GET请求的方法.docx

    out.print(false); else out.print(true); out.flush(); out.close(); } ``` 三、JavaScript 代码 在 JavaScript 代码中,我们使用 checkUser 函数来处理用户名的输入框的失去焦点事件: ```javascript ...

    JSPServlet期末考试(A卷)

    6. **文件上传的form属性**:当表单用于上传文件时,`<form>`的`method`属性必须设置为`POST`,因为GET方式无法处理大文件上传。 7. **JSP的执行过程**:JSP在服务器端会被转换成Servlet(Java源代码),然后编译为...

    JSP大学实验报告 登录页面 实验报告 心得

    `request.getParameter()`方法获取请求参数。 4. **Java脚本段**:在JSP中嵌入Java代码,如`<% ... %>`,用于处理请求和响应。 5. **字符编码**:HTML的`charset`属性和JSP的`contentType`、`pageEncoding`属性用于...

    Spring3 MVC请求参数获取的几种方法小结

    在 Spring3 MVC 框架中,获取请求参数是非常重要的步骤,本文将介绍四种获取请求参数的方法,分别是通过@PathVariabl获取路径中的参数、@ModelAttribute获取POST请求的FORM表单数据、直接用HttpServletRequest获取...

Global site tag (gtag.js) - Google Analytics