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

📄 context.java

📁 这是一个法律事务所系统源码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
	initializationParameters.put(name, value );    }    public Enumeration getInitParameterNames() {        return initializationParameters.keys();    }    public Object getAttribute(String name) {        if (name.startsWith("org.apache.tomcat")) {	    // XXX XXX XXX XXX Security - servlets may get too much access !!!	    // right now we don't check because we need JspServlet to	    // be able to access classloader and classpath	    	    if (name.equals("org.apache.tomcat.jsp_classpath")) {		String cp= getServletLoader().getClassPath();		return cp;	    }	    if( name.equals( "org.apache.tomcat.protection_domain") ) {		return getProtectionDomain();	    }	    if(name.equals("org.apache.tomcat.classloader")) {		return this.getServletLoader().getClassLoader();	    }	    if( name.equals(FacadeManager.FACADE_ATTRIBUTE)) {		if( ! allowAttribute(name) ) return null;		return this.getFacadeManager();	    }	    return null; // org.apache.tomcat namespace is reserved in tomcat	} else {            Object o = attributes.get(name);            return attributes.get(name);        }    }    public Enumeration getAttributeNames() {        return attributes.keys();    }    public void setAttribute(String name, Object object) {        attributes.put(name, object);    }    public void removeAttribute(String name) {        attributes.remove(name);    }    public String getDescription() {        return this.description;    }    public void setDescription(String description) {        this.description = description;    }    public void setIcon( String icon ) {    }    public boolean isDistributable() {        return this.isDistributable;    }    public void setDistributable(boolean isDistributable) {        this.isDistributable = isDistributable;    }    public void setDistributable(String s) {	// XXX    }    public int getSessionTimeOut() {        return this.sessionTimeOut;    }    public void setSessionTimeOut(int sessionTimeOut) {        this.sessionTimeOut = sessionTimeOut;    }    public FileNameMap getMimeMap() {        return mimeTypes;    }    public void addContentType( String ext, String type) {	mimeTypes.addContentType( ext, type );    }    public String getErrorPage(int errorCode) {        return getErrorPage(String.valueOf(errorCode));    }    public void addErrorPage( String errorType, String value ) {	this.errorPages.put( errorType, value );    }    public String getErrorPage(String errorCode) {        return (String)errorPages.get(errorCode);    }    /** Authentication method, if any specified     */    public String getAuthMethod() {	return authMethod;    }    /** Realm to be used     */    public String getRealmName() {	return realmName;    }    public String getFormLoginPage() {	return formLoginPage;    }    public String getFormErrorPage() {	return formErrorPage;    }    public void setFormLoginPage( String page ) {	formLoginPage=page;    }        public void setFormErrorPage( String page ) {	formErrorPage=page;    }    public void setLoginConfig( String authMethod, String realmName,				String formLoginPage, String formErrorPage)    {	// 	System.out.println("Login config: " + authMethod + " " + realmName + " " +	// 			   formLoginPage + " " + formErrorPage);	this.authMethod=authMethod;	this.realmName=realmName;	this.formLoginPage=formLoginPage;	this.formErrorPage=formErrorPage;    }    // -------------------- Mappings --------------------    /**     * Maps a named servlet to a particular path or extension.     * If the named servlet is unregistered, it will be added     * and subsequently mapped.     *     * Note that the order of resolution to handle a request is:     *     *    exact mapped servlet (eg /catalog)     *    prefix mapped servlets (eg /foo/bar/*)     *    extension mapped servlets (eg *jsp)     *    default servlet     *     */    public void addServletMapping(String path, String servletName)	throws TomcatException    {	if( mappings.get( path )!= null) {	    log( "Removing duplicate " + path + " -> " + mappings.get(path) );	    mappings.remove( path );	    Container ct=(Container)containers.get( path );	    removeContainer( ct );	}        ServletWrapper sw = (ServletWrapper)servlets.get(servletName);	if (sw == null) {	    // Workaround for frequent "bug" in web.xmls	    // Declare a default mapping	    log("Mapping with unregistered servlet " + servletName );	    sw = addServlet( servletName, servletName );	}	if( "/".equals(path) )	    defaultServlet = sw;	mappings.put( path, sw );	Container map=new Container();	map.setContext( this );	map.setHandler( sw );	map.setPath( path );	contextM.addContainer( map );	containers.put( path, map );    }    /** Will add a new security constraint:	For all paths:	if( match(path) && match(method) && match( transport ) )	then require("roles")	This is equivalent with adding a Container with the path,	method and transport. If the container will be matched,	the request will have to pass the security constraints.	    */    public void addSecurityConstraint( String path[], String methods[],				       String roles[], String transport)	throws TomcatException    {	for( int i=0; i< path.length; i++ ) {	    Container ct=new Container();	    ct.setContext( this );	    ct.setTransport( transport );	    ct.setRoles( roles );	    ct.setPath( path[i] );	    ct.setMethods( methods );	    // XXX check if exists, merge if true.	    constraints.put( path[i], ct );	    //contextM.addSecurityConstraint( this, path[i], ct);	    contextM.addContainer(  ct );	}    }    public Enumeration getContainers() {	return containers.elements();    }    public Enumeration getContainerLocations() {	return containers.keys();    }    public Container getContainer( String path ) {	return (Container)containers.get(path);    }    // return the container associated with this context -    // which is also the default container    public Container getContainer() {	return defaultContainer;    }    public void removeContainer( Container ct ) {	containers.remove(ct.getPath());    }//     public ServletWrapper getDefaultServlet() {// 	if( defaultServlet==null)// 	    defaultServlet=getServletByName(Constants.DEFAULT_SERVLET_NAME );// 	return defaultServlet;//     }    // -------------------- Servlets management --------------------    // XXX do we need that ??    /** Remove the servlet with a specific name     */    public void removeServletByName(String servletName)	throws TomcatException    {	servlets.remove( servletName );    }    public ServletWrapper getServletByName(String servletName) {	return (ServletWrapper)servlets.get(servletName);    }    /**     * Add a servlet with the given name to the container. The     * servlet will be loaded by the container's class loader     * and instantiated using the given class name.     *     * Called to add a new servlet from web.xml     */    public void addServlet(ServletWrapper wrapper)    	throws TomcatException    {	wrapper.setContext( this );	String name=wrapper.getServletName();	//	System.out.println("Adding servlet " + name  + " " + wrapper);        // check for duplicates        if (servlets.get(name) != null) {	    log("Removing duplicate servlet " + name  + " " + wrapper);            removeServletByName(name);	    //	    getServletByName(name).destroy();        }	servlets.put(name, wrapper);    }    public ServletWrapper addServlet(String name, String classN)	throws TomcatException    {	ServletWrapper sw = new ServletWrapper();	sw.setContext(this);		sw.setServletName(name);	if ( classN.startsWith("/")) {	    sw.setPath(classN);	} else {	    sw.setServletClass(classN);	}	addServlet( sw );	return sw;    }    public Enumeration getServletNames() {	return servlets.keys();    }    // -------------------- Loading and sessions --------------------    public void setServletLoader(ServletLoader loader ) {	this.servletL=loader;    }    public ServletLoader getServletLoader() {	return servletL;    }    /* -------------------- Utils  -------------------- */    public void setDebug( int level ) {	if(level>0) log( "Set debug to " + level );	debug=level;    }    public void setDebug( String level ) {	try {	    setDebug( Integer.parseInt(level) );	} catch (Exception e) {	    log("Trying to set debug to '" + level + "':", e, Logger.ERROR);	}    }    public int getDebug( ) {	return debug;    }    // ------------------- Logging ---------------    LogHelper loghelper = new LogHelper("tc_log", this);    LogHelper loghelperServlet = new LogHelper("servlet_log", null);    /** Internal log method     */    public final void log(String msg) {	loghelper.log(msg);    }    /** Internal log method     */    public void log(String msg, Throwable t) {	loghelper.log(msg, t);    }    /** Internal log method     */    public void log(String msg, Throwable t, int level) {	loghelper.log(msg, t, level);    }    /** User-level log method ( called from a servlet)     */    public void logServlet( String msg , Throwable t ) {	msg = ("path=\"" + path  + "\" :" + msg);	loghelperServlet.log(msg, t);    }    public String toString() {	return "Ctx( " + (vhost==null ? "" : vhost + ":" )  +  path +  " )";    }    // -------------------- Facade methods --------------------    public Context getContext(String path) {	if (! path.startsWith("/")) {	    return null; // according to spec, null is returned	    // if we can't  return a servlet, so it's more probable	    // servlets will check for null than IllegalArgument	}        // Return null if cross context lookups are not allowed        if (!crossContext)            return null;	// absolute path	Request lr=contextM.createRequest( path );	if( vhost != null ) lr.setServerName( vhost );

⌨️ 快捷键说明

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