⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xcookiedefaultserializer.java

📁 XBrowser是一个完全免费并且开源的Web浏览器
💻 JAVA
字号:
/****************************************************************
*              XBrowser  -  eXtended web Browser                *
*                                                               *
*           Copyright (c) 2000-2001  Armond Avanes              *
*     Refer to ReadMe & License files for more information      *
*                                                               *
*                                                               *
*                      By: Armond Avanes                        *
*       Armond555@yahoo.com     &    Armond333@yahoo.com        *
*                http://xbrowser.sourceforge.net/               *
*****************************************************************/
package xbrowser.cookie.io;

import java.io.*;
import java.net.*;
import java.util.*;
import java.text.*;

import xbrowser.*;
import xbrowser.util.*;
import xbrowser.cookie.*;

import org.w3c.dom.*;

public class XCookieDefaultSerializer implements XCookieSerializer
{
	public XCookieDefaultSerializer()
	{
	}

	public void importCookie(String file_name, XCookieManager cookie_manager) throws Exception
	{
	URL dtd_url = XRepository.getResourceManager().getResourceURL(DTD_URL);
	Document doc = XMLManager.readFileDocument(file_name, DTD_SYMBOL, dtd_url);
	Node node = XMLManager.findNode(doc,"xcookies").getNextSibling().getFirstChild();

		while( node!=null )
		{
			if( node instanceof Element )
			{
				if( node.getNodeName().equals("xcookie") )
					loadCookie(node, cookie_manager);
			}

			node = node.getNextSibling();
		}
	}

	private void loadCookie(Node node, XCookieManager cookie_manager) throws DOMException
	{
	XCookie cookie = new XCookie();

		cookie.setSecure( XMLManager.getNodeAttribute(node,"secure").equals("true") );

		node = node.getFirstChild();
		while( node!=null )
		{
			if( node instanceof Element )
			{
				if( node.getNodeName().equals("name") )
					cookie.setName( XMLManager.getNodeValue(node) );
				else if( node.getNodeName().equals("value") )
					cookie.setValue( XMLManager.getNodeValue(node) );
				else if( node.getNodeName().equals("path") )
					cookie.setPath( XMLManager.getNodeValue(node) );
				else if( node.getNodeName().equals("domain") )
					cookie.setDomain( XMLManager.getNodeValue(node) );
				else if( node.getNodeName().equals("comment") )
					cookie.setComment( XMLManager.getNodeValue(node) );
				else if( node.getNodeName().equals("version") )
					cookie.setVersion( buildDouble(node) );
				else if( node.getNodeName().equals("maxage") )
					cookie.setMaxAge( buildLong(node) );
			}

			node = node.getNextSibling();
		}

		cookie_manager.addCookie(cookie);
	}

	private long buildLong(Node node) throws DOMException
	{
	long i = 0;

        try
        {
	        i = Long.parseLong( XMLManager.getNodeValue(node) );
		}
		catch( Exception e )
		{
		}

		return i;
	}

	private double buildDouble(Node node) throws DOMException
	{
	double d = 0;

        try
        {
	        d = new Double(XMLManager.getNodeValue(node)).doubleValue();
		}
		catch( Exception e )
		{
		}

		return d;
	}

	public void exportCookie(String file_name, XCookieManager cookie_manager) throws Exception
	{
	Document doc = XMLManager.newDocument();
	Element root = (Element)doc.createElement("xcookies");

		doc.appendChild(root);

		//// Saving Cookies
	Iterator it = cookie_manager.getCookies();

		while( it.hasNext() )
			saveCookie( (XCookie)it.next(), doc, root);
		//// Cookies Saved

		root.normalize();

		XMLManager.writeDocument(file_name, doc, null, DTD_SYMBOL, null);
	}

	private void saveCookie(XCookie cookie, Document doc, Element parent_node)
	{
	Element node = (Element)doc.createElement("xcookie");

		node.setAttribute("secure", ""+cookie.isSecure() );

		XMLManager.addDataNodeTo(doc, node, "name", cookie.getName());
		XMLManager.addDataNodeTo(doc, node, "value", cookie.getValue());
		XMLManager.addDataNodeTo(doc, node, "path", cookie.getPath());
		XMLManager.addDataNodeTo(doc, node, "domain", cookie.getDomain());
		XMLManager.addDataNodeTo(doc, node, "comment", cookie.getComment());
		XMLManager.addDataNodeTo(doc, node, "version", ""+cookie.getVersion());
		XMLManager.addDataNodeTo(doc, node, "maxage", ""+cookie.getMaxAge());

		parent_node.appendChild(node);
	}

// Attributes:
    private final String DTD_SYMBOL = "xbrowser:default:cookie";
    private final String DTD_URL = XProjectConstants.DTD_DIR+"XCookie.dtd";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -