Servlet Transfer Object Use Applet

zhaozj2021-02-17  55

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 step, 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 Person IMPLEMENTS SERIALIZABLE {/ Must implement the serializable interface to serialize private string m_name; private int m_age;

Public Person () {this ("", 0);} public person (interson) {this.m_name = name; this.m_age = age;} public string getname () {return m_name;} public int GetAMe; () {RETURN M_AGE;

Method for declaration in // Serializable interface Private void writeObject (java.io.objectOutputstream out) throws ioException {out.defaultwriteObject ();}

Method in // Serializable Interface Private Void ReadObject (Java.io.ObjectInputStream 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 = (Person) Ois.ReadObject (); Ois.Close (); System .out.println (q.getname ()); system.out.println (q.getage ());} catch (exception exp) {exp.printStackTrace ();}}}

The second step, implemented Servletpackage 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 update JavaObject Person p = new Person ( "Liaoyuan", 26); ObjectOutputStream oos = new ObjectOutputStream (new FileOutputStream (new File (fPath))); oos.writeObject (p); oos.close (); DataOutputStream DOS = New DataOutputStream (Res. GetOutputStream ()); Dos.WriteBytes ("Server Java Object Updated OK!"); dos.close ();} else if (act.equals ("getObject")) {// back 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 (classnotfoundexcep) Tion E) {p = new person ();} Ois.close (); ObjectOutputStream OOS = New ObjectOutputStream (Res. GetOutputStream (); OOS.WriteObject (p); oos.close ();}} public string getServletInfo ) {RETURN "A Simple Servlet!";}}

Step 3, implement the appletPackage Exapplet; import java.applet. *; Import java.io. *; Import java.io. *; Import java.javascript. *; Import java.javaScript. * ;. Import java.javaScript. *;

Public class myapplet 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 = 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, implementing an appletPackage Exapplet; import java.awt. *; Import java.applet. * Import java.io. *; import java.net. *; import netscape.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) {}}}

Step 5, formulate WebServer (I use Tomcat4.0) copy 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

Step 6, write HTML file call updated HTML new document for useing applet call servlet Update Java Object </ title> </ hEAD></p> <p><Body> Hello this is a test! <br> <applet id = "OBJ_APPLET" align = center code = "exapplet.myapplet" codebase = "." Width = 400 height = 300 name = "obj_applet" archive = "BV7RFD3P. ZIP "> </ APPLET> <Input type = button value =" CallAppletMethod "οnclick =" callApplet () "> <Script language = javascript> function callApplet () {obj_applet.invoke ();} </ Script> </ BODY > </ Html></p> <p>Extraction of HTML <HTML> <HEAD> <Title> New Document for Using AppleT </ Title> </ head></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-29360.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="29360" 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.047</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 = '02TjANywa2WHDjPqq3QcwfhRvuV3gO8Z3vqo3MCI4JRmt3WfPIH9jVpzMWJCB4I_2BwFdvCVZAPzX_2BGppN'; 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>