0 0

struts 2 jquery.ajax() 接受数据乱码问题5

先看java 后台的代码
 public String readPage(){
	    	Tomcat_Root = request.getSession().getServletContext().getRealPath("/");
	    	String fiePath = request.getParameter("rootpath");
	    	StringBuffer sb = new StringBuffer();
	    	File file = new File(fiePath);
	    	if(!file.exists()){
	    		System.out.println("找不到你要的文件");
	    	}
	    	try {
				BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
				while(true){
					String line = br.readLine();
					if(line!=null){
						sb.append(line+"\n");
					}else{
						break;
					}
				}
				br.close();
				PrintWriter  out = response.getWriter();
				//response.setCharacterEncoding("UTF-8");
				//response.setContentType("text/html");
				response.setContentType("text/html;charset=utf-8");
				
				System.out.println("sb:"+sb.toString());
				
				String des = new String(sb.toString().getBytes("UTF-8"),"UTF-8");
				
				System.out.println("des:"+des);
				
				out.print(des);
				out.flush();
				out.close();
			} catch (FileNotFoundException e) {
				e.printStackTrace();
			} catch (IOException e) {
				System.out.println("文件读取错误");
				e.printStackTrace();
			}
	    	return null;
	    }
	    


这里out.print(des) 打印是
var audioMixerServer ="iamp://192.168.60.146:5052/"
var audioArr=[{
 audioClass:"????",
 list:[
	{name:"20124215341.wav",jtUrl:"diet/audio/",volume:"45",times:"-1",len:"0",info:"MU-????????.wav"},
	{name:"20124215969.wav",jtUrl:"diet/audio/",volume:"45",times:"-1",len:"0",info:"MU-????????.wav"},
	{name:"20112314142304.wav",jtUrl:"diet/audio/",volume:"60",times:"1",len:"0",info:"????.wav"},
	{name:"20112314142336.wav",jtUrl:"diet/audio/",volume:"60",times:"1",len:"0",info:"????.wav"}
]}]


但是System.out.println("des:"+des);的打印输出是:
des:var audioMixerServer ="iamp://192.168.60.146:5052/"
var audioArr=[{
 audioClass:"基本音频",
 list:[
	{name:"20124215341.wav",jtUrl:"diet/audio/",volume:"45",times:"-1",len:"0",info:"MU-饮食开头背景音乐.wav"},
	{name:"20124215969.wav",jtUrl:"diet/audio/",volume:"45",times:"-1",len:"0",info:"MU-饮食里面背景音乐.wav"},
	{name:"20112314142304.wav",jtUrl:"diet/audio/",volume:"60",times:"1",len:"0",info:"移动音效.wav"},
	{name:"20112314142336.wav",jtUrl:"diet/audio/",volume:"60",times:"1",len:"0",info:"确定音效.wav"}
]}]


页面jquery ajax js代码:
function geteditData(name){
			var path =rootPath+name;
			alert("editData_path==="+path);
			$.ajax({  
                      async: false,  
                      cache: false,  
                      type:"POST",  
                      dataType: "text",
                      contentType:"application/x-www-form-urlencoded;charset=utf-8",
                      url: "<%=basePath%>pkg_readPage?rootpath="+path, 
                      success : function(data){
						alert("get_edit_data:"+data );
						$("#txt").val(data);
                      },
					  error: function(){
                    	  alert("trsData = error")
					  	}	
                       });
				}


这里alert()处乱的当然是乱码了。

我的jsp页面是这么设置的<%@ page language="java" import="java.util.*" contentType="text/html"  pageEncoding="utf-8"%>
struts.xml里面
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
    <constant name="struts.devMode" value="true" />
<constant name="struts.multipart.maxSize" value="104857600" />
<constant name="struts.i18n.encoding" value="utf-8"/>
还是乱码,然后写了个filter

public class MyFilter  extends HttpServlet implements Filter {

	public void doFilter(ServletRequest arg0, ServletResponse arg1,
			FilterChain arg2) throws IOException, ServletException {
		
			arg0.setCharacterEncoding("UTF-8");
			arg1.setContentType("text/html;charset=UTF-8");
			arg2.doFilter(arg0, arg1);
		
	}

	public void init(FilterConfig arg0) throws ServletException {
		// TODO Auto-generated method stub
		
	}
	
	public void destroy() {
		super.destroy(); // Just puts "destroy" string in log
		// Put your code here
		}

}


web.xml 里面的配置:
  <filter>
  		<filter-name>MyFilter</filter-name>
  		<filter-class>cn.itime.webpkg.filter.MyFilter</filter-class>
  	</filter>
  <filter-mapping>
 		 <filter-name>MyFilter</filter-name>
 		 <url-pattern>/*</url-pattern>
  </filter-mapping>



居然还是乱码,崩溃啊,,,,,,                   

求解答问题出在哪里?谢谢
2012年4月17日 15:27
目前还没有答案

相关推荐

    struts2乱码与json插件(1)

    在这个主题中,“struts2乱码与json插件”主要关注两个方面:字符编码问题和JSON数据交互。 **字符编码问题** 在开发web应用时,乱码问题经常出现,尤其是在处理用户输入或显示非ASCII字符时。Struts2框架默认使用...

    struts2_json_jquery_集成详解.docx

    Struts2、JSON和jQuery的集成是Web开发中常见的技术栈,主要目的是为了实现高效的前端交互和后端数据传输。以下是对这些知识点的详细说明: **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    Jquery通过JSON和Struts的Action交互[参照].pdf

    本示例主要介绍了如何利用jQuery通过JSON与Struts2的Action进行数据交换,从而实现前端与后端的无刷新通信。 首先,我们需要在Struts2的配置文件(通常是struts.xml)中定义一个Action,这里定义了一个名为`test`的...

    Jquery、Ajax、Struts2完成定时刷新的方法

    在这种场景下,我们可以利用JavaScript库JQuery、异步数据传输技术Ajax以及MVC框架Struts2来协同工作,创建一个定时刷新的功能。以下是详细步骤和相关知识点的解释: 1. **导入jQuery库**: 在HTML文档中,我们...

    解决ajax回调函数返回的字符串乱码问题

    然而,在使用AJAX技术时,开发者可能会遇到一个常见的问题,即从服务器返回的字符串数据在客户端浏览器中显示为乱码。这种问题通常是由于编码不一致造成的,特别是当服务器端和客户端使用了不同的字符编码时。 首先...

    JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册

    在本文中,我们将会探讨如何通过JQuery、Ajax、Struts2和Hibernate框架的整合实现一个完整的登录注册功能。这一过程涉及前后端的开发与配置,包括前端页面的搭建、后端逻辑的实现以及前后端之间的交互。在开发环境的...

    Ajax中responseText返回的是一个页面而不是一个值

    自己在struts2中的写好了业务逻辑用response返回的内容却是... 您可能感兴趣的文章:ajax的responseText乱码的问题的解决方法jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXMLAjax request response 乱码解决

    jQuery uploadify上传文件(JAVA版+Struts2即时预览效果)

    在本文中,我们将深入探讨如何在Java环境下,结合Struts2框架和jQuery的uploadify插件实现文件上传功能,特别是解决中文乱码问题。这个功能对于任何需要用户交互式上传内容的Web应用都是至关重要的。 首先,jQuery ...

    jars-struts2.3

    6. **struts2-json-plugin.jar**: 提供了JSON支持,使得Struts2可以方便地处理JSON格式的数据,适合于AJAX和移动应用开发。 7. **struts2-tiles-plugin.jar**: TILES插件整合了Apache Tiles,用于定义和管理可重用...

    struts2 spring hibernate ssh整合实例

    在这个实例中,我们不仅实现了SSH框架的基础整合,还解决了中文上传和下载时可能出现的乱码问题,并引入了基本的AJAX功能来处理JSON数据,提升了用户体验。 1. **Struts2**:Struts2作为MVC(Model-View-Controller...

    精通Java Web整合开发(JSP+AJAX+Sturts+Hibernate)

    本主题主要聚焦在JSP(Java Server Pages)、AJAX(Asynchronous JavaScript and XML)、Struts和Hibernate这四大技术的整合应用上,旨在提升Web应用的交互性和数据处理能力。 **JSP2.0**: JSP是Java EE展示层的...

    Java学习笔记-个人整理的

    {12.11.2}intersect与minus}{166}{subsection.12.11.2} {12.11.3}join}{166}{subsection.12.11.3} {12.11.3.1}cross join}{166}{subsubsection.12.11.3.1} {12.11.3.2}inner join}{167}{subsubsection.12.11.3.2...

    jquery 自动提示

    本文将深入探讨如何使用jQuery实现下拉框的自动提示功能,并解决中文乱码问题,同时结合Java后端进行讲解。 一、jQuery自动提示功能实现 1. HTML结构:首先,我们需要一个输入框(input)用于用户输入查询内容,以及...

    Jsp动态显示服务器时间

    需要注意的是,在输出当前时间之前,需要设置响应的字符编码,以避免乱码问题。 四、Struts2.xml 配置文件 在 Struts2 框架中,我们需要在 Struts2.xml 配置文件中配置 action,以便将请求映射到对应的 action 中...

    ajax请求返回的数据看不到回调函数没有执行也没报错

    在描述的问题中,开发者遇到一个棘手的情况,即使用jQuery的$.post方法发送AJAX请求,但返回的数据没有在回调函数中显示,同时也没有任何错误信息。 问题的根源在于数据结构的复杂性以及框架间的交互。项目使用SSH...

    Java面试重要知识点复习大纲.pdf

    4. **SpringMVC**:学习其工作流程,对比Struts2,解决乱码问题,熟悉组件扩展。 5. **MyBatis**:对比JDBC和Hibernate,理解动态SQL,掌握XML和注解的映射方式。 **四、脚本** 1. **JavaScript**:了解核心对象,...

    SSH项目的实现步骤.doc

    以上就是SSH项目的基本实现步骤,实际开发中可能还需要配置Spring来管理依赖,实现事务控制,以及使用其他相关技术如Ajax、jQuery等增强用户体验。同时,注意进行单元测试和集成测试,确保各个组件的正确性和整个...

    java财务系统源代码

    前后台架构: 1、java语言(jdk1.5)、struts1.2.9、hibernate3.2.6.ga、spring2.0.8 2、前台:主要使用了轻量级的ajax开发框架jQuery,使用jQuery很轻松的降低了服务器压力提高了用户体验并且代码容易维护,尤其是...

    jquery根据一个值来选中select下的option实例代码

    如果 `conclusionTypeName` 是一个全局变量,并且包含中文,需要确保其在传递过程中不会出现乱码问题。如果是在 Action 中直接设置,可能需要进行适当的编码转换。 `&lt;s:select&gt;` 是 Struts2 框架中的标签,它创建了...

Global site tag (gtag.js) - Google Analytics