jsp应用举例-实现BS版IO操作
BS架构的IO操作:
———————-程序开始———————————–
// 客户端输入内容:
// input.jsp:
<%@page contentType="text/html" charset=utf8%>
<%-- 接收用户输入并保存到服务器上!--%>
// save.jsp,保存客户端输入的内容到服务器硬盘上:
<%@page contentType="text/html;charset=utf8" import="java.io.*"%>
<%
request.setCharacterEncoding(“utf8”); // 处理乱码
%>
<%-- 保存到服务器上!--%>
<%=this.getServletContext().getServerInfo()%>
<% // 获取完整的真实文件路径:
String file = this.getServletContext().getRealPath(“/”) + “note” + File.separator + request.getParameter(“filename”);
PrintStream save = new PrintStream(new FileOutputStream(new File(file))); // 打印流保存文件
String content = request.getParameter(“content”); // 获取客户端输入
save.print(content.replaceAll(“\r\n”, “
“));
save.close();
%>
成功保存!
// list.jsp,查看提交的文件的目录列表:
<%@page contentType="text/html;charset=utf8" import="java.io.*"%>
<%
request.setCharacterEncoding(“utf8”); // 处理乱码
// 获取完整的真实文件夹路径:
String file = this.getServletContext().getRealPath(“/”) + “note” ;
// 列出当前文件夹下所有的文件名:
String[] f = new File(file).list();
// 输出文件夹下文件名:
if (f.length > 0)
{
for (int x = 0; x < f.length; x++)
{ // 以超链接输出所有文件名,可以点击查看
%>
<%
}
%>
// look.jsp,查看保存的文件的内容:
<%@page contentType="text/html;charset=utf8" import="java.io.*"%>
<%
request.setCharacterEncoding(“utf8”); // 处理乱码
// 获取文件名:
String filename = request.getParameter(“filename”);
// 获取完整的真实文件路径:
String file = this.getServletContext().getRealPath(“/”) + “note” + File.separator + filename;
// 读取文件内容:
BufferedReader buf = new BufferedReader(new InputStreamReader(new FileInputStream(new File(file)))); // 获取缓冲输入流
String content = buf.readLine(); // 读取操作!保存的时候将所有的\r\n –>
进行隐式换行,保证只有一行!
%>
内容为:
<%=content%>
<%
buf.close(); // 关闭流输入
%>
// del.jsp, 删除某些文件:
<%@page contentType="text/html;charset=utf8" import="java.io.*"%>
<%
request.setCharacterEncoding(“utf8”); // 处理乱码
// 获取文件名:
String filename = request.getParameter(“filename”);
// 获取完整的真实文件路径:
String file = this.getServletContext().getRealPath(“/”) + “note” + File.separator + filename;
// 删除文件:
boolean flag = new File(file).delete();
if (flag == true)
{ // 客户端跳转
response.sendRedirect(“list.jsp”);
}
else
{
%>
删除失败!
2秒后自动跳转到来路页面!
<%
response.setHeader(“refresh”, “2;URL=list.jsp”);
}
%>
——————–结束———————–
——-实例二:网站计数器程序:
<%@page contentType="text/html;charset=utf8" import="java.io.*" %>
<%!
// 这里定义函数,或者声明类的全局常量
// 读取文件
public int load(String path)
{
int temp = 0; // 保存当前文件内容
try
{ // 获取缓冲流
BufferedReader buf = new BufferedReader(new InputStreamReader(new FileInputStream(new File(path))));
String str = buf.readLine(); // 读取String信息
temp = Integer.parseInt(str); // 获取int
buf.close();
}
catch (Exception e)
{
e.printStackTrace();
}
return temp;
}
// 保存文件修改
public synchronized void save(int count, String path) // 必须同步,防止同时写文件!
{
try
{
// 获取打印流
PrintStream ps = new PrintStream(new FileOutputStream(new File(path)));
ps.print(count);
ps.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
%>
<%
String path = this.getServletContext().getRealPath(“/”) + “count.txt”; // 网站访问量记录文件,默认值为1;
int count = this.load(path);
if (session.isNew())
{
this.save(++count, path); // 新访问,count加1;
}
%>
您是第<%=count%>位访问者!
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《jsp应用举例-实现BS版IO操作》
本文地址:http://www.xiupu.net/archives-193.html
关注公众号:
微信赞赏
支付宝赞赏