`

Javaweb项目参数get传递需要编码

阅读更多
package com.ascrm.util;

import java.io.UnsupportedEncodingException;

/**
 * @author Roly
 * TODO 
 */
public class EncodeUtils {
    
    public static String decode(String s,String charset) {
        StringBuffer sb = new StringBuffer();
    	for (int i = 0; i < s.length(); i++) {
    	    char c = s.charAt(i); 
    	    switch (c) {
    	    case '+':sb.append(' ');
    			break;
    	    case '%':
    		try {
    		    sb.append((char) Integer.parseInt(s.substring(i+1, i+3), 
    						      16));
    		    i += 2;
    		} catch (NumberFormatException e) {
    		    //原样加进去
    		    sb.append(s.substring(i+1,i+3));
    		    i += 2;
    		} catch (StringIndexOutOfBoundsException e) {
    		    String rest  = s.substring(i);
    		    sb.append(rest);
    		    if (rest.length()==2)
    			i++;
    		}
    			break;
    	    default:sb.append(c);
    			break;
    	    }
    	}
    	//需要转码
    	String result = sb.toString();
    	byte [] bytes;
		try {
			bytes=result.getBytes("ISO-8859-1");
			result=new String(bytes,charset);
		}catch(Exception e) {
			System.out.println("trans error: iso8859-1 to "+charset+"!");
		}
    	return result;
    }
    
    public static String decode(String s){
        return decode(s,"utf-8");
    }
	
	/**
	 * ===================================================
	 * 检验字符串,如果为汉字则转为ASCII代码。如果为英文则原样返回。
	 * ===================================================
	 */
	public static String encode(String s,String charset) {
		String result = s;
	    try {
			result = java.net.URLEncoder.encode(s, charset);
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	    return result;
	}
	
	public static String encode(String s) {
		return encode(s,"utf-8");
	}
}

 

分享到:
评论

相关推荐

    javaWEB总结(5):GET与POST请求

    需要注意的是,对于POST请求,我们通常需要设置请求体的字符编码,避免中文等非ASCII字符出现乱码。 在实际应用中,GET常用于无副作用的操作,如获取资源信息;POST则用于有副作用的交互,如创建、修改或删除数据。...

    javaweb乱码

    这里的关键是添加`URIEncoding="GBK"`属性,该属性指定了URL中的字符编码方式,确保了通过URL传递的参数能够被正确解析。 #### 二、HTML页面头部设置 接下来,在HTML页面的`&lt;head&gt;`部分添加`&lt;meta&gt;`标签,指定页面...

    传智播客崔希凡JavaWeb-day10-java web之requestrespone-全部资料

    GET请求编码.bmp文件可能详细解释了GET方法中如何编码参数,通常参数会附加在URL后面。 2. **HTTP响应**:服务器接收到请求后,会返回一个HTTP响应,包括状态码(如200表示成功,404表示未找到)、响应头和响应体。...

    javaweb servlet(jsp)的乱码问题原理及解决

    - **GET方式**:参数通过URL传递,数据可见且长度有限制。安全性较低,因为数据直接暴露在URL中,可能会被浏览器缓存或保存到浏览记录中。效率较高,因为请求较短。 - **POST方式**:参数通过请求体传递,数据不可见...

    JavaWeb知识点总结

    - GET请求参数显式出现在URL中,POST请求参数隐藏在请求体中,POST更安全。 - GET请求效率相对较高,但参数长度有限制(通常约2KB),POST没有长度限制。 - 传送文件时,必须使用POST方式。 - 浏览器地址栏直接...

    JavaWeb增删改查

    首先,我们来看看`javaWeb`目录,这通常包含了整个项目的基础结构,包括`WEB-INF`目录,其中包含了`web.xml`部署描述符,它是配置Servlet的关键文件。在这里,你需要定义Servlet的映射路径以及初始化参数,以便在...

    学习javaweb的学习过程

    - **创建项目**:在MyEclipse中新建JavaWeb项目,并设置项目的基本信息;将项目部署到Tomcat服务器上,方便进行调试和测试。 - **资源管理**:合理组织项目结构,包括源代码、资源文件、Web应用配置文件等。 #### ...

    javaweb资源 实现学生管理系统

    7. **HTTP协议与请求响应**:了解HTTP协议的基本原理,理解请求方法(GET, POST等)和响应状态码,以及请求参数的传递。 8. **JSP标签与EL表达式**:学习JSP内置对象、脚本元素、JSTL标签库和EL(Expression ...

    JavaWeb个人学习笔记

    产生乱码的原因主要有两个:一个是浏览器与服务器之间的编码不一致,另一个是GET和POST请求提交数据时编码的问题。 - 在GET请求中,中文数据会直接附加在URL之后,由于URL是基于ASCII字符集,直接发送中文会导致...

    一个对javaWeb入门同学有点帮助的文件

    在正式开始编码之前,我们需要进行一些必要的准备工作: 1. **安装并配置开发环境**: - 安装JDK (Java Development Kit) 并配置环境变量。 - 安装Eclipse或IntelliJ IDEA等IDE (Integrated Development ...

    javaweb servlet(两种方式)和 filter的最简单实例

    Filter是JavaWeb中的一个中间件,它可以拦截请求和响应,执行一些预处理或后处理操作,如登录检查、数据过滤、字符编码转换等。创建Filter需要实现`javax.servlet.Filter`接口: ```java import javax.servlet.*; ...

    javaweb面试总结

    理解并熟练运用这些JavaWeb基础概念和机制,不仅有助于解答面试问题,更能提升实际项目中的开发效率和质量。在面试准备中,除了这些基本知识点,还需要关注MVC框架、JDBC操作、Spring Boot、Hibernate等进阶技术,...

    JavaWeb重点叙述

    被包含的文件和主文件有独立的作用域,需要通过 request、session 或 application 来传递数据。 #### Servlet 的创建步骤 1. **定义 Servlet 类**:创建一个类并继承 `HttpServlet` 类。 2. **配置 Web 应用**:在...

    JavaWeb阶段学习笔记

    // 获取GET请求参数 String name = request.getParameter("name"); // 解决GET请求乱码 String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "UTF-8"); // 设置POST请求编码 request....

    JavaWeb程序设计入门课件JSP隐式对象共8页.pdf

    - request对象:处理用户的表单提交,获取POST或GET方式传递的参数。 - session对象:用于实现用户登录状态的保持,例如记录用户信息,防止非法访问。 - application对象:存储全局变量,如网站的统计信息、配置...

    JavaWeb期中考试

    7. **过滤器与监听器**:Filter在JavaWeb中用于拦截请求和响应,实现如权限验证、字符编码转换等功能。Listener则是监听Web应用中的特定事件,如用户登录、session失效等,以实现相应的处理。 8. **EJB与JMS**:...

    javaweb开发基础

    开发者需要理解请求方法(GET、POST等)和响应状态码。同时,会话管理允许跟踪用户在网站上的活动,例如使用session或cookie来保存用户信息。 9. **过滤器和监听器**: 过滤器可以拦截HTTP请求和响应,进行预处理...

    JavaWeb开发技术-HTTP请求行.pptx

    例如,如果请求行是`GET /example.jsp HTTP/1.1`,那么Servlet容器会找到匹配的Servlet,调用doGet()方法,并传递请求和响应对象供开发者使用。 总的来说,理解HTTP请求行对于JavaWeb开发人员至关重要,因为它直接...

Global site tag (gtag.js) - Google Analytics