仓酷云

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

[学习教程] JAVA编程:JSP读取Text文件

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:28:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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的这个例子好像就是为了教学而写的,很多教学目的的例子是不考虑优化、性能的。
沙发
发表于 2015-1-21 07:44:19 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
谁可相欹 该用户已被删除
板凳
发表于 2015-1-30 11:16:15 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
柔情似水 该用户已被删除
地板
发表于 2015-2-6 10:55:31 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
山那边是海 该用户已被删除
5#
发表于 2015-2-9 02:35:15 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
精灵巫婆 该用户已被删除
6#
发表于 2015-2-26 18:34:23 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
乐观 该用户已被删除
7#
发表于 2015-3-8 16:39:50 | 只看该作者
是一种突破用户端机器环境和CPU
小妖女 该用户已被删除
8#
发表于 2015-3-16 05:51:39 | 只看该作者
是一种突破用户端机器环境和CPU
若天明 该用户已被删除
9#
发表于 2015-3-22 20:12:37 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 20:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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