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

📄 cookiefilter.java

📁 很棒的web服务器源代码
💻 JAVA
字号:
// CookieFilter.java// $Id: CookieFilter.java,v 1.6 2000/08/17 10:18:01 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1996.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigsaw.filters;import java.net.URL;import org.w3c.tools.resources.Attribute;import org.w3c.tools.resources.AttributeHolder;import org.w3c.tools.resources.AttributeRegistry;import org.w3c.tools.resources.FramedResource;import org.w3c.tools.resources.IntegerAttribute;import org.w3c.tools.resources.ProtocolException;import org.w3c.tools.resources.ReplyInterface;import org.w3c.tools.resources.RequestInterface;import org.w3c.tools.resources.ResourceFilter;import org.w3c.tools.resources.ResourceFrame;import org.w3c.www.http.HttpCookie;import org.w3c.www.http.HttpCookieList;import org.w3c.www.http.HttpFactory;import org.w3c.www.http.HttpMessage;import org.w3c.www.http.HttpSetCookie;import org.w3c.www.http.HttpSetCookieList;import org.w3c.jigsaw.frames.HTTPFrame;import org.w3c.jigsaw.http.Reply;import org.w3c.jigsaw.http.Request;/** * A demo for how to use cookies from Jigsaw. */public class CookieFilter extends ResourceFilter {    public static final 	String NAME = "org.w3c.jigsaw.filters.counter";    /**     * Attribute index - The duration of the cookie.     */    protected static int ATTR_COOKIE_MAXAGE = -1;    static {	Class     c = null;	Attribute a = null;	try {	    c = Class.forName("org.w3c.jigsaw.filters.CookieFilter");	} catch (Exception ex) {	    ex.printStackTrace();	    System.exit(1);	}	a = new IntegerAttribute("cookie-maxage"				 , new Integer(20)				 , Attribute.EDITABLE);	ATTR_COOKIE_MAXAGE = AttributeRegistry.registerAttribute(c, a);    }    /**     * Get the cookie's allowed max age.     * @return The max allowed age in seconds.     */    public int getCookieMaxAge() {	return getInt(ATTR_COOKIE_MAXAGE, 20);    }    /**     * @return A Reply instance, if the filter did know how to answer     * the request without further processing, <strong>null</strong>      * otherwise.      * @exception org.w3c.tools.resources.ProtocolException      * If processing should be interrupted,     * because an abnormal situation occured.      */     public ReplyInterface ingoingFilter(RequestInterface request) 	throws ProtocolException    {	return null;    }    /**     * @param request The original request.     * @param reply It's original reply.      * @return A Reply instance, or <strong>null</strong> if processing      * should continue normally.      * @exception ProtocolException If processing should be interrupted,       * because an abnormal situation occured.      */    public ReplyInterface outgoingFilter(RequestInterface req, 					 ReplyInterface rep) 	throws ProtocolException    {	Request request = (Request) req;	Reply   reply   = (Reply) rep;	int count = 1;	HttpCookieList cookies = request.getCookie();	// Display and get available count:	if ( cookies != null ) {	    HttpCookie c = cookies.getCookie(NAME);	    if ( c != null ) {		System.out.println("cookie-count="+c.getValue());		try {		    count = Integer.parseInt(c.getValue())+1;		} catch (Exception ex) {		}	    }	}	String strcount = Integer.toString(count);	// Set cookie with next value:	FramedResource frame = (FramedResource) getResource();	if (frame instanceof HTTPFrame) {	    HTTPFrame target = (HTTPFrame) frame;	    HttpSetCookieList setcookies = HttpFactory.makeSetCookieList(null);	    HttpSetCookie     setcookie  = setcookies.addSetCookie(NAME,								   strcount);	    setcookie.setMaxAge(getCookieMaxAge());	    URL url = target.getURL(request);	    setcookie.setPath(url.getFile());	    setcookie.setDomain(url.getHost());	    reply.setSetCookie(setcookies);	    reply.addNoCache("Set-Cookie");	}	return null;    }}

⌨️ 快捷键说明

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