在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);
}
%>
来自:http://blog.csdn.net/fhm727/archive/2009/09/03/4513811.aspx ......
说明:基于Eclipse 3.2 + Tomcat 4.0编译完成
1.完成你自己的Tag Class,javax.servlet.jsp中提供一个Tag接口类
TagSupport 和 BodyTagSupport两个类,你自己的Tag Class必须
extends其中一个。本例中HrefTag Class extends TagSupport类,并
完成了doStratTag方法的重写,主要代码如下:
public int doStartTag(){
JspWriter ōut = pageContext.getOut();
String value = getValue();
String code = getCode();
System.out.println("value = " + value);
System.out.println("code = " + code);
try{
if(code != null && value != null) {
out.print("<a href=");
out.print("'");
out.print(value);
out.print("'");
out.print(">");
out.print(code);
out.print("</a>");
}
}catch(IOException e){
System.out.println( ......
本作品采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可。
当我们通过Java程序员的视角来浏览网页时会发现:一方面用户端浏览器(IE或Firefox)以表单或链接的方式提交HTTP请求同时又处理HTTP服务器发出的响应数据,将其中的数据流(HTML数据或其它种类的数据)以适当的方式展示给使用者浏览。另一方面在Java WEB应用服务器上,一个HTTP请求可以由一个Servlet类或一个JSP网页来处理,请求数据来自于HttpServletRequest,响应数据发送至HttpServletResponse。通过用户端提交请求、服务器端处理请求、服务器端返回响应数据以及用户端处理响应数据四个步骤组成了一次HTTP请求的全部过程。数据在这四个重要环节中进行传输时,都将以指定的编码方式进行编码或解码。如果处理不当就会出现乱码问题。
用户端的处理
当用户端发出一个HTTP请求时,一个如下格式的数据将发送给服务器端:
<request-line>
<headers>
<CRLF>
[<request-body><CRLF>]
关于HTTP请求的格式,可以在HTTP协议与HTML表单(再谈GET与POST的区别)中了解更多的内容。
在此,request-line与request-body均需要进行相应的编码处理。
request-li ......
1.写一个冒泡排序的程序。
public class Sort
{
public static void main(String[] args)
{
int[] array = {2,3,4,1,43,432,1,344,234,2,3,43,32,434,3432,43,2432,432,4,43};
int num = 0;
/*
冒泡排续
*/
for(int i = 0;i < array.length;i++)
  ......
1.使用java.util.Properties类的load()方法
示例:
Java代码
InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);
InputStream in = lnew BufferedInputStream(new FileInputStream(name));
Properties p = new Properties();
p.load(in);
2.使用java.util.ResourceBundle类的getBundle()方法
示例:
Java代码
ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault());
3.使用java.util.PropertyResourceBundle类的构造函数
示例:
Java代码
InputStream in = new BufferedInputStream(new FileInputStream(name));
ResourceBundle rb = new PropertyResourceBundle(in);
InputStream in = new Buff ......
偶像崇拜(一)
你的偶像是谁?在高中时代,我的偶像是抒情浪漫、高亢激昂的空中补给(Air Supply)以及静如处子、动如脱兔的凯莉·米洛(Kylie Minogue);现在我的偶像是David Flanagan、Jonathan Knudsen、Elliotte Rusty Harold、Bruce Eckel等人。你问我David Flanagan等人唱过什么歌,喔!你误会了,他们不唱歌,他们是Java技术作家。
我认为,适当地崇拜优质的偶像,可以激励起自己“有为者亦若是”的精神,使得自己加倍努力地向偶像看齐,对于自己能力的提升有莫大的助益。崇拜的对象在于精,不在于多,你得好好地挑选出“优质的偶像”。
在学习C/C++程序设计的时代,我的偶像是Herbert Schildt和Bruce Eckel。在我学习Windows程序设计的时代,我的偶像是Jeffrey Richter和Tom Swan。而现在我全部的精力都放在Java上面,我的偶像变成了David Flanagan、Jonathan Knudsen、Bruce Eckel、Elliotte Rusty Harold。为什么是他们四个?因为他们四个都已经出过数本Java书籍,而且几乎每一本的内容都独一无二,都是经典。
David Flanagan写过的书包括Java、J2EE、JFC、JavaScript,每一本都很精采,其中的《Java in Nutshell》一书更是人手一 ......