Wrox Home  
Search P2P Archive for: Go

  Return to Index  

servlets thread: Conditions in servlet??


Message #1 by bikashpaul_2001@y... on Tue, 12 Mar 2002 08:58:11
Hi all friends,

Iam developing one application(front end swing , back end servlet and http 
protocol through urlconnection) for data transfer from one destination to 
another.And application have facility of suspend of one file in between 
and start another new file from scratch and can resume that file which is 
stopped in between later.Now for that I want to put condition in servlet 
so that it can recognise two situation:-

1.if it is new file it can write in the file and
2.if it is partial file it can append into the file by opening the file in 
append mode.

But I couldn't decide what will be the syntax of condition.Can any one plz 
suggest me how i can put conditions.Any help will be highly 
appreciated.Below r my codes:-

RecvServlet.java:-
=================
public class RecvServlet extends HttpServlet { 
public static final String BASE_DIR = "d:\\temp"; 
File baseFile; 

public void init() throws ServletException { 
super.init(); 
baseFile = new File(BASE_DIR); 
} 

public void doGet(HttpServletRequest request, HttpServletResponse 
response) 
throws ServletException, IOException 
{ 
response.sendError(response.SC_NOT_ACCEPTABLE, "Must use POST method."); 
}
public void doPost(HttpServletRequest request,HttpServletResponse 
response) 
throws ServletException, IOException 
{
String filename; 
filename = request.getParameter("name"); 
String path; 
path = request.getParameter("path"); 
File outfile = new File(filename);
if (path != null && filename != null) {
outfile = new File(path, filename); 
System.err.println("Final output file: " + 
outfile.getAbsolutePath()); 
} 
DataInputStream dis; 
dis = new DataInputStream(request.getInputStream()); 
OutputStream os; 
os = new BufferedOutputStream(new FileOutputStream(outfile));   
int cc; 
byte [] buf = new byte[512]; 
long lim, tot = 0; 
lim = dis.readLong();
try { 
System.err.println("Reading " + lim + " bytes..."); 
for(cc = dis.read(buf, 0, 512); 
cc > 0 && tot < lim; 
cc = dis.read(buf, 0, 512)) 
{ 
os.write(buf, 0, cc); 
tot += cc; 
System.err.print("+" + cc + "(" + tot + ")"); 
if (tot >= lim) break; 
} 
} 
catch (IOException ie) { 
try { os.close(); } catch (Exception e2) { } 
System.err.println("Exception during file transfer!"); 
} 
System.err.println("Read " + tot + " bytes."); 
os.close();
response.setContentType("text/plain"); 
PrintStream pos = new PrintStream(response.getOutputStream()); 
pos.println(tot);
 } 
}

Regards
Bikash



  Return to Index