`

jquery的Ajax框架乱码解决

    博客分类:
  • Ajax
阅读更多

1.下面代码为服务器端获取请求信息Servlet,真正用的时候可能就是struts等

package com.adu;

import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

 
public class AjaxServer extends HttpServlet {

	private static final long serialVersionUID = -1391282338046351379L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException { 
		
		response.setContentType("text/html");
		response.setCharacterEncoding("UTF-8");   
 	 
		PrintWriter out = response.getWriter();
		
		//获取页面jquery的url提交的数据,进行处理
//		String userName = request.getParameter("name");
//		String passWord = request.getParameter("password");
		
		String name = request.getParameter("name");
 		String password = request.getParameter("password");
		
		//转换字符集编码,避免中文乱码问题
		String userName = URLDecoder.decode(name,"UTF-8");
		String passWord = URLDecoder.decode(password,"UTF-8");
			
		
		//进行逻辑判断,看输入是否合法
		if(userName.length() != 0 && userName != null && passWord.length() != 0 && passWord != null){
			
			if(userName.equals("mawanli") && passWord.equals("123")){
				
				//out.print("Welcome* "+userName+" *visit my web!");
				out.print("欢迎* "+userName+" *访问!");
				out.flush();
				out.close();
				
			}else{
				
				out.print("sorry please login again!");
//				out.print("请输入正确的用户名和密码!");
			}	
		}
		else{
			
			out.print("please input right name and password!");
			//out.print("请重新登录!");
		}
		 
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/html");
		this.doGet(req, resp);
	}

}
[/size]
2.以下是页面测试的代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>测试ajax验证登录</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  <script type="text/javascript" src="js/jquery-1.6.min.js"></script></head>
  <script type="text/javascript">
  
  //添加时间戳,以防每次测试为不同的url,解决浏览器缓存问题
function convertUrl(url) {   
	  
	  var timestamp = (new Date()).valueOf();   
      if (url.indexOf("?") >= 0) {   
       url = url + "&t=" + timestamp;   
      } else {   
         url = url + "?t=" + timestamp;   
     }   
       return url;  
     
  }
  //用encodeURI可以解决页面传值时的中文乱码问题
  function validate(){
	  var name = encodeURI(encodeURI($("#userName").val()));
      var password = encodeURI(encodeURI($("#passWord").val()));
      var url = "AjaxServer?name="+name+"&password="+password;
      url = convertUrl(url); 
       
 	  $.get(url,null,function(data){
		                       $("#result").html(data);
	                   });
  }
  
  
  </script>
    
  <body>
   <div align="center">
   <div >
   <form action="#" method="get">
   <table>
   <tr><td>用户名:</td><td><input type="text" name="userName" id="userName"/></td></tr>
   <tr><td>密&nbsp;&nbsp;&nbsp;&nbsp;码:</td><td><input type="password" id="passWord"/></td></tr>
   <tr align="right"><td colspan="2"><input type="button" value="登录" onclick="validate()"/>
   <input type="reset" value="取消"/></td></tr>
   </table> 
   </form>
   
   <div id="result"></div>
   </div>
   <hr width="600px" align="center" size="3" color="green"/>
   
   
   </div>
     
  </body>
</html>
[align=left][/align]
1
1
分享到:
评论

相关推荐

    ajax乱码解决办法

    "ajax乱码解决办法"这个主题正是针对这类问题提供解决方案。 首先,我们需要理解Ajax请求中的乱码问题通常源于以下几个方面: 1. **服务器编码设置**:服务器返回的数据可能是以特定的字符编码格式(如GBK或UTF-8...

    Ajax乱码解决方案

    ### Ajax乱码解决方案 在进行Ajax开发的过程中,经常会遇到数据编码问题导致的乱码现象。这类问题虽然看似简单,但若处理不当,则可能耗费大量时间进行调试与解决。本文将结合一个具体的案例来探讨如何有效地解决...

    JQuery发送ajax请求时中文乱码问题解决

    总结以上所述,要解决JQuery发送ajax请求时出现的中文乱码问题,需要从两个方面着手:确保Web项目的web.xml配置文件中设置了正确的字符编码过滤器,以及在JSP页面中设置了正确的字符编码,并使用POST方法发送ajax...

    使用JQuery框架设计的网页

    在描述中提到的网页可能有乱码问题,这可能与字符编码设置有关,使用jQuery可以轻松地对页面中的文本进行操作,例如修改元素的文本或替换内容,以解决可能出现的编码问题。 其次,jQuery提供了丰富的DOM操作方法,...

    JQuery的Ajax中Post方法传递中文出现乱码的解决方法

    2.解决JQuery的Ajax中Post方法传递中文出现乱码的方法: a.使用JavaScript的escape()函数处理:在传递中文参数之前,使用escape()函数对参数进行处理。这样可以将中文字符转换为十六进制数,避免了在传输过程中...

    jQuery调用AJAX时Get和post公用的乱码解决方法实例说明

    以前在新浪博客写过js调用AJAX时Get和post的乱码解决办法,但是使用js代码比较繁琐,我们在使用ajax进行数据交互时可以使用js的一个成熟框架—jQuery。 一个网站的设计,不管是注册登录还是分页查找,都需要提交参数...

    ajax请求乱码的解决方法(中文乱码)

    本文将详细介绍如何解决Ajax请求中出现的中文乱码问题。 首先,我们需要理解Ajax请求的基本原理。Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下,与服务器交换数据并更新部分网页的技术...

    JQuery.ajax传递中文参数的解决方法 推荐

    总结起来,解决JQuery.ajax传递中文参数乱码问题的核心在于: 1. 在`$.ajax`设置中指定`contentType: "application/x-www-form-urlencoded; charset=UTF-8"`。 2. 服务器端的页面响应编码(如ASP.NET的`...

    json 中文乱码解决方案

    ### json 中文乱码解决方案 在处理JSON数据时,经常会出现中文乱码的问题,尤其是在不同编码格式间进行转换时更为常见。本文将详细介绍如何解决JSON中的中文乱码问题,并提供几种简单实用的方法来帮助开发者避免这...

    ASP.NET jquery.uploadify文件上传控件测试项目(已解决中文乱码)

    ASP.NET 是微软开发的一种Web应用程序框架,用于构建动态、数据驱动的网站。在这个项目中,我们关注的是jQuery.uploadify插件,它是一个流行的JavaScript库,用于实现文件上传功能。jQuery.uploadify提供了一种用户...

    JQuery 办公系统框架可应用于CRM系统

    - **字符编码**:描述中提到的可能出现的乱码问题,可以通过在HTML文档头部设置`&lt;meta charset="UTF-8"&gt;`或在服务器端指定正确的编码来解决,确保在所有浏览器中都能正确显示UTF-8编码的字符。 - **浏览器兼容性**...

    SpringMVC+Jquery实现Ajax功能

    4. **配置过滤器**:配置`CharacterEncodingFilter`以解决POST请求可能出现的乱码问题,确保请求和响应使用UTF-8编码。 5. **配置SpringMVC配置文件**(例如`applicationContext-mvc.xml`):定义处理器映射器、...

    JQuery异步获取返回值中文乱码的解决方法

    针对JQuery异步获取返回值时遇到中文乱码的问题,文档中提出了一个有效的解决方法,这涉及了Web开发中常见的字符编码问题。为了彻底解决这一问题,我们需要从客户端到服务器端的整个数据交互流程中对字符编码进行...

    乱码问题终极解决方案

    本篇文章将针对"乱码问题终极解决方案"这个主题,深入探讨在Java、JSP和Ajax中如何有效地预防和解决乱码问题。 首先,我们要理解乱码产生的原因。乱码通常是因为字符编码不一致导致的,比如文件编码、程序内部编码...

    jquery.base64.js jquery-1.12.4.min.js

    `jquery.base64.js` 提供了方便的API,使得开发者能轻松地在JavaScript中进行Base64的处理,特别对于中文字符,该插件可以确保编码和解码过程中的正确性,避免出现乱码问题。 这两个文件在实际开发中的结合使用,...

    CakePHP使用ajax传值

    CakePHP框架中实现Ajax传值是通过AJAX (Asynchronous JavaScript and XML) 技术与后端的...通过以上知识点的掌握,开发者可以有效地在CakePHP框架中实现Ajax传值的功能,解决中文乱码和路径问题,以及优化用户体验。

    真正的JQuery.ajax传递中文参数的解决方法

    本篇文章主要探讨了如何解决jQuery.ajax在传递中文参数时出现的乱码问题。 首先,我们需要理解jQuery的默认设置。jQuery的ajax请求,默认的`contentType`是`application/x-www-form-urlencoded`,这个设置意味着...

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

    为了解决AJAX回调函数返回的字符串乱码问题,开发者可以在服务器端设置响应内容类型和字符编码,以确保数据的正确传输和解析。根据提供的文件内容,这里涉及到一个关键的操作步骤: 1. 在服务器端,无论是使用...

    Ajax传递中文参数到后台乱码的有效解决方法

    然而,当使用Ajax传递包含中文字符的参数时,由于编码和解码的不统一,经常会出现乱码问题。为解决这一问题,本文将详细介绍一种有效的方法来确保中文参数能够正确无误地传递到后端。 首先,要了解的是,乱码问题的...

    各种版本ajax使用方法及相关问题

    在使用Ajax时,可能会遇到乱码问题。这通常由于服务器返回的字符编码与页面预期的编码不一致。为解决这个问题,可以在接收到响应后设置正确的字符编码,例如: ```javascript xhr.overrideMimeType('text/plain; ...

Global site tag (gtag.js) - Google Analytics