`
sq1228
  • 浏览: 82283 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

jsp中get和post方法的中文问题总结

    博客分类:
  • JAVA
阅读更多

在项目中,我们经常遇到需要在jsp页面切换中传递中文字符。这主要有两种方式。 
URL方式,例如:http://website/test1.jsp?act=add&type=苹果&param=%20D%20B  
FORM方式,例如:  
                     <form name=test  mehtod="post">

                              <input type=hidden name=text2 value="中文">

                             <input type=text name=text1>

                             <input type=submit value=submit>

                    </form>

    我们将针对这两种情况,分别提供中文正确传递的解决方法。

情况1:URL方式

例如:http://website/test1.jsp?act=add&type=苹果&param=%20D%20B

一般来说我们很少直接在URL里面把参数写成中文,如例子中的"type=苹果"这样传递。如果出现这种情况,在我们的接收参数的页面我们只需要做个简单的转换就可以了。  
            代码test1.jsp:(主要部分)

           <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

       <%

           String type = request.getParameter("type");

           String result = new String(type.getBytes("iso-8859-1"), "gb2312");      

           out.println(result);   

     %>

更普遍的做法,就是对url中的中文字符进行编码,变成类似type=%20D%20B这样的字符。  
代码MyJsp1.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.net.*" %>

<a href='./MyJsp2.jsp?act=<%=URLEncoder.encode("中国人 非常好 =-")%>'>test</a>

代码MyJsp2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.net.*" %>

String tempVal = URLDecoder.decode(request.getParameter("act"));
out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

     情况2:FORM方式

     请注意,我们只是讨论在<form enctype="application/x-www-form-urlencoded" >这种形式的中文情况,因为在enctype="multipart/form-data"的时候通过解析出来中文也可以运用这种方法进行字符转化,所以不再重复讨论。

<form method=post>这种情况最简单。  
 代码MyJsp1.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

 <form action="./MyJsp2.jsp" method="post" enctype="application/x-www-form-urlencoded" >
 <input type=hidden name=act value=动作 />
 <input type=submit value=ok>
 </form>

代码MyJsp2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

request.setCharacterEncoding("gb2312");

out.println(request.getParameter("act"));

或者

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

String tempVal = request.getParameter("act");

out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));

<form method=get>情况。  
代码MyJsp1.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

 <form action="./MyJsp2.jsp" method="get" enctype="application/x-www-form-urlencoded" >
 <input type=hidden name=act value=动作 />
 <input type=submit value=ok>
 </form>

代码MyJsp2.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
String tempVal = request.getParameter("act");

out.println(new String(tempVal.getBytes("ISO-8859-1"), "gb2312"));
%>

 


import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;

/**
 * <p>Title: java mail</p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author petehero
 * @version 1.0
 */

public class SendMail
{

    public SendMail()
    {
    }
    public void send(){
        try
        {
            Properties props = new Properties();
            Session sendMailSession;
            Store store;
            Transport transport;
            props.put("mail.smtp.auth","true");
            props.put("mail.smtp.host", "smtp.yourmail.com"); //smtp主机名。
            props.put("mail.smtp.user","username@yourmail.com"); //发送方邮件地址。
            props.put("mail.smtp.password","888888"); //邮件密码。
            PopupAuthenticator popA=new PopupAuthenticator();//邮件安全认证。
            PasswordAuthentication pop = popA.performCheck("username","888888"); //填写用户名及密码
            sendMailSession = Session.getInstance(props, popA);
            Message newMessage = new MimeMessage(sendMailSession);
            newMessage.setFrom(new InternetAddress("username@yourmail.com"));
            newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("receiver@mail.com"));  //接收方邮件地址
            newMessage.setSubject("邮件主题");
            newMessage.setSentDate(new Date());
            String mailContent;
            mailContent="你好!\n\n";
            mailContent+="\t邮件正文\n\n";
            mailContent+=new Date().toLocaleString();
            newMessage.setText(mailContent); //邮件正文
            transport = sendMailSession.getTransport("smtp");
            transport.send(newMessage);
        }
        catch (MessagingException ex)
        {
            ex.printStackTrace();
        }
    }
    public static void main(String[] args)
    {
        SendMail sml = new SendMail();
        sml.send();
    }

    public class PopupAuthenticator extends Authenticator{
        String username=null;
        String password=null;
        public PopupAuthenticator(){}
        public PasswordAuthentication performCheck(String user,String pass){
            username = user;
            password = pass;
            return getPasswordAuthentication();
        }
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }

    }
}

//经测试可运行

分享到:
评论

相关推荐

    Tomcat中Get和Post出现乱码的解决办法

    在 JSP 程序中,当我们使用 GET 或 POST 方法提交中文信息时,可能会出现乱码问题。这是因为 Tomcat 对于 GET 和 POST 方法的编码处理方式不同。对于 POST 方法,Tomcat 会使用 request.setCharacterEncoding 方法...

    知识共享-jsp页面中文参数传递get和post方法分析(雷惊风).

    本文将深入探讨在JSP页面中如何正确地通过GET和POST方法传递中文参数,以及在不同场景下应采取的最佳实践。 #### 二、GET方法中文参数传递 **1. 直接在URL中传递中文参数** 直接在URL中包含中文参数,如`...

    jsp中post和get传输方式的区别

    ### jsp中post和get传输方式的区别 在Web开发领域,特别是使用Java Server Pages (JSP) 进行网页开发时,GET与POST是两种最常见的HTTP请求方法。这两种方法各有其适用场景及特点,理解它们之间的区别对于提高网站的...

    JSP-GET-POST传递的乱码问题

    然而,在处理中文参数时,尤其是通过GET和POST方法传递时,经常会出现乱码问题。这通常是由于字符编码不一致或者处理不当导致的。以下是对这一问题的详细解析: 首先,我们需要理解字符编码的基本概念。在Web中,...

    java web学习_浅谈request对象中get和post的差异

    摘要:本文将对 Java Web 中 Request 对象中 GET 和 POST 方法的差异进行分析和比较,通过代码示例和输出结果,展示 GET 和 POST 方法的不同之处,并分析其优缺点。 GET 方法和 POST 方法都是服务器的请求方式,...

    jsp 中HttpClient中的POST方法实例详解.docx

    ### jsp中HttpClient中的POST方法实例详解 #### 一、概述 在Web开发中,特别是使用JSP(Java Server Pages)进行服务器端编程时,经常需要通过HTTP客户端库(如HttpClient)来发起网络请求,包括GET和POST请求。...

    JSP页面中文参数的传递(get和post方法分析).docx

    JSP 页面中文参数的传递(get 和 post 方法分析) JSP 页面中文参数的传递是非常有用的,在实际的编程中,我们常常遇到需要在 JSP 页面切换中传递中文字符。有两种方式可以实现中文参数的传递,即 URL 方式和 FORM ...

    JSP页面中文参数的传递(get和post方法分析)

    在JSP中,参数通常通过GET和POST方法在页面之间传递,但是直接在URL中包含中文字符会导致问题,因为HTTP协议本身是基于ASCII字符集设计的。因此,在涉及中文参数传递时,必须采取相应措施来确保字符能够正确传输和...

    Ajax中get与post请求详解

    Ajax 中 get 与 post 请求的详细解释 Ajax 技术中 get 与 post 两种请求方式是...在 Ajax 中,get 和 post 两种请求方式都有其特点和缺陷,开发者应该根据实际情况选择合适的请求方式,以确保数据的安全性和可靠性。

    超强过滤器彻底解决JSP-SERVLET中文参数GET-POST传递的问题(转)

    总结,"超强过滤器"是解决JSP-Servlet之间中文参数GET-POST传递问题的有效手段,通过统一设定请求的字符编码,确保在整个Web应用中中文数据能够正确无误地传输和处理。对于大型项目,这样的全局解决方案可以大大提升...

    java乱码综合解决方法(不区分get和post)

    Java中的乱码问题是一个常见的编程挑战,特别是在处理网络请求(如GET和POST)时。本文将深入探讨如何解决这些问题,并且不局限于特定的请求类型。首先,我们需要理解字符编码的基本概念,然后分析Java中可能出现...

    JSP之表单提交get和post的区别详解及实例

    总结而言,在JSP页面中,GET和POST方法是实现表单数据提交的两种基本方式。了解它们之间的区别,并根据实际需求选择合适的方法,对于构建安全、有效的Web应用至关重要。通过本文介绍的理论知识与实例代码,相信读者...

    怎么解决JSP页面中文问题20100901

    ### 如何解决JSP页面中的中文问题 在Web开发中,尤其是使用Java Server Pages (JSP)进行开发时,处理中文字符常常会...通过以上方法,可以有效地解决JSP页面中的中文乱码问题,提高Web应用程序的用户体验和稳定性。

    JSP中文乱码问题解决办法

    JSP 中文乱码问题解决办法 JSP 页面中中文乱码问题是指在 JSP 页面中使用中文时,页面显示...解决 JSP 中文乱码问题需要从多方面入手,包括设置页面的字符编码、使用 POST 方式提交表单、使用 GET 方式提交表单等。

    jsp中文乱码问题jsp中文乱码问题详解

    在jsp中文乱码问题中,乱码的出现是由于编码格式不一致所导致的。在jsp文件中,存在三个地方的编码格式:jsp文件的存储格式、解码格式和控制浏览器的解码方式。如果这三个地方的编码格式不一致,将会出现乱码。 1. ...

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

    jsp+ajax 发送 GET 请求的方法 本文主要介绍了 jsp+ajax 发送 GET 请求的方法,包含了 Ajax 数据的发送与 JSP 文件的处理技巧。下面是详细的知识点: 一、Ajax 发送 GET 请求 Ajax 发送 GET 请求是通过创建 ...

    JSP、Servlet中get请求和post请求的区别总结

    在JavaWeb开发中,JSP和Servlet经常用来处理HTTP请求,其中包括两种主要的请求方式:GET和POST。本文将深入探讨这两种请求方式的区别。 首先,GET请求和POST请求在数据传输方式上有显著差异。GET请求将参数直接附加...

    JSP中解决中文乱码的万能方法

    ### JSP中解决中文乱码的万能方法 在JSP开发过程中,中文乱码问题是一个常见的技术难题,尤其在处理客户端与服务器之间的数据...只要按照以上介绍的方法逐一排查和调整,便可以有效地解决JSP项目中的中文乱码问题。

    JSP中文解码方法

    在JavaServer Pages (JSP)开发中,处理中文字符的编码问题是一项常见的任务。中文字符在不同的阶段可能会遇到乱码,这通常与JSP页面、HTTP请求...通过理解和应用这些原理,可以有效地管理和防止JSP中的中文乱码问题。

    Java中解决POST和GET请求的中文乱码问题.doc

    总结来说,解决Java中POST和GET请求的中文乱码问题主要涉及以下几个步骤: 1. 确保HTML表单页面使用正确的字符集(通常为UTF-8)。 2. 在服务器端接收请求时,设置请求的字符编码。 3. 对于GET请求,可能需要在...

Global site tag (gtag.js) - Google Analytics