设计一小web应用,有两个jsp页面,choiceFile.jsp和showFile.jsp,一个javaBean和一个servlet。用户在jsp页面choiceFile.jsp选择一个文件,提交给servlet,该Servlet负责读取文件的相关信息存放到javabean中,并请求jsp页面showFile.jsp显示javabean中的数据。
最主要代码如下:
1,控制器servlet中创建javabean对象,将该对象存储到request中,方便转发的时候showFile.jsp 的使用。
FileMessage file = new FileMessage();// 创建javabean对象
request.setAttribute("file", file);
转发后showFile.jsp的使用如下:需要强制类型转化。
FileMessage file=(FileMessage)request.getAttribute("file");
2,涉及到文件的读取:
//File(File parent, String child)
//根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File f = new File(filePath, fileName);
3,读取该文件中的内容,涉及到io流等知识。
FileReader in = new FileReader(f);
BufferedReader inTwo = new BufferedReader(in);
StringBuffer stringBuffer = new StringBuffer();
//BufferedReader inTwo = new BufferedReader(new FileReader(f));
String s = null;
while ((s = inTwo.readLine()) != null) {
stringBuffer.append("\n" + s);
}
完整代码如下:
step1,模型(javaBean)public class FileMessage {
private String filePath;
private String fileName;
private String fileContent;
private long fileLength;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public String getFileContent() {
return fileContent;
}
public void setFileContent(String fileContent) {
this.fileContent = fileContent;
}
public long getFileLength() {
return fileLength;
}
public void setFileLength(long fileLength) {
this.fileLength = fileLength;
}
}
step2:
<form action="helpReadFile" method="post" name="form">
<tr>
<td>文件的位置是D:\Favorites,</td>
<input type="hidden" value="D:\\Favorites" name="filePath">
<td>名字是:Hello.java<td>
<input type="hidden" value="hello.java" name="fileName">
<td><input type="submit" value="读取" name="submit">
</td>
</tr>
</form>
step3:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.FileMessage;
public class HandleFile extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
FileMessage file = new FileMessage();// 创建javabean对象
request.setAttribute("file", file);
String filePath = request.getParameter("filePath");
String fileName = request.getParameter("fileName");
file.setFilePath(filePath);
file.setFileName(fileName);// 将数据存储在file中
try {
//File(File parent, String child)
//根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File f = new File(filePath, fileName);
long length = f.length();
file.setFileLength(length);
FileReader in = new FileReader(f);
BufferedReader inTwo = new BufferedReader(in);
StringBuffer stringBuffer = new StringBuffer();
//BufferedReader inTwo = new BufferedReader(new FileReader(f));
String s = null;
while ((s = inTwo.readLine()) != null) {
stringBuffer.append("\n" + s);
}
String content = new String(stringBuffer);
file.setFileContent(content);
} catch (Exception e) {
e.printStackTrace();
}
RequestDispatcher dispatcher = request
.getRequestDispatcher("/showFile.jsp");
dispatcher.forward(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
step4,showFile.jsp和web.xml的配置,略。