public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException { //获取提交的文件内容:
String content=request.getParameter(\ //获得一个向客户发送数据的输出流: PrintWriter out=response.getWriter();
response.setContentType(\MIME类型。
out.println(\ out.println(\
f=new File(\ //把对文件的操作放入一个同步块中,并通知 //其它用户该文件正在被操作中: if(use.startsWith(\ { synchronized(f) { use=\ try{
RandomAccessFile file=new RandomAccessFile(f,\ file.seek(file.length()); //定位到文件的末尾。 file.writeUTF(content); file.close(); use=\
out.print(\ }
catch(IOException e){} } }
//如果该小说正在被续写,就通知客户等待: else
{out.print(\ }
out.println(\ out.println(\ }
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException {
31
doPost(request,response); } }
图7.17 使用servlet续写文件
7.7 用servlet访问数据库
有关数据库连接的一些知识可参见第5章。本节通过例子说明servlet在数据库方面的应用。我们仍然使用第5章的数据源sun ,该数据源为Server服务器上的pubs数据库,该库有一个表:students。
7.7.1 数据库记录查询
在下面的例子14中,客户通过condition.jsp页面输入查询条件,例如,查询某个姓名的成绩、查询成绩在某个分数段范围内的学生成绩等等。用户通过Post方式提交姓名给servlet;分数区间通过Get方式提交给servlet。该servlet根据不同的提交方式采取相应的查询方法。
例子14(效果如图7.18所示) 提交查询条件的JSP页面 condition.jsp:
<%@ page contentType=\