易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : jsp

如何解决 jsp 中url传值的中文乱码问题

在jsp中,如果在url中传递中文时会出现乱码,在网上关于这一问题的解决方法五花八门,但都不是很奏效!其实解决方法非常简单: 第一步:编码(以传递的参数为str为例) 在传递数据前将str进行编码Java.net.URLEncoder.encode(str) 第二步:解码 在获取数据端将得到的数据进行解码 new String(str.getBytes("ISO8859_1"))
简单示例程序如下:
<%@ page contentType="text/html;charset=gb2312" %>
<a href="ds.jsp?url=<%=java.net.URLEncoder.encode("编码的是这里","GB2312")%>">点击这里</a>
<%
//request.setCharacterEncoding("GBK");
if(request.getParameter("url")!=null)
{
str=request.getParameter("url");
//下面是解码
str=java.net.URLDecoder.decode(str,"GB2312");
str=new String(str.getBytes("ISO-8859-1"));
out.print(str);
}
%>
......

jsp的9个内建对象

在jsp中不用定义可以直接用的就是jsp的9个内建对象了
1,Request 2,Response 3,session 4,out 5,page
6,application 7,pageContext 8,config
9,exception
1、Request对象
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以
获取用户提交的信息。
当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的
字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象
即可。如下:
String
textContent=request.getParameter("boy");
byte
b[]=textContent.getBytes("ISO-8859-1");
textContent=new String(b);
Request常用的方法:
1.01 getParameter(String strTextName) 获取表单提交的信息。
String strName=request.getParameter("name");
1.02 getProtocol()
获取客户使用的协议。
String strProtocol=request.getProtocol();
1.03
getServletPath() 获取客户提交信息的页面。
String
strServlet=request.getServletPath();
1.04 getMethod()
获取客户提交信息的方式, ......

jsp转静态例子

1个Servlet:SetCharacterEncodingFilter.java
 
package com.util;
import java.io.IOException;
import javax.servlet.*;
public class SetCharacterEncodingFilter  implements Filter{
 protected String encoding = null;
 protected FilterConfig filterConfig = null;
 protected boolean ignore = true;
 public void destroy()
 {
    this.encoding = null;
    this.filterConfig = null;
 }
 public void doFilter(ServletRequest request, ServletResponse response,
     FilterChain chain) throws IOException, ServletException
 {
    if (ignore || (request.getCharacterEncoding() == null))
    {
     String encoding = selectEncoding(request);
     if (encoding != null)
      request.setCharacterEncoding(encoding);
    }
    chain.doFilter(request, response);
  ......

JSP 页面中文乱码


经常遇到关于JSP页面乱码的问题,在网上也查了相关的帖子,故在此做个关于JSP页面乱码处理的总结,和大家一同分享。   
首先先介绍几个关于页面编码参数设置的属性。   
  
<
META
 
http-equiv
=
Content
-Type 
content
=
"text/html; charset=gb2312"
>
    
这句话的意思是你浏览器查看网页的编码方式为中文,类似于浏览器上查看选项的字符编码设置,如果你查看中文的页面,你设置为UTF8查看的话,就会显示为乱码或者说是问号。所以这个属性只是用来设置浏览器显示数据的字符编码。   
下面我们具体说一下这个属性   
META,网页Html语言里Head区重要标签之一   
HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有:   
Content-Type和Content-Language (显示字符集的设定)   
说明:设定页面使用的字符集,用以说明主页制作所使用的文字以及语言,浏览器会根据此来调用相应的字符集显示page内容。   
<
Meta
  ......

JAVA/JSP 中文乱码

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。
  一、Java中文问题的由来
  Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。
  首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成
class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写
中文没关系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding
gb2312编译;对于JSP,在文件头加上或基本上就能解决这类乱码问题。
  本文要重点讨论的是第二类乱码,即Java程序与其他存储媒介交互时产生的乱码。很多存储媒介,如数据库,文件,流等的存储方式都是基于字节流的,Java程序与这些媒介交互时就会发生字符(char)与字节(byte)之间的转换,具体情况如下:
  从页面form提交数据到java程序 byte->char ......

JAVA/JSP 中文乱码

自从接触Java和JSP以来,就不断与Java的中文乱码问题打交道,现在终于得到了彻底的解决,现将我们的解决心得与大家共享。
  一、Java中文问题的由来
  Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。
  首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成
class文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。基于这种乱码,建议在Java文件中尽量不要写中文(注释部分不参与编译,写
中文没关系),如果必须写的话,尽量手动带参数-ecoding GBK或-ecoding
gb2312编译;对于JSP,在文件头加上或基本上就能解决这类乱码问题。
  本文要重点讨论的是第二类乱码,即Java程序与其他存储媒介交互时产生的乱码。很多存储媒介,如数据库,文件,流等的存储方式都是基于字节流的,Java程序与这些媒介交互时就会发生字符(char)与字节(byte)之间的转换,具体情况如下:
  从页面form提交数据到java程序 byte->char ......

struts2,jsp页面向action提交list对象

Struts2
中支持使用List在页面和Action之间直接传递表格数据。下面是一个示例:
public class Person {
int id;
String name;
int age;
float
height;
}
这是一个POJO,getter和setting省略了。
action中可以这样使用:
public class MyAction {
public List getPeopleList() { … }
public
void setPeopleList( List peopleList ) { … }

}
在我们使用Person类之前,需要添加一个配置文件,MyAction-conversion.properties,把这个文件和MyAction放在一起。
这个文件里只有一行内容:
Element_peopleList=Person
前缀Element_是一个常量,表明等号左边的表达式中跟在这个常量后面的是Action类中一个List类型的字段名。
等号右边的表达式是全类名(包含package)
下面是一个页面的代码片段:
<s:form action="update"
method="post" >
       <s:iterator value="peopleList" status="stat">
       <s:hidden name="peopleList[%{#stat.index}].id"
value=" ......
总记录数:884; 总页数:148; 每页6 条; 首页 上一页 [126] [127] [128] [129] 130 [131] [132] [133] [134] [135]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号