论坛首页 Java企业应用论坛

applet中向servlet或者action中写object对象

浏览 4556 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-02-29  
在applet中向action或者servlet写Object对象的时候,可以通过URLConnection来操作
applet端:
private URLConnection getConnect1(String urlstring) throws Exception
	{
		UserBean u = new UserBean();
		URL url = new URL(urlstring);
		URLConnection urlConn = null;
		ObjectOutputStream printout;
		urlConn = url.openConnection();
		urlConn.setDoInput(true);
		urlConn.setDoOutput(true);
		urlConn.setUseCaches(false);
		urlConn.setRequestProperty("Content-Type",
				"application/x-java-serialized-object");
		urlConn.setRequestProperty("Cookie", "JSESSIONID="+getCookie("JSESSIONID"));
		printout = new ObjectOutputStream(urlConn.getOutputStream());
		//printout.writeBytes(outputdate);
		printout.writeObject(u);
		printout.flush();
		printout.close();
		return urlConn;

	}	

服务器端:
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest req, HttpServletResponse res) {
		ObjectInputStream oin;
		try {
			oin = new ObjectInputStream(req.getInputStream());
			Object obi = oin.readObject();
			if(obi != null){
				System.out.println(obi);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;

	}
   发表时间:2008-02-29  
提个意见呗

JSESSIONID是默认的Cookie的名字,
这个名字是可以通过服务器的设置来更改的,
所以不要硬编码。
0 请登录后投票
   发表时间:2008-02-29  
请问你有实际工作源码么?我想参考下阿,谢谢
0 请登录后投票
   发表时间:2008-03-03  
applet中不要把url写死,而是通过JSObject去取得当前的url,然后加上跳转的action
0 请登录后投票
   发表时间:2008-03-03  
public String getCookie(String name) {
		   /*
		   ** get a specific cookie by its name, parse the cookie.
		   **    not used in this Applet but can be useful
		   */
		   String myCookie = getCookie();
		   String search = name + "=";
		   if (myCookie.length() > 0) {
		      int offset = myCookie.indexOf(search);
		      if (offset != -1) {
		         offset += search.length();
		         int end = myCookie.indexOf(";", offset);
		         if (end == -1) end = myCookie.length();
		         return myCookie.substring(offset,end);
		         }
		      else 
		        System.out.println("Did not find cookie: "+name);
		      }
		    return "";
		}

	public String getCookie() 
	{
	  /*
	  ** get all cookies for a document
	  */
	    JSObject myBrowser = (JSObject) JSObject.getWindow(this);
	    JSObject myDocument =  (JSObject)    
	    myBrowser.getMember("document");
	    String myCookie = (String)myDocument.getMember("cookie");
	    if (myCookie.length() > 0) {
	          return myCookie;
	    }
	    return "";
	 }
0 请登录后投票
   发表时间:2008-03-03  
如果你的服务器端有filter的话,往往你跑不到你想要去的action或者servlet;具体的你可以这样去测试
                InputStream input = urlConn.getInputStream();
		int length = input.available();
		byte[] raw = null ;
		raw = new byte[length];
		input.read(raw);
		input.close();
		System.out.println("input.available() : "+length);
		System.out.println("raw: "+new String(raw));

这样返回的可能是登入的那张jsp页面的代码,这说明你的链接程序没有问题的;
在得到URLConnection后不需要再调用connect()方法,因为在getOutputStream()的时候,程序会自动的打开一个connection
0 请登录后投票
   发表时间:2008-10-30  
有没有完整的源码下载啊。我正在学习中很多都不懂。谢谢。。
使用xml-rpc是不是要下什么包啊?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics