本站首页 精品导航 软件下载 精品影视 版主申请 影视下载 投诉举报 转贴工具2 转贴工具1 彩字生成
发新话题
打印

关于applet写入文件的处理

关于applet写入文件的处理

  


                  众所都知见于安全性考虑,applet在ie、netscape中没有写入文件的能力,包括本地、服务器文件。那么我们怎样才能实现一些数据的保留呢?(象本程序代码中记录积分的功能)。



一个方法是通过服务器端的servlet写入文件,applet端的代码如下:





private void Send(){

message=score "#" tf.getText ();

showStatus("Message send");

String queryString="/servlet/Javaduke.servlet.SaveServlet?message="

URLEncoder.encode(message);

p("Attempting to send:" message);

try{

connect=(new URL(chatURL,queryString)).openConnection();

showStatus("打开连接");

showStatus(connect.toString ());

System.out.println("open connection");

connect.setDefaultUseCaches(false);

connect.setUseCaches (false);

connect.setDoInput (true);

connect.setDoOutput(false);

System.out.println("dooutput false");

connect.connect();

System.out.println("open stream");

p("Made connection to" connect);

showStatus("试图连接、读取回应");

InputStreamReader reader=new InputStreamReader(connect.getInputStream ());

BufferedReader in=new BufferedReader(reader);

message=in.readLine ();

while(message!=null){

tf.setText(message);

message=in.readLine ();

}

showStatus("对话成功");

}

catch(MalformedURLException e2){

System.err.println ("MalformedURLException!");

e2.printStackTrace (System.err );

showStatus("MalformedURLException");

}

catch(IOException e1){

System.err.println ("IOException");

e1.printStackTrace (System.err);

showStatus(e1.toString ());

}

}

server端代码如下!

Servlet写入文件(www.mycgiserver.com调试成功)


  


                  






import Javax.servlet.http.*;


import Java.io.*;

import Java.util.*;



public class SaveServlet extends HttpServlet {

String counter,counter2;

//Initialize global variables

public void init(ServletConfig config) throws ServletException {

super.init(config);

}

//Service the request

public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {



File file=new File("/members/YourID/servlet/gamelog.txt");

RandomAccessFile raf;

if(!file.exists()){

raf=new RandomAccessFile(file,"rw");

counter="210#Javaduke ";

raf.seek(0);

raf.writeBytes(counter);

raf.close();

}

else{

counter=request.getParameter("message");

raf=new RandomAccessFile(file,"rw");

raf.seek(0);

raf.writeBytes(counter);

raf.close();

}

response.setContentType("text/html");

PrintWriter out = new PrintWriter (response.getOutputStream());

out.print("Saved OK!");

out.close();





}



//Get Servlet information

public String getServletInfo() {

return "game.SaveServlet Information";

}

}

TOP

发新话题