|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net比java好。js
附有JSP源码(TextFileReader.jsp)及JavaBean(TextFileReader.java利用前需加以编译)
我们利用了较初期的jswdk,以是我们能够确信你也能够间接利用这些代码。
TextFileReader.java是一个bean,TextFileReader.jsp则是jsp文件。假如你也利用djswdk,并利用不异的libraryenvironment,可叫bean文件放在jswdk1-0eaexamplesjsp下的textfileaccess目次(你能够创立它),jsp文件放在jswdk1-0eaexamplesWeb-infjspbeanstextfileaccess目次,你也必需创立它。
我们利用的jsp文件其实不包括太多的java代码,次要的代码放在bean中。由此我们也能够看到JSP和JavaBean的基础接洽。
关于有履历的开辟者:
在"header"信息中我们要声名要利用、辨认哪个bean,并设置其属性。
起首,我们导进bean,假如你的jswdk设置准确并已将文件放在上述地位,那末找到resource应当没有成绩。page命令的意义是它将为全部jsp页面来举行导进。
<%@pageimport="textfileaccess.TextFileReader"%>
告知编译器我们将利用一个bean,和怎样辨认它,并举行初始化(instansiate)。scope指明被声名的对象对以后页无效。
<jsp:useBeanid="file_reader"class="textfileaccess.TextFileReader"scope="session"/>
然后我们决意要设置那些属性。这里是"FileName"。由于我们要利用Bean的setFileName办法。以是Bean的名字必需包括。
<jsp:setPropertyname="file_reader"property="FileName"/>
那就是header信息,如今我们入手下手实践的HTML页面。
<html>
<head><title>Readatextfile</title></head>
<bodybgcolor="white">
<fontsize=4>
如今我们入手下手编写一些Java剧本。起首反省文件名是不是已设置好。假如设好了,我们就显现文件,不然我们要转到另外一个页面。
<%if(file_reader.getFileName()!=""){%>
file_reader是一个bean,以是我们能够用Java类来存取它。:-)如今我们失掉文件称号!
文件称号是:<%out.println(file_reader.getFileName());%>:
文件内容,假如为空的话:
<%if(file_reader.getContent()!=null){%>
我们能够创建一个textarea(HTML)并用getRows()和getColumns()办法来调治到符合的地位。然后将文件内容放进。
<Form>
<TEXTAREArows=<%=file_reader.getRows()%>cols=<%=file_reader.getColumns()%>id=textarea1name=textarea1></FONT>
<%out.println(file_reader.getContent());%>
</TEXTAREA>
</Form>
假如文件为空,那末必定是产生了毛病,我们将失掉堕落信息:
<%}else{%>
<%out.println(file_reader.getErrorMessage());%>
<%}%>
重置一切值并前往主页:
<%file_reader.reset();%>
Doyouwantto<ahref="TextFileReader.jsp">lookatanotherfile</a>?
<%}else{%>
文件名为空,则显现堕落页面。
接待到场这里:ReadafileinJSP
这个示例在textarea中复杂地显现了文件内容?lt;p>
请填写你想看到甚么文件。并确信键进了完全的路径。<p>
创建带textboxbutton的form。注重我们不用界说form的action,由于利用了统一个页面。并注重textbox中要填进文件名字。
<formmethod=get></FONT>
FileName?<inputtype=textname=FileName></FONT>
<inputtype=submitvalue="Showit!">
</form>
<%}%>
</font>
</body>
</html>
jsp文件完成了。在细心看以下Bean中的Java代码。我假定你们中的年夜多半都熟习java,不然你怎样会到场JSP的行列。:-)
**************JSP代码:TextFileReader.jsp
<!--
TextFileReader.jsp
WrittenbyMartinLindahl
Copyright1999,w3it.com,distributedbyJSPea
-->
<%@pageimport="textfileaccess.TextFileReader"%>
<jsp:useBeanid="file_reader"class="textfileaccess.TextFileReader"scope="session"/>
<jsp:setPropertyname="file_reader"property="FileName"/>
<html>
<head><title>Readatextfile</title></head>
<bodybgcolor="white">
<fontsize=4>
<%if(file_reader.getFileName()!=""){%>
Thecontentofthefile<%out.println(file_reader.getFileName());%>:
<%if(file_reader.getContent()!=null){%>
<Form>
<TEXTAREArows=<%=file_reader.getRows()%>cols=<%=file_reader.getColumns()%>id=textarea1name=textarea1>
<%out.println(file_reader.getContent());%>
</TEXTAREA>
</Form>
<%}else{%>
<%out.println(file_reader.getErrorMessage());%>
<%}%>
<%file_reader.reset();%>
Doyouwantto<ahref="TextFileReader.jsp">lookatanotherfile</a>?
<%}else{%>
WelcometotheReadafileinJSPexample.
Theexamplesimplyshowsthefileinatextarea.<p>
Pleasefilloutwhatfileyouwanttolookat.Besuretotypethecompletepath.<p>
<formmethod=get>
FileName?<inputtype=textname=FileName>
<inputtype=submitvalue="Showit!">
</form>
<%}%>
</font>
</body>
</html>
**************JavaBeanTextFileReader.java
packagetextfileaccess;
importjava.io.*;
importjava.awt.event.*;
importjava.util.*;
/**
*TextFileReaderisabeanthatprovidesthebasicfunctionalityfor
*readingatextfile.
*/
publicclassTextFileReader{
privateStringfileName,errorMessage;
privateintcolumns,rowCount;
/**
*ConstructsaTextFileReader.
*/
publicTextFileReader(){
reset();
}
/**
*Resetsallthevariablesinthisbean.
*/
publicvoidreset(){
fileName="";
errorMessage="";
columns=0;
rowCount=0;
}
/**
*Setstheerrormessage,ifanerroroccurs.
*/
publicvoidsetErrorMessage(StringerrorMessage){
this.errorMessage=errorMessage;
}
/**
*Returnstheerrormessage,ifany.
*/
publicStringgetErrorMessage(){
returnerrorMessage;
}
/**
*Returnsthefilename.
*/
publicStringgetFileName(){
returnfileName;
}
/**
*Setsthefilename.
*/
publicvoidsetFileName(StringfileName){
this.fileName=fileName;
}
/**
*Returnstheamountofrowsinthefile.
*/
publicintgetRows(){
returnrowCount;
}
/**
*Returnsthemaximumamountofcolumnsinarow.
*/
publicintgetColumns(){
returncolumns;
}
/**
*ReturnsthecontentofthefileinaString.
*Ifanerroroccurs,likeifthefiledoesnotexists,nullisreturned.
*/
publicStringgetContent(){
Stringcontent="";
Filefile=newFile(fileName);
if(!file.exists()){
setErrorMessage("Error:Thefile"+fileName+"doesnotexists.");
returnnull;
}
elseif(file!=null){
try{
//CreateanBufferedReadersowecanreadalineatthetime.
BufferedReaderreader=newBufferedReader(newFileReader(file));
StringinLine=reader.readLine();
while(inLine!=null){
if(inLine.length()+1>columns)
columns=inLine.length()+1;
content+=(inLine+System.getProperty("line.separator"));
inLine=reader.readLine();
rowCount++;
}
returncontent;
}
catch(IOExceptione){
setErrorMessage("Errorreadingthefile:"+e.getMessage());
returnnull;
}
}
else{
setErrorMessage("Unknownerror!");
returnnull;
}
}
}
专门做了这个例子;而java的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。 |
|