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

📄 tabservletcontextlistener.java

📁 tabs tag 多tab标签 很好用 在页面上做选项卡效果的时候,直接使用标签就可以
💻 JAVA
字号:
/* * The contents of this file are subject to the GNU Lesser General Public * License Version 2.1 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.gnu.org/copyleft/lesser.html * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * Developer: * Todd Ditchendorf, todd@ditchnet.org * *//** *	@author Todd Ditchendorf *	@version 0.8 *	@since 0.8 */package org.ditchnet.jsp.taglib.tabs.listener;import java.util.List;import java.util.Iterator;import java.util.Arrays;import java.util.Collections;import java.io.File;import java.io.Reader;import java.io.InputStream;import java.io.BufferedInputStream;import java.io.OutputStream;import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.net.URL;import javax.servlet.ServletContext;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;/** *	@author Todd Ditchendorf *	@since 0.8 *	 *	<p><code>ServletContextListener</code> that handles extracting CSS, *	JavaScript, and image resource files from this taglib's JAR file, and  *	places them in a directory called <code>org.ditchnet.taglib/</code> in this  *	web app's root directory. Why do this? The HTML files in which the tabs are  *	used must have access to the CSS, JavaScript and image files that render *	the tabs correctly. Therefore, they must be placed in a known location  *	outside of the <code>WEB-INF</code> directory so that client browsers can *	access them.</p> *	<p>By implementing this feature as as <code>ServletContextListener</code>, *	These resources are deployed immediately on reloading your web app, and  *	are therefore available before the first request! */public class TabServletContextListener implements ServletContextListener {		private static final String DEST_FOLDER_NAME = "/org.ditchnet.taglib/";	public  static final String SCRIPT_URI = DEST_FOLDER_NAME + "tabs.js";	public  static final String STYLE_URI  = DEST_FOLDER_NAME + "tabstyle.jsp";		private static final List DEST_PATHS = Arrays.asList(			new String [] { SCRIPT_URI, STYLE_URI });		private static final List RESOURCE_PATHS = Arrays.asList(		new String [] {"/lib/js/tabs.js", "/lib/style/tabs.css" });	private static final String IMAGE_RESOURCE_FOLDER = "/lib/images/";		private static final List IMAGE_RESOURCE_NAMES = Arrays.asList(			new String [] {"default_tab_bg_left.gif","default_tab_bg_right.gif",			"default_tab_bg_white_left.gif","default_tab_bg_white_right.gif"});		/**	 *	Handles finding all CSS, JavaScript, and image resources from this	 *	taglib's JAR file and copies them to a directory in the web app's	 *	root directory where the tab components can link to them.	 */	public void contextInitialized(final ServletContextEvent evt) {		ServletContext servletContext = evt.getServletContext();		createDitchnetDir(servletContext);		String sourcePath,destPath,fileName;		URL sourceURL;		int i = 0;		for (Iterator iter = RESOURCE_PATHS.iterator(); iter.hasNext();) {			sourcePath = (String)iter.next();			sourceURL  = getClass().getResource(sourcePath);			destPath   = (String)DEST_PATHS.get(i);			destPath   = servletContext.getRealPath(destPath);			writeFile(sourceURL,destPath,servletContext);			i++;		}		for (Iterator iter = IMAGE_RESOURCE_NAMES.iterator(); iter.hasNext();) {			fileName   = (String)iter.next();			sourcePath = IMAGE_RESOURCE_FOLDER + fileName;			sourceURL  = getClass().getResource(sourcePath);			destPath   = DEST_FOLDER_NAME + fileName;			destPath   = servletContext.getRealPath(destPath);			writeFile(sourceURL,destPath,servletContext);		}	}		public void contextDestroyed(final ServletContextEvent evt) { }		private void createDitchnetDir(final ServletContext servletContext) {		String dirPath = servletContext.getRealPath(DEST_FOLDER_NAME);		File dir = null;		try {			dir = new File(dirPath);			dir.mkdir();		} catch (Exception e) {			//log.error("Error creating Ditchnet dir");		}	}		private void writeFile(final URL fromURL,						   final String toPath,						   final ServletContext servletContext) {		InputStream in = null;		OutputStream out = null;		try {			in = new BufferedInputStream(fromURL.openStream());			out = new BufferedOutputStream(new FileOutputStream(toPath));			int len;			byte [] buffer = new byte [4096];			while ((len = in.read(buffer,0,buffer.length)) != -1) {				out.write(buffer,0,len);			}			out.flush();		} catch (Exception e) {			//log.error("Error writing file dude: " + e.getMessage());		} finally {			try { in.close(); out.close(); } catch (Exception e) { }		}	}	}

⌨️ 快捷键说明

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