萌萌妈妈 发表于 2015-1-18 11:22:25

JAVA网站制作之用JSP构建静态网站

轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,js|静态
1、甚么是JSP

  JSP(JavaServerPages)JSP由SunMicrosystems公司倡议、很多公司介入一同创建的一种静态网页手艺尺度,其网址为http://www.javasoft.com/products/jsp。在传统的网页HTML文件(*.htm,*.html)中到场Java程序片断(Scriptlet)和JSP标志(tag),就组成了JSP网页(*.jsp)。Web服务器在碰到会见JSP网页的哀求时,起首实行个中的程序片断,然后将实行了局以HTML格局前往给客户。程序片断能够操纵数据库、从头定向网页和发送email等等,这就是创建静态网站所必要的功效。一切程序操纵都在服务器端实行,收集上传送给客户真个仅是失掉的了局,对客户扫瞄器的请求最低,能够完成无Plugin,无ActiveX,无JavaApplet,乃至无Frame。本文将先容使用JSP手艺开辟静态网页的办法,还将扼要剖析JSP手艺和Microsoft公司的ASP手艺的分歧的地方。

  2、怎样安装和启动

  为了实行JSP手艺,起首必要创建运转情况,这个历程相称复杂:

  1、在http://java.sun.com/jdk/处下载JDK(Java2SDK、StandardEdition、v1.2.2)。

  2、在http://java.sun.com/products/jsp/处下载JSWDK(JavaServerWebDevelopmentKit1.0.1)。Linux用户能够在ttp://jakarta.apache.org/处下载Tomcat3.0。

  3、安装以WindowsNT情况为例,JDK的安装是起首运转下载失掉的jdk1_2_2-win.exe,然后修正体系情况参数,在PATH参数中到场jdk1.2.2in和增添新的情况参数CLASSPATH=jdk1.2.2lib        ools.jar,个中是安装JDK的硬盘符(c:、d:等)。JSWDK的安装仅需将jswdk1_0_1-win.zip带目次开释到硬盘根目次下(c:、d:等),然后就能够在硬盘上找到jswdk-1.0.1目次。未来假如不想保存JSWDK,删除这个目次就能够了,没有任何体系文件和注册表遗留成绩。更具体的安装历程和Solaris/Unix和Linux下JDK、Tomcat的安装能够参考下载失掉的文件包中的安装申明。

  4、启动以WindowsNT情况为例,在jswdk-1.0.1目次下实行startserver.bat,便可启动JSWDK中一个撑持JSP网页手艺的Web服务器。为了不与现有的Web服务器(比方IIS、PWS等)抵触,JSWDK的Web服务器利用了8080端口。在扫瞄器的地点栏中键进http://localhost:8080大概http://127.0.0.1:8080后,假如能看到JSWDK的接待页就申明JSP实行情况已建成,可进进下一步实行。要封闭Web服务器则运转stopserver.bat。

  3、JSP复杂示例

  JSWDK中包括的Web服务器的文档目次在缺省形态下为jswdk-1.0.1webpages,主文档在缺省形态下为index.html和index.jsp。也就是说会见http://localhost:8080即是会见jswdk-1.0.1webpagesindex.html。用文本编纂器,如Windows中的记事本(Notepad),创立一个文本文件hi.jsp,保留在jswdk-1.0.1webpages目次下,其内容以下:

<html>
<head>
<title>Hi-JSP实行</title>
</head>
<body>
<%
StringMsg="ThisJSPtest.";
out.print("HelloWorld!");
%>
<h2><%=Msg%></h2>
</body>
</html>

        图1

在扫瞄器的地点栏中键进http://localhost:8080/hi.jsp,JSWDK中的Web服务器会实行JSP文件顶用<%和%>括起来的Java程序语句,个中out.print是将笔墨输入到网页,语句<%=变量|表达式%>的感化是将JavaScriptlet中变量或表达式的值输入到网页,实行了局如。将变量Msg赋值为中笔墨符串,用<%=%>输入,大概用out.print输入中笔墨符串,则在英文版NT4及Redhat6.1下实行运转了局一般,而在中文NT4.0和中文98下,则反而会呈现乱码。

  4、一致的网站界面

  JSP撑持服务器真个文件包括,便可以在一个JSP文件中拔出多个其他文件,用来完成一致的网站界面。修正上述hi.jsp并另存为mypage.jsp:

<%@includefile="top.htm"%>
<%
StringMsg="ThisJSPtest.";
out.print("HelloWorld!");
%>
<h2><%=Msg%></h2>
<%@includefile="bot.htm"%>

用可视化HTML编纂器,比方FrontPage、Dreamweave等计划网站的框架布局,将计划好的框架布局文件支解成两个部分,下面一半保留为top.htm,上面一半保留为bot.htm,代码以下面所示:

<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>我的主页</title>
</head>
<body>
<tableborder="0"width="100%"cellpadding="4"cellspacing="0"align="center">
<tr>
<tdwidth="100%"colspan="2"bgcolor="#837ED1"align="center"><fontface="隶书"
color="#FFFF00"size=5>主页题目</font>
</td>
</tr>
<tr>
<tdbgcolor="#837ED1"width="15%"valign="top"align="center"><br>
<fontcolor="#FFFFFF">选项</font><p><fontcolor="#FFFFFF">选项</font></p>
<p><fontcolor="#FFFFFF">选项</font></p>
<p><fontcolor="#FFFFFF">......</font></p>
<p> </p>
</td>
<tdwidth="85%"valign="top">
----------------------------------------------------------------------------------------------------------------
</td>
</tr>
</table>
</body>
</html>

在扫瞄器的地点栏中键进http://localhost:8080/mypage.jsp。如许网站的界面就可以一致起来,而计划者能够会合精神在功效模块上处置用户登录、毗连数据库、发送email等等。每一个JSP文件都有以下布局:


<%@includefile="top.htm"%>
<%
//完成某些功效
%>
<%@includefile="bot.htm"%>

  保护网站的界面也绝对对照简单,只需修正top.htm和bot.htm,就可以影响到一切网页。

  5、服务器参数设置

  JSWDK的Web服务器参数保留在jswdk-1.0.1webserver.xml中,用Windows写字板翻开并编纂这个文件就能够修正缺省设置值。本节内容次要针对JSWDK,Linux下Tomcat的设置办法略有分歧。

  JSWDK缺省的文档目次是jswdk-1.0.1webpages,在此目次下能够创建子目次,比方jswdk-1.0.1webpages        est,就可以在扫瞄器顶用http://localhost/test会见这个目次,为了使得这个子目次能实行JSP程序,还必需在webserver.xml中的<Service></Service>节到场:

  <WebApplicationid="test"mapping="/test"docBase="webpages/test"/>

  而且,还必需创建jswdk-1.0.1webpages        estWEB-INF目次,并从jswdk-1.0.1webpagesWEB-INF目次中复制过去以下四个文件:mappings.properties、mime.properties、servlets.properties和webapp.properties。完成这些历程,才干关照JSWDK的Web服务器实行http://localhost/test中的JSP程序。

  6、JavaBean

  JSP网页吸惹人的中央之一就是能分离JavaBean手艺来扩大网页中程序的功效。

  JavaBean是一种Java类(class),经由过程封装属性和办法成为具有某种功效大概处置某个营业的对象。JavaBean被构造成为package(数据包)以便举行办理,实践上就是把一组JavaBean一同放在某某目次中,每一个类的界说前加上package某某,本例中为test。目次test必需放在体系情况CLASSPATH包括的目次下,体系才干找到个中的JavaBean。JSWDK在缺省形态下将jswdk-1.0.1webpagesWEB-INFjspeans到场CLASSPATH。创建本人的JavaBean和package时,就放在这个目次中也不掉为一种浅易的办法。

  上面先容一个复杂的JavaBean框架。用文本编纂器创立一个文本文件helloWorld.java,并保留在jswdk-1.0.1webpagesWEB-INFjspeans        est目次下,其内容以下:

packagetest;
publicclasshelloWorld{
publicStringname="Myfirstbean";
publicStringgetHi()
{
return"Hellofrom"+name;
}
}


  helloWorld.java编纂好后,在DOS形态下,进进目次jswdk-1.0.1webpagesWEB-INFjspeans,用JDK的javac命令编译helloWorld.java以下:

  javachelloWorld.java

  注重,Java是辨别巨细写的,在程序中,编译命令行中字母的巨细写都不克不及写错。

  编译乐成就暗示创建了一个JavaBean。上面看怎样在JSP中利用这个JavaBean。用文本编纂器创立一个文本文件hi-bean.jsp,并保留在jswdk-1.0.1webpages        est目次下,其内容以下:

<html>
<head>
<title>JavaBean实验</title>
</head>
<body>
<jsp:useBeanid="helloBean"scope="session"class="test.helloWorld"/>
<%=helloBean.getHi()%>
<hr>
<%
helloBean.name="JSP";
out.print(helloBean.getHi());
%>
</body>
</html>

  在JSP网页中,利用<jsp:useBean.../>语法来创立JavaBean对象,并定名为helloBean。读者可从这个复杂的例子中看出设置、猎取JavaBean属性,和挪用JavaBean办法的做法。在扫瞄器的地点栏中键进http://localhost:8080/test/hi-bean.jsp,失掉了局如所示。

  注重,假如修正和从头编译了JavaBean程序,则必要封闭和从头启动JSWDK的Web服务器今后修正的了局才会无效。假如仅仅修正JSP文件,则不必从头启动JSWDK的Web服务器.

  固然,这仅仅完成了一个十分复杂的JavaBean框架,可是遵守这个框架能够计划出多种多样的JavaBean。比方,从JSP中会见数据一般就是经由过程JavaBean来完成的。

  7、数据库毗连

  数据库毗连对静态网站来讲是最为主要的部分,Java中毗连数据库的手艺是JDBC(JavaDatabaseConnectivity)。良多数据库体系带有JDBC驱动程序,Java程序就经由过程JDBC驱动程序与数据库相连,实行查询、提取数据等等操纵。Sun公司还开辟了JDBC-ODBCbridge,用此手艺Java程序就能够会见带有ODBC驱动程序的数据库,今朝年夜多半数据库体系都带有ODBC驱动程序,以是Java程序能会见诸如Oracle、Sybase、MSSQLServer和MSAccess等数据库。上面先容怎样用Access完成一个静态FAQ(罕见成绩及谜底)网站。

  起首创建一个Access数据库faq.mdb,个中的表faqs有字段id(主动增量型,并设为主关头字)、subject(笔墨型,长度200)、answers(备注型)。这个表中能够寄存一些编程常识的罕见成绩及谜底。

  然后,在ControlPanel(把持面板)的ODBCDatasource模块中到场SystemDSN,取名faq,并指向faq.mdb。

  创立一个JavaBean,名为faq.java,并保留在jswdk-1.0.1webpagesWEB-INFjspeans        est目次下。faq.java的内容以下:

packagetest;
importjava.sql.*;

publicclassfaq{
StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
StringsConnStr="jdbc:odbc:faq";
Connectionconn=null;
ResultSetrs=null;

publicfaq(){
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundExceptione){
System.err.println("faq():"+e.getMessage());
}
}

publicResultSetexecuteQuery(Stringsql){
rs=null;
try{
conn=DriverManager.getConnection(sConnStr);
Statementstmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch(SQLExceptionex){
System.err.println("aq.executeQuery:"+ex.getMessage());
}
returnrs;
}
}

  用上一节先容的办法编译faq.java今后,在jswdk-1.0.1webpages        est目次下创立JSP文件faq.jsp,其内容以下:

<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<title>我的FAQ!</title>
</head>
<body>
<p><b>这是我的FAQ!</b></p>
<%@pagelanguage="java"import="java.sql.*"%>
<jsp:useBeanid="workM"scope="page"class="test.faq"/>
<%
ResultSetRS=workM.executeQuery("SELECT*FROMfaqs");
Stringtt;
while(RS.next()){
tt=RS.getString("Answer");
out.print("<LI>"+RS.getString("Subject")+"</LI>");
out.print("<pre>"+tt+"</pre>");
}
RS.close();
%>

  在扫瞄器的地点栏中键进http://localhost:8080/test/faq.jsp,faq.jsp挪用JavaBean,从数据库中读出内容并输入。

  限于篇幅,本文不克不及枚举JSP-JavaBean-JDBC/ODBC-数据库的庞大例子,读者能够从本文最初所保举的网址中找到并下载到数据库毗连典范。

  8、手艺剖析

  Microsoft公司的ASP手艺也是静态网页开辟手艺。JSP和ASP从情势上十分类似,ASP程序员一眼就可以认出<%%>和<%=%>。可是深切探求下往会发明它们良多的不同,个中最次要的有以下三点:

  1、JSP的效力和平安性更高

  ASP以源码情势寄存,以注释体例运转,每次ASP网页挪用都必要对源码举行注释,运转效力不高。别的,IIS的毛病曾使得很多网站源程序年夜暴光,包含笔者之前用ASP开辟的网站,ASP程序全体被人下载了往。

  JSP在实行之前先被编译成字节码(bytecode),字节码由Java假造机(JavaVirtualMachine)注释实行,比源码注释的效力高;服务器上另有字节码的Cache机制,能进步字节码的会见效力。第一次挪用JSP网页大概稍慢,由于它被编译成Cache,今后就快很多了。同时,JSP源程序不年夜大概被下载,出格是JavaBean程序完整能够放到不合错误外的目次中。

  2、JSP的组件(Component)体例更便利

  ASP经由过程COM来扩大庞大的功效,如文件上载、发送email和将营业处置大概庞大盘算分别出来成为自力可反复使用的模块。JSP经由过程JavaBean完成了一样的功效扩大。

  在开辟方面,COM的开辟远比JavaBean庞大和烦琐,学会ASP不难,但学会开辟COM可不复杂。而JavaBean就复杂多了,从本文上述示例中能够看出开辟JavaBean很便利。

  在保护方面,COM必需在服务器上注册,假如修正了COM程序,就必需从头注册,乃至必需关机和从头启动。JavaBean则不必要注册,放在CLASSPATH包括的目次中就好了。假如JavaBean举行了修正,则JSWDK和Tomcat如今还必要封闭和从头运转(但不是关机),但开辟者已允诺将在今后的版本中做到不必要封闭服务器。

  别的JavaBean是完整的OOP,能够针对分歧的营业处置功效便利地创建一整套可反复使用的对象库,比方用户权限把持、email主动复兴等等。

  3、JSP的顺应平台更广

  ASP今朝仅合用于NT和IIS。固然Unix下有ChiliSoft的插件来撑持ASP,可是ASP自己的功效无限,必需经由过程ASP+COM的组合来扩大,Unix下的COM完成起来十分坚苦。

  JSP则分歧,几近一切平台都撑持Java,JSP+JavaBean能够在一切平台下通行无阻。NT下IIS经由过程一个插件,比方JRUN(http://www3.allaire.com/products/jrun/)大概ServletExec(http://www.newatlanta.com/),就可以撑持JSP。出名的Web服务器Apache已可以撑持JSP。因为Apache普遍使用在NT、Unix和Linux上,因而JSP有更普遍的运转平台。固然如今NT操纵体系占了很年夜的市场份额,可是在服务器方面Unix的上风仍旧很年夜,而新兴起的Linux更是来势不小。

  从一个平台移植到别的一个平台,JSP和JavaBean乃至不必从头编译,由于Java字节码都是尺度的与平台有关的。笔者将在NT下实行的JSP网页一成不变地拿到Linux下就运转起来了,感到十分中意。

  9、结论

  综上所述,JSP可谓是构建静态网站的一个利器,故保举给读者,祝福你们把握JSP,开辟出优异的网站。ASP程序员也请试一下,JSP里也有session、request、response/out等对象,亲身碰运气怎样。

  附文

  这里是关于JSP的主要参考材料,有乐趣的读者能够进一步浏览。



C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,

山那边是海 发表于 2015-1-20 21:58:59

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

简单生活 发表于 2015-1-24 06:42:07

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

小妖女 发表于 2015-1-31 21:36:33

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

活着的死人 发表于 2015-2-1 09:54:15

多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

萌萌妈妈 发表于 2015-2-2 16:32:15

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

透明 发表于 2015-2-4 20:31:28

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

老尸 发表于 2015-2-10 06:58:47

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

灵魂腐蚀 发表于 2015-2-26 17:39:27

一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。

只想知道 发表于 2015-3-8 16:22:39

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

小魔女 发表于 2015-3-8 21:41:50

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

变相怪杰 发表于 2015-3-16 14:21:11

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

兰色精灵 发表于 2015-3-22 23:13:49

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
页: [1]
查看完整版本: JAVA网站制作之用JSP构建静态网站