السلام عليكم
لقد قمت ببرمجة applet واحاول ان احصل على معلومات من السيرفر عن طريق servlet
فكيف استطيع ذلك علما اني حاولت كثيرا ولكن وصلت الى الياس
ولقد جربت اكواد كثيرة ولم افلح
وهذا احد الاكواد ولكن لم يعمل لدي وانا اريد عكس وظيفة هذا الكود ورابط الموقع الرابط الخاص بي
Sending a file from Applet to Servlet
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
import javax.swing.*;
public class TestApplet extends JApplet implements ActionListener
{
JButton jbutton = null;
public void init()
{
jbutton = new JButton("Send file");
jbutton.addActionListener(this);
this.getContentPane().add(jbutton);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource() == jbutton)
{
try
{
File file = new File("C:\uma.txt");
FileInputStream in = new FileInputStream(file);
byte[] buf=new byte[in.available()];
int bytesread = 0;
String toservlet = "http://localhost:8080/servlet/MyServlet";
URL servleturl = new URL(toservlet);
URLConnection servletconnection = servleturl.openConnection();
servletconnection.setDoInput(true);
servletconnection.setDoOutput(true);
servletconnection.setUseCaches(false);
servletconnection.setDefaultUseCaches(false);
DataOutputStream out=new DataOutputStream(servletconnection.getOutputStream());
while( (bytesread = in.read( buf )) > -1 )
{
out.write( buf, 0, bytesread );
}
out.flush();
out.close();
in.close();
DataInputStream inputFromClient = new DataInputStream(servletconnection.getInputStream());
//get what you want from servlet
//.......
inputFromClient.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
}
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class MyServlet extends HttpServlet
{
public void doPost(HttpServletRequest req,HttpServletResponse res)
{
ServletContext sc = this.getServletContext();
try
{
String fileName = "uma.txt";
String path = sc.getRealPath(File.separator)+fileName;
File yourFile = new File(path);
FileOutputStream toFile = new FileOutputStream( yourFile );
DataInputStream fromClient = new DataInputStream( req.getInputStream() );
byte[] buff = new byte[1024];
int cnt = 0;
while( (cnt = fromClient.read( buff )) > -1 ) {
toFile.write( buff, 0, cnt );
}
toFile.flush();
toFile.close();
fromClient.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}