论坛首页 入门技术论坛

小型WEB服务器程序解析2

浏览 1190 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-29  
后面的请求字符串(queryString)是需要进行解析的  那么我们可以先把解析这个字符串的方法完成:


Private void parseParameter(String queryString){

Try{

//传入的两个参数是需要解析的字符串和解析的字符

java.util.StringTokenizer stk=new StringTokenizer (queryString,"&");

//把解析后id字符串装入到一个Map中间,形成一个名值对

While(stk.hasMoreElements()){

String temp=stk.nextToken();

String tempArray[]=temp.split("=");

If(tempArray==2)

{

paraMap.put(tempArray[0],tempArray[1]);}


}

}

Catch(Exception e){}

/** 存放请求参数的表 */

 private   Map<String, String> paraMap = new java.util.HashMap();


}

这个方法就完成了把请求字符串解析:Public staticString replace(String resourceStr,String fromStr,Strinf toStr)

{

java.lang.String destStr="";

Int intFromLen=fromStr.length();

Int intPos;

While((intPos=resourceStr.indexOf(fromStr))!=-1){

strDest = strDest + strSource.substring(0, intPos);

strDest = strDest + strTo;

strSource = strSource.substring(intPos + intFromLen);


}

strDest =strDest +strSource ;

Return strDest ;

}


技巧:最后我们可以在HttpServer启动的时候 直接用一个外部程序来启动浏览器,只需要在启动服务器后加上一段代码,所以在MAIN()里面可以这样来写:

HttpServer server=new HttpServer ();

Server.start();

System.out.println("simple server is starting......");

Try{

java.lang.Process startIEProcess=Runtime.geRuntime.exc("Explorer http://localhost:"+port);}

Catch(Exception e)

{

 ef.printStackTrace();


}



总结:这个简单的WEB服务器让我在写代码的时候 更加深入的理解的面向对象的思路,其实在每完成一个功能实现的时候 都可以从代码中体会到语法 方法 思路的解析 我在分析问题的时候 思路越来越清晰 虽然还不够严谨  但是慢慢会更好!


论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics