仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2354|回复: 20
打印 上一主题 下一主题

[学习教程] JAVA网站制作之JSP WEBServer的完成道理

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。js|server|web由于要完成一个WebServer,写完了一个复杂的WebServer后突发奇想,何不完成一个JSP的WebServer呢?
有了这个设法后,就入手下手思索JSP的完成道理,实在JSP的完成也很复杂,说白了就是将其转换成一个Java文件,再对这个Java文件举行编译,天生类文件,接着再由服务器利用这个类文件。从整体上分,能够将JSP文件的内容分别为两年夜块,即输入语句和把持语句。
至于JSP文件中的HTML语句就是我们要输入的内容,而JSP标签则是把持HTML语句的输入。比方,有一个JSP文件的内容以下:
<html>
<body>
<%!java.util.Datedate=newjava.util.Date();
intsize=10;
%>
<%for(inti=0;i<size;i++){%>
<h1>Hello<%=i%>
</h1>
<%}%>
<%=date%>
</body>
</html>
这个JSP文件将发生以下效果:

Hello0
Hello1
Hello2
Hello3
Hello4
Hello5
Hello6
Hello7
Hello8
Hello9
ThuDec1618:30:21CST2004

那末,如今的成绩就是我们就天生甚么样的java文件,才干取得准确的了局。
首选写一个Interface,该接口就是我们要天生的JAVA文件将要承继的接口。其界说以下:
packagehttpserver;
importjava.net.Socket;
importjava.io.IOException;

publicinterfaceJsp2HtmlInterface{
voidprintHtml(Socketsocket)throwsIOException;
}

接上去就写一个类JavaServerPage卖力剖析JSP文件,在这个类中将会静态天生JAVA文件,并编译天生一个可用类。再挪用这个类文件的printHtml(socket)办法,将呼应信息写给客户端(个中socket为服务器accept前往的套接口。如许客户就可以看到JSP准确运转的了局。这个剖析JavaServerPage的类框架以下:
publicclassJavaServerPage{
publicJavaServerPage(Filefile,Socketsocket)throwsException{}//file为客户端哀求的一个JSP文件
//socket为服务器同客户端连接的套接口
publicvoidwriteReponse(){//这个函数将卖力依据指定的JSP文件依据某种
GeneratJava();//静态天生java文件并将编译,
Processproc=Runtime.getRuntime().exec("javac...");
try{
proc.waitFor();
}catch(InterruptedExceptionie){}
httpserver.Jsp2HtmlInterfaceobject=(httpserver.Jsp2HtmlInterface)Class.forName("...").newInstance();
object.printHtml(socket);
}
}

假定我们用某种算法将下面的JSP文件天生以下的JAVA文件
packagehttpserver;
importjava.io.*;
importjava.awt.*;
importjava.net.Socket;
publicclasstestimplementsJsp2HtmlInterface{
privatePrintStreamout;
publictest(){}
publicvoidprintln(Objectobject)throwsIOException{
out.print(object.toString()+"
");}
publicvoidprintln(inti)throwsIOException{
out.print(i+"
");}
publicvoidprintln(floati)throwsIOException{
out.print(i+"
");}
publicvoidprintln(doublei)throwsIOException{
out.print(i+"
");}
publicvoidprintln(longi)throwsIOException{
out.print(i+"
");}
publicvoidprintln(charch)throwsIOException{
out.print(ch+"
");}
publicvoidprintln(char[]ch)throwsIOException{
out.print(ch+"
");}
publicvoidprintln()throwsIOException{
out.print("
");
}
publicvoidclose(){
out.close();
}
publicvoidprintHtml(Socketsocket)throwsIOException{
out=newPrintStream(socket.getOutputStream());
this.println("<html>");
this.println("<title>Hello</title>");
this.println("<body>");
java.util.Datedate=newjava.util.Date();
intsize=10;



for(inti=0;i<size;i++){

this.println("<h1>Hello");
this.println(i);
this.println();
this.println("</h1>");
}

this.println(date);
this.println();
this.println("</body>");
this.println("</html>");
this.println();
this.close();
}
}


经由过程挪用该类printHtml()办法便可完成JSP文件的剖析。
本办法在JBuilderX情况下编译经由过程。
说到这里,人人是否是想下手完成一个自已的tomcat大概完成其余甚么静态剧本言语了。




不得不提一下的是:.net是看到java红,而开发出来的工具。
莫相离 该用户已被删除
沙发
发表于 2015-1-21 09:05:20 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
飘灵儿 该用户已被删除
板凳
发表于 2015-1-25 10:19:44 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
愤怒的大鸟 该用户已被删除
地板
发表于 2015-2-2 21:38:12 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
谁可相欹 该用户已被删除
5#
发表于 2015-2-5 20:22:14 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
再现理想 该用户已被删除
6#
发表于 2015-2-12 17:10:19 | 只看该作者
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
山那边是海 该用户已被删除
7#
发表于 2015-3-3 03:51:03 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
兰色精灵 该用户已被删除
8#
发表于 2015-3-4 23:10:37 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
柔情似水 该用户已被删除
9#
发表于 2015-3-11 21:17:46 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
活着的死人 该用户已被删除
10#
发表于 2015-3-19 13:32:12 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
冷月葬花魂 该用户已被删除
11#
发表于 2015-3-27 23:51:20 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
admin 该用户已被删除
12#
发表于 2015-4-1 16:09:56 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
乐观 该用户已被删除
13#
发表于 2015-4-2 02:45:08 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
分手快乐 该用户已被删除
14#
发表于 2015-4-3 00:12:22 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
小女巫 该用户已被删除
15#
发表于 2015-4-7 21:15:29 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
简单生活 该用户已被删除
16#
发表于 2015-4-10 06:21:56 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
海妖 该用户已被删除
17#
发表于 2015-4-19 11:53:52 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
深爱那片海 该用户已被删除
18#
发表于 2015-4-20 21:20:39 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
灵魂腐蚀 该用户已被删除
19#
发表于 2015-4-27 19:04:23 | 只看该作者
是一种为 Internet发展的计算机语言
飘飘悠悠 该用户已被删除
20#
发表于 2015-6-5 09:15:36 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 21:40

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表