??xml version="1.0" encoding="utf-8" standalone="yes"?>
选择什么样的题材来写第二篇呢?我在W一里面有提到“JSP需要经q{译成servlet”Q那q脆在q里讲讲q个转译q程。对于网设计h员来_q个部分的知识比较多余,也不适合没有E序设计基础的h看,对于E序设计人员来说Q应该可以加深您对JSPQServlet的理解,最最重要的,我认为有了这个部分的知识Q可以方便你q行JSP的相兌试。从我现在的l验来讲Q在不借助于大型的IDE的情况下Q只为学习目的的话,我是不喜Ƣ用大型IDE的,比如NetbeanQEclipse{等Q一是太占资源,偶的本本跑v比较?(Q二是对于新手往往会在太多的菜单选项里面q失方向Q甚臌很大_֊在徏立工E、添加\删除工程文g{等事情上,难以专注于要学习的东西)QJSP的调试是比较隄。虽然运行方式非常的单,您只需要在览器地址栏输入您发布的jsp文g路径Q回车即可测试,但如果JSP包含有错误(包括~译式错误&q行时异常)Q都会输Z堆看不太懂的调用堆栈。堆栈里面往往会提及xxx.java文g的xxx行,但对于JSP开发来_看不到这些文Ӟ甚至不知道有q些文g的存在。所以,大多数情况下QJSP里面是不提倡写太过复杂的java代码的?
好了Q正式开始研IJSP到Servlet的{换过E。接着上篇讲的例子。在/webapp/hello.jspQ?a href="http://localhost:8080/tianlinux/hello.jsp">http://localhost:8080/tianlinux/hello.jspQ里Ҏ如下的代码:
单的Q只有一句代码。我们在初学java的时候,写一个hello world应该都远q不止这点代码,里面一定有文章。ƈ且,您发C吗:W一ơ访问hello.jspQ浏览器停顿了一下下Q才昄Z"Hello, JSP/Servlet"q句话,后面再次讉KQ就不会再停了。是的,q正是因为第一ơ访问jsp的时候,JSP有个转译的过E。这个过E包括以下几个步骤:
1、根据jsp文g生成java文gQ?/p>
2、调用编译器对java文gq行~译Q?/p>
3、如果编译通过Q蝲入JVMq行Q?/p>
4、将执行l果q回?/p>
我们先看W一个步骤。由jsp转化而成的java文g在什么位|呢Q我们在Tomcat的安装目录下搜烦一下,比如刚才的hello.japQ?tomcat%表示tomcat的安装目录,则在如下的\?tomcat%\work\Catalina\localhost\tianlinux\org\apache\jsp\扑ֈ了hello_jsp.java文g。打开看看。这里我们偏偏题Q看看大家一般用什么文本编辑器Q不要告诉我说您写一个简单的java文g都要用IDE哦,也不要告诉我您还在用寒的notepad哦^_^Q我推荐使用notepad++。功能跟UltraEdit基本cMQ但UE是付费的Q虽然在伟大的祖国,基本上没有需要真正付费的Q但谁知道这U天堂般的日子什么时候会到头呢?Q,notepad++是完全免费的Qƈ且加入了sourceforgeQ遵从GPLQ作者是台湾Z今吾Q侯工可是学法国文学出生的哦~。在台湾企业工作?q多Q跟很多台湾c工E师有所接触Q别的不_感觉在敬业精&技术能力上Q大陆工E师q是普遍落后于v峡那边的同胞的,q跟受到的教Ԍl济水^是有直接联系的。扯q了Q反正ؓ了一句话Qؓ了民族xxx产业Qؓ了实现自我xxxQ也Z大把的银子,大家一起努力了~。好了,打开那个hello_jsp.java了吗Q我们看到如下的代码Q?br>
以目前的情况Q我们ƈ没有必要把代码一句一句的都去搞懂。因为大部分的代码所有jsp文g转换出来都是相同Q是JSP容器已经讑֮好的。所以我们只x其中的部分?/p>
首先是import语句l。这里import了javax.servletQ注意这个包q不是JDK里面默认包含的包Q所以现在如果在cmd里面输入javac hello_jsp.javaQ当然要在这个文件的路径下输入!Q可能会出现下面的画?/p>
出现了找不到javax.servletq个包的情况Q我的机Z是q种情况。怎么办呢Q赶紧google一下解军_法?/p>
1、在环境变量讄里面扑ֈclasspathQ然后把%tomcat%/common/libdq去。注意Tomcat的版本更新十分频J,如果版本不是5.5.12Q可能文件名或者\径稍有不同,h意变通。还有需要提醒的是,完成环境变量的设|以后,需要重新开启cmd哦?/p>
2、运气好的GGMM现在已经可以正确~译了吧^_^Q但偶不是。目前没有搞清楚是什么原因,我将/common/lib加入到classpath后仍然找不到servlet{包Q所以我采用了笨办法Q将/common/lib下的q三个文Ӟservlet-api.jarQjsp-api.jarQjasper-runtime.jar都手动加Cclasspath里面Q就OK了~各位有没有更好的Ҏ或者知?不能成功的原因的Q还望不吝赐教哦?/p>
不知道您发现没有Q我在写q篇博客的时候正在听林忆莲的?a title=我坐在这? target=_blank>我坐在这?/font>》,一首很好听的,快节奏的歌,d自Lene Martin的?a title="Sitting down here" target=_blank>Sitting down here》。我喜欢在工作的时候听歌,q里推荐l大家这两首:)?/p>
接着我们会关注的是_jspServiceq个函数Q这个函数源自javax.servlet.Servlet的HttpJSPPageQ对于JSP/Servlet创徏者,不用重新定义Q只需要重载,如果是JSP创徏的,那么重蝲的过E由JSP容器来完成了。这个函数大家可以把它看作是一个callbackQ由用户~写Q但ql来调用?/p>
最后我们来看看那句在JSP里面?out.println"在java代码里面再次出现了。out对实质是JSPWriter的实例,q个对象负责字W串{等发送到客户端显C?/p>
步骤3Q?不属于本文的范畴Q不q我惛_来对这个部分做q一步的解释Q因为我对JVMq蛮有兴的哦?/p>
以上是今天的分享,包括jsp到java文g的{换&javax包的importҎ。希望大家觉得有用?br>PS:有朋友留a在第一,要求介绍一些其他的JSP容器Q由于这个部分我目前只用qTomcatQ所以将在未来对其他的JSP容器有了使用l验再向大家介绍?/p>
JSP/Servlet 的关p?
JSP QServlet 属于java web 层的技术,作用都是用来实现动态网cJSP 主要面向的是|页设计人员QServlet 主要面向的是E序设计人员。无Z采用两者中哪一U单一的技?wbr>Q你都可以解x有动态网呈现的问题。从q行方式上讲QJSP 事实上需要{译ؓServlet 才能q行Q所以,有一U说法说它们?一面两?Q这是很恰当的。Servlet 从本质上Ԍ是java E序片段?
JSP/Servlet 容器
既然 Servlet?javaE序片段Q那么它当然是不能直接运行的Q必L它放到某U运行环?wbr>当中Q它才能发挥它的作用。这个环境就是我们讲?容器"
完成了Tomcat的安装,您马上就可以启动您自q服务器了Q^_^Q如果以前没有做q,有点紧张吧?br>在启动以前,让我们先打开web览器,输入Q?a href="http://localhost:8080/">http://localhost:8080Q回车,看到了什么?“该页无法昄”一cȝ昄吧,呵呵Q不要急,马上l您一个惊喜?br>很简单:开?>E序->Apache Tomcat 5.5->configure tomcat。会看到下面那个对话框:
Z快点体验到自己徏服务器的快感Q我们不做Q何设|,先点了Start再说吧,{待启动完成。好了,现在您的计算机已l作为服务器启动了。刚才那?#8220;该页无法昄”呢?h一下试试。如果您在左上角看到那只黄猫Q您的服务器已l启动了Q?/p>
在这个网늚左边QAdministration里面Q有Tomcat Manager的链接,点击它,会弹Z个输入用户和密码的对话框Q输入刚才安装的时候的帐号密码。默认帐hadminQ密码。。。不会就忘了?)?/p>
q入了Manager的页面了吗?好了Q您可以览一下这个网늚内容Q在Applicationsq个列表里面Q列Z在当前服务器上可以浏览的所有\径。您可以随意览一下,里面如果有一些jsp的例子您现在无法理解Q没有关p,我们现在先抛开它。今天要做的最后一件事是在这个服务器上徏立自q一个web文g夹,以后我们在q个文g夹中部v我们自己的写的小web应用E序QJSP/ServletQ。目前列表中的所有\径,都是在Tomcat的安装\径下Q?webapp/xxx下面?/p>
好了Q言归正传,我们现在来徏自己的文件夹Qƈ发布到服务器上。在您的本地盘上Q意地新徏一个文件夹QƈL命名。我q里以D:/webapp/Z子。我xq个文g夹作为我的webapp文g夹,q且在服务器上,q个文g夹的名字?tianlinux"。在刚才那个manager的页面下面,Deploy栏,里面Context Path (optional): 填上"/tianlinux"Q不要引PQ,在WAR or Directory URL:填上"file:d:/webapp"Q然后点?Deploy"Q好了,看这个网늚最上面Message栏,是否已经昄"OK - Deployed application at context path /tianlinux"Q好了,现在在Applications列表里面也有/tianlinuxq个子项了。点dQ会跌{到directories list的页面。当Ӟ现在q个文g多w面没有Q何的文g和文件夹Q怪可怜的Q新Z个txt文档Q改名ؓQhello.jspQ在里面d如下一句代?br>
保存Q关闭。这时你需要reload一下这个文件夹Q就在Applications的列表里有链接~或者干脆把/tianlinux文g夹UndeployQ再重新deploy一ơ也可以?br>讉KQ?a href="http://localhost:8080/tianlinux/hello.jsp">http://localhost:8080/tianlinux/hello.jsp。如果显C出"Hello, JSP/Servlet"Q今天就打完收工了。。。第一ơ写Q好累。如果没有搞定。。。给我留a或写信吧?/p>
下期QJSP基础?/p>