📄 putsizefilter.java
字号:
// PutSizeFilter.java// $Id: PutSizeFilter.java,v 1.12 2000/08/16 21:37:38 ylafon Exp $// (c) COPYRIGHT MIT and INRIA, 1997.// Please first read the full copyright statement in file COPYRIGHT.htmlpackage org.w3c.jigsaw.filters;import org.w3c.tools.resources.Attribute;import org.w3c.tools.resources.AttributeHolder;import org.w3c.tools.resources.AttributeRegistry;import org.w3c.tools.resources.BooleanAttribute;import org.w3c.tools.resources.IntegerAttribute;import org.w3c.tools.resources.ReplyInterface;import org.w3c.tools.resources.RequestInterface;import org.w3c.tools.resources.ResourceFilter;import org.w3c.www.http.HTTP;import org.w3c.www.http.HttpEntityMessage;import org.w3c.www.http.HttpRequestMessage;import org.w3c.jigsaw.http.Reply;import org.w3c.jigsaw.http.Request;public class PutSizeFilter extends ResourceFilter { /** * Attribute index - The maximum size of the put document */ protected static int ATTR_PUTSIZE = -1; protected static int ATTR_STRICT = -1; static { Class c = null; Attribute a = null; try { c = Class.forName("org.w3c.jigsaw.filters.PutSizeFilter"); } catch (Exception ex) { ex.printStackTrace(); System.exit(1); } // Register the PutList URL attribute: a = new IntegerAttribute("put-size" , new Integer(65536) , Attribute.EDITABLE|Attribute.MANDATORY); ATTR_PUTSIZE = AttributeRegistry.registerAttribute(c, a); a = new BooleanAttribute("strict" , new Boolean(true) , Attribute.EDITABLE|Attribute.MANDATORY); ATTR_STRICT = AttributeRegistry.registerAttribute(c, a); } private Reply notifyFailure(Request request, boolean no_size) { Reply er = null; if (request.getExpect() != null) er = request.makeReply(HTTP.EXPECTATION_FAILED); else { if (no_size) er = request.makeReply(HTTP.LENGTH_REQUIRED); else er = request.makeReply(HTTP.REQUEST_ENTITY_TOO_LARGE); } er.setContent("<P>You are not allowed to PUT documents more than " + getInt(ATTR_PUTSIZE, -1) + " bytes long</P>"); return er; } public ReplyInterface ingoingFilter(RequestInterface req) { Request request = (Request) req; if(request.getMethod().equals("PUT")) { if(getBoolean(ATTR_STRICT, true) && !request.hasContentLength()) return notifyFailure(request, true); if(request.getContentLength() > getInt(ATTR_PUTSIZE, -1)) return notifyFailure(request, false); } return null; } public ReplyInterface outgoingFilter(RequestInterface req, ReplyInterface rep) { return null; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -