Servlet Transfer Object Use Applet

zhaozj2021-02-16  42

The day before, a friend talks about the problem with the servlet and applet sharing the Java object. It is now published that there are many people in this, and there are many in the middle of the world. I hope that the demand for my friends is like this: he wants to pass the page Applet calls a server servlet, and generating a Java object from servlet to another applet, how to let servlet pass objects in real-time to applet this is a problem, there is a solution to use JMS (JavamessageService), after me There will be a narrative in the article. Here I show you a simple implementation, that is, let the applet take the initiative to access the servlet, let servlet return to the Java object. The full code and configuration are given, where the applet part covers the mutual call of JavaScript and Applet. Friends who are not interested in this part can be replied.

 First, write objects that need to be passed / ** * Class Person Just A Demo for translate this class to client * @author: rookie * @Datetime: 2002 -7-26 * / package exapplet; import java.io. *; public class pers message must implement the serializable interface to serialize private string m_name; private int m_age; public person () {this (", 0 } public person (string name, int agent) {this.m_name = name; this.m_age = age;} public string getName () {return m_name;} public int getage () {return m_age;} // serializable interface Methods of declaration Private void writeObject (java.io.objectOutputStream out) throws ioException {out.defaultwriteObject ();} // serializable Declared Method in Declaration in Interface Private Void Readobject (java.io.obj ectInputStream in) throws IOException, ClassNotFoundException {in.defaultReadObject ();} public static void main (String [] args) {try {Person p = new Person ( "Liaoyuan", 25); ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream ( New file ("test.obj"))); OOS.WriteObject (p); oos.close (); ObjectInputStream OIS = New fileInputStream (New FileInputStream (New File ("Test.Obj")); Person Q = Ois.ReadObject (); Ois.Close (); System.Out.println (Q.GetName ()); System.Out.println (Q.Getage ());} catch (exception exp) {Exp.PrintStackTrace ();}}} Second step, implement servlet package exapplet; import java.io. *; import javax.servlet. *; Import javax.servlet.http. *;

public class MyServlet extends HttpServlet {public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {String fPath = "H: //XSchool//WorkingRoom//exapplet//src//java.obj"; String act = req .getParameter ( "Action"); if (act.equals ( "UpdateObject")) {// create an updated JavaObject Person p = new Person ( "Liaoyuan", 26); ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream (new File ( FPATH)))))); OOS.WriteObject (p); oos.close (); DataOutputStream DOS = New DataPutStream (); dos.writebytes ("Server Java Object Updated OK!"); dos.close () ;} else if (act.equals ( "GetObject")) {// return the object to the Applet res.setContentType ( "application / octet-stream"); ​​Person p; ObjectInputStream ois = new ObjectInputStream (new FileInputStream (new File ( fPath))); try {p = (Person) ois.readObject ();} catch (ClassNotFoundException e) {p = new Person ();} ois.close (); ObjectOutputStream oos = new ObjectOutputStream (res.getOutputStream () ); Oos.WriteObject (p); OOS. Close ();}} public string getServletInfo () {return "a Simple servlet!";}} The third step is to implement the applet package exapplet of the call servlet update object; import java.awt. *; import java.applet. *; Import java.io. *; import java.net. *; import netscape.javaScript. *; public class myapplet extenship java.applet.applet {public void init () {} public void Paint (graphics g) {} // this method will be call in html public void invoke () {try {uRL url = new uRL ( "http: // rookie:? 8080 / workingroom / exapplet / PostToApplet Action = UpdateObject";); URLConnection urlcon = url.openConnection () Urlcon.connect (); DataInputStream DIS = New DataInputStream (Urlcon.getInputStream ());

String txt = disp.readline (); dis.close (); string [] info = new string [] {txt}; jsobject.getWindow (this) .call ("alert", info);} catch (Exception E) {}}} The fourth step is to implement the applet package exapplet; import java.applet. *; Import java.Applet. *; Import java.io. *; import java.javaScript. * ; public class MyAppletB extends java.applet.Applet {public void init () {} public void paint (Graphics g) {} // This method will be call in html public void invoke () {try {URL url = new URL ( "http: // rookie: 8080 / workingroom / exapplet / PostToApplet Action = GetObject?";); URLConnection urlcon = url.openConnection (); urlcon.connect (); ObjectInputStream ois = new ObjectInputStream (urlcon.getInputStream ()); Person P = (Person) Ois.ReadObject (); Ois.Close (); string [] info = new string [] {"Person info / n / n-name:" p.getname () "/ n- Age: " p.getage ()}; jsobject.getWindow (this) .call (" alert ", info);} catch (Exception E) {}}} The fifth step, formulated WebServer (I use Tomcat4. 0) Copy the compiled myServlet.class to the corresponding directory, edit the corresponding web.xml file, make sure the following content is correct posttoApplet exapplet.myservlet PostToApplet / exapplet / postToApplet Sixth step, write HTML file call updated HTML </p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-25842.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="25842" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.044</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'G3m7ucfUh_2F4R8PN_2Blnb04Yg2JlW7YFyTGirhuI4eVVGSwNVFbehk86B_2FVFj5W1tqmvka8njzQayDBJfHSQ9Dsg_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>