Avatar billede p_gaard Juniormester
02. december 2006 - 21:52 Der er 8 kommentarer og
1 løsning

At læse fil hos klient og oprette på server (servlet-applet)

Hej,

Jeg skal på en side via en applet tilbyde klienten en funktion hvor han/hun efter tryk på en kommandoknap bliver bedt om at putte en diskette med en fil (immt_lolg.txt) i sit disketttedrev.

Jeg forestiller mig ved hjælp af servlet applet koommunikation at lade en applet læse filen på klientens a-drev hvorefter den overføres til servletten som en tekststream og oprettes på serveren.

Jeg er forberedt på at løbe ind i nogle sikkerhedsproblemer hvor jeg skal til at signere appletten (f.eks.) med jarsigner og at jeg skal tildele nogle privilegier til at læse filer hos klienten.

Er der en erfaren på området der kunne fortælle om jeg er på rette spor. Gerne skrive en liste over hvad der er nødvendigt at gøre.
Avatar billede arne_v Ekspert
02. december 2006 - 22:02 #1
det lyder meget rigtigt
Avatar billede arne_v Ekspert
02. december 2006 - 22:03 #2
når jeg skal signe applets har jeg:

keygen.bat
----------

keytool -genkey -keystore %1.jks -alias %1
keytool -export -keystore %1.jks -alias %1 -file %1.cer

sign.bat
--------

javac %1.java
jar cvf %1.jar %1.class
jarsigner -keystore %2.jks %1.jar %2

og jeg bruger:

keygen arne
sign MyTrustedApplet arne
Avatar billede p_gaard Juniormester
05. december 2006 - 20:31 #3
Dine eksempler er gode. Jeg har fået signaturet til at fungere. Tak. Nu skal jeg finde ud af at overføre filen fra servletten til apletten. Jeg får returneret en fejl 500 fra servletten.
Avatar billede arne_v Ekspert
05. december 2006 - 20:37 #4
skal filen flyttes applet->servlet eller servlet->applet ?
Avatar billede p_gaard Juniormester
05. december 2006 - 21:47 #5
Apletten skal læse en fil på brugerens a-drev og sende den til servletten som opretter den modtagne stream som en fil på serveren. Dvs. applet læser lokalt, servlet skriver lokalt. Jeg tager udgangspunkt i nedenstående kode, jeg mangler bare at implementere filewriter og filereader.


import java.applet.*;
import java.net.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;

public class immt_readfile extends Applet {

public immt_readfile ()
{
try
{
URL url = new URL(getCodeBase(), "/servlet/TestServlet");
URLConnection servletConnection = url.openConnection();
servletConnection.setDoInput(true);
servletConnection.setDoOutput(true);
servletConnection.setUseCaches (false);
servletConnection.setDefaultUseCaches (false);
servletConnection.setRequestProperty ("Content-Type", "application/octet-stream");
InputStream in = servletConnection.getInputStream();
OutputStream out = servletConnection.getOutputStream();
}
catch (Exception e){};
}
}




import java.io.*;
import java.util.*;
import javax.servlet.http.*;
import javax.servlet.*;

public class TestServlet extends HttpServlet {

public void doGet(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {

// læse textstream og oprette fil på server

}
}
Avatar billede arne_v Ekspert
05. december 2006 - 21:50 #6
Avatar billede p_gaard Juniormester
05. december 2006 - 21:58 #7
tak det vil jeg studere nærmere
Avatar billede arne_v Ekspert
17. marts 2007 - 02:59 #8
kommet videre ?
Avatar billede p_gaard Juniormester
17. marts 2007 - 14:36 #9
Jeg har fået det til at fungere.

Jeg takker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester