2008年11月23日星期日

写了段垃圾代码,发现IE和FireFox的展现是不一样的

代码在下边
[code]
package cn.siox.web.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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

/**
* Servlet implementation class TestApp
*/
public class TestApp extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public TestApp() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
request.getSession(true);
PrintWriter out=response.getWriter();
out.println("你好,我的朋友");
out.println("path="+request.getServletPath());
out.println("The session ID="+request.getSession().getId());
out.println("session ID is New?---->"+request.getSession().isNew());
out.println("The Cookies="+request.getCookies());
out.flush();
out.close();
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}

}
[/code]

[web.xml]




test
cn.siox.web.servlet.TestApp


test
/test



[/web.xml]

起初,firefox正确解析,IE解析乱码,在浏览器端把码格式调一下OK
在发现就是IE不符合标准,firefox能正确换行IE不行
调成gbk,发现firefox又是乱码,好吧,好在firefox有自动检测功能,不像IE就是一傻子

结果:

firefox:

你好,我的朋友
path=/test
The session ID=4FA4523A641DFD9776A95ECAA46AFE58
session ID is New?---->false

IE:

你好,我的朋友 path=/test The session ID=E4FFA8C9C59A30FB2D54EE750433F589 session ID is


New?---->false The Cookies=[Ljavax.servlet.http.Cookie;@13c0b53
The Cookies=[Ljavax.servlet.http.Cookie;@e49dcd

如何才能仅匹配英文?

半天也没搞出来

[code]

public String processFile() {
String line, resultStr;
StringBuffer sb = new StringBuffer();
String regex=new String();
try {
FileInputStream fr = new FileInputStream(path);
InputStreamReader isr = new InputStreamReader(fr);
BufferedReader br = new BufferedReader(isr);

Matcher m;
Pattern p = null;
switch (index) {
case 0://匹配中文
regex = "[\u4e00-\u9fa5]";
break;
case 1://匹配英文
regex = "\\w";
break;
case 3://匹配代码
regex="^[a-zA-Z[#(/\\*)]].*[\\p{Punct}]$";
}
if (regexMore.equals("") || null == regexMore) {
regexMore = "";
p=Pattern.compile(regex);
}else{
p=Pattern.compile(regexMore+regex);
}
while ((line = br.readLine()) != null) {
m = p.matcher(line);
if (m.find()) {
sb.append(line + "\r\n");
}

}
} catch (Exception e) {
e.printStackTrace();
resultStr = "路径出错!";
return resultStr;
}
return resultStr = sb.toString();
}

[/code]

就是匹配不了全英文,郁闷了

2008年11月22日星期六

程序员与普通人的计算机

如果是外出等原因需要用到别人的计算机,而还可以选择的话,那么我一定会选用借用程序员的计算机。

为什么?

原因很简单,那就是程序员一般都是对计算机有一定了解的人,因此,用他们的计算机要比用别人的计算机来的安全;再者,程序员都是搞开发的,因此工具应该也很多,他们搞技术,所以为了应对不同架构,一般机器上都装有不同平台的开发包,比如:java 和.net,这样我可以用到的工具就多了,丰富了。

而普通人的计算机,往往比较零乱、工具又少,更有甚者,里面不知道有没有病毒。所以用起来安全而言根本就不足以考虑。

因此,如果是外出非要用到别人的计算机的话,我首选的是程序员的。