JSP讀取Text檔案

來源:互聯網
上載者:User
js
附有JSP源碼(TextFileReader.jsp)及JavaBean (TextFileReader.java 使用前需加以編譯)

我們使用了較早期的jswdk,所以我們可以確信你也可以直接使用這些代碼。

TextFileReader.java是一個bean, TextFileReader.jsp則是jsp檔案。如果你也使用d jswdk,並使用相同的library environment,可叫bean檔案放在jswdk1-0eaexamplesjsp下的textfileaccess目錄(你可以建立它),jsp檔案放在jswdk1-0eaexamplesWeb-infjspbeanstextfileaccess目錄,你也必須建立它。

我們使用的jsp檔案並不包含太多的java代碼,主要的代碼放在bean中。由此我們也可以看到JSP和JavaBean的基本聯絡。
對於有經驗的開發人員:

在"header"資訊中我們要申明要使用、識別哪一個bean,並設定其屬性。

首先,我們匯入bean,如果你的jswdk設定正確並已經將檔案放在上述位置,那麼找到 resource應該沒有問題。page命令的意思是它將為整個jsp頁面來進行匯入。

<%@ page import ="textfileaccess.TextFileReader" %>

告訴編譯器我們將使用一個bean,以及如何識別它,並進行初始化(instansiate)。 scope指明被申明的對象對當前頁有效。

<jsp:useBean id="file_reader"class="textfileaccess.TextFileReader" scope="session"/>

然後我們決定要設定那些屬性。這裡是"FileName"。因為我們要使用Bean的setFileName 方法。所以Bean的名字必須包含。

<jsp:setProperty name="file_reader" property="FileName"/>

那就是header資訊,現在我們開始實際的HTML頁面。

<html>

<head><title>Read a text file</title></head>

<body bgcolor="white">

<font size=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(); %>

Do you want to <a href="TextFileReader.jsp">look at another file</a>?

<% }else { %>

檔案名稱為空白,則顯示出錯頁面。

歡迎加入這裡:'Read a file in JSP'


這個樣本在textarea中簡單地顯示了檔案內容?lt;p>

請填寫你想看到什麼檔案。並確信鍵入了完整的路徑。<p>

建立帶textboxbutton的form。注意我們不必定義form的action,因為使用了同一個頁面。並注意textbox中要填入檔案名稱字。

<form method=get>< /FONT>

FileName? <input type=text name= FileName>< /FONT>

<input type=submit value="Show it!">

</form>

<% } %>

</font>

</body>

</html>

jsp檔案完成了。在仔細看以下Bean中的Java代碼。我假設你們中的大多數都熟悉java,否則你怎麼會加入JSP的行列。:-)

**************JSP代碼: TextFileReader.jsp
<!--
TextFileReader.jsp
Written by Martin Lindahl
Copyright 1999, w3it.com, distributed by JSPea
-->

<%@ page import = "textfileaccess.TextFileReader" %>

<jsp:useBean id="file_reader" class="textfileaccess.TextFileReader" scope="session"/>
<jsp:setProperty name="file_reader" property="FileName"/>

<html>
<head><title>Read a text file</title></head>
<body bgcolor="white">
<font size=4>

<% if (file_reader.getFileName() != "") { %>

The content of the file '<% out.println(file_reader.getFileName()); %>' :



<% if (file_reader.getContent() != null) { %>

<Form>
<TEXTAREA rows=<%= file_reader.getRows() %> cols=<%= file_reader.getColumns() %> id=textarea1 name=textarea1>

<% out.println(file_reader.getContent()); %>

</TEXTAREA>
</Form>

<% } else { %>
<% out.println(file_reader.getErrorMessage()); %>

<% } %>





<% file_reader.reset(); %>
Do you want to <a href="TextFileReader.jsp">look at another file</a>?


<% } else { %>

Welcome to the 'Read a file in JSP' example.

The example simply shows the file in a textarea.<p>
Please fill out what file you want to look at. Be sure to type the complete path.<p>

<form method=get>
FileName? <input type=text name=FileName>
<input type=submit value="Show it!">
</form>

<% } %>

</font>
</body>
</html>


**************Java Bean TextFileReader.java
package textfileaccess;

import java.io.*;
import java.awt.event.*;
import java.util.*;

/**
* TextFileReader is a bean that provides the basic functionality for
* reading a textfile.
*/
public class TextFileReader {

private String fileName, errorMessage;
private int columns, rowCount;

/**
* Constructs a TextFileReader.
*/
public TextFileReader() {
reset();
}

/**
* Resets all the variables in this bean.
*/
public void reset() {
fileName = "";
errorMessage = "";
columns = 0;
rowCount = 0;
}

/**
* Sets the error message, if an error occurs.
*/
public void setErrorMessage(String errorMessage) {
this.errorMessage = errorMessage;
}

/**
* Returns the error message, if any.
*/
public String getErrorMessage() {
return errorMessage;
}

/**
* Returns the filename.
*/
public String getFileName() {
return fileName;
}

/**
* Sets the filename.
*/
public void setFileName(String fileName) {
this.fileName = fileName;
}

/**
* Returns the amount of rows in the file.
*/
public int getRows() {
return rowCount;
}

/**
* Returns the maximum amount of columns in a row.
*/
public int getColumns() {
return columns;
}

/**
* Returns the content of the file in a String.
* If an error occurs, like if the file does not exists, null is returned.
*/
public String getContent() {
String content = "";
File file = new File(fileName);
if (!file.exists()) {
setErrorMessage("Error: The file '" + fileName + "' does not exists.");
return null;
}
else if (file != null) {
try {
// Create an BufferedReader so we can read a line at the time.
BufferedReader reader = new BufferedReader(new FileReader(file));
String inLine = reader.readLine();
while (inLine != null) {
if (inLine.length() + 1 > columns)
columns = inLine.length() + 1;
content += (inLine + System.getProperty("line.separator"));
inLine = reader.readLine();
rowCount++;
}
return content;
}
catch (IOException e) {
setErrorMessage("Error reading the file: " + e.getMessage());
return null;
}
}
else {
setErrorMessage("Unknown error!");
return null;
}
}
}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.