亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jspruntimelibrary.java

?? JspRuntime自動填充機制;向對jsp深入了解的可以
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
/*
 * @(#)JspRuntimeLibrary.java	1.0 2004-04-06
 * 轉換字符集支持及錯誤恢復支持由 BeanSoft Studio 開發完成.
 * (c) 2004 BeanSoft Studio 版權所有. 保留所有權利.
 * --------------------------------------------------------------------
 * 再次分發和使用本程序的源代碼和二進制方式, 不論是否修改, 只要同意下列
 * 條件即可:
 *
 * 1. 再次分發的源代碼必須保留上述版權聲明, 本條款和下列條款.
 *
 * 2. 再次分發的二進制代碼必須復制此版權聲明和文檔中的分發條件, 以及/或者
 *    發布時所附帶的材料.
 *
 * 3. 包含本軟件所發布的最終用戶文檔(如果有的話)必須包含下列感謝:
 *    " 本產品包含 BeanSoft Studio 開發的軟件(beansoftstudio@yahoo.com.cn)."
 *    或者, 這個感謝可以包含在軟件自身中, 例如出現在通常第三方感謝所在的地方.
 *
 * 4. 名稱 "BeanSoft Studio", "LiuChangjiong", "BeanSoft", 未經事先的書面許可,
 *    不能用來提升派生自本軟件的產品. 要獲得書面許可, 請聯系
 *    beansoftstudio@yahoo.com.cn.
 *
 * 5. 派生自本軟件的產品未經事先的書面許可不能命名為或者包含下列字樣:
 *    "BeanSoft Studio", "BeanSoft", "LiuChangjiong".
 *
 * 本軟件按照原樣提供, 除此之外不提供任何明示的或者暗含的擔保, 即使事先預計
 * 可能發生各種損失, 也無濟于事, 本人概不負責任何索賠和任何責任.
 *
 * 如有任何疑問, 請聯系 beansoftstudio@yahoo.com.cn.
 *
 * ====================================================================
 *
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1999 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution, if
 *    any, must include the following acknowlegement:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowlegement may appear in the software itself,
 *    if and wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
 *    Foundation" must not be used to endorse or promote products derived
 *    from this software without prior written permission. For written
 *    permission, please contact apache@apache.org.
 *
 * 5. Products derived from this software may not be called "Apache"
 *    nor may "Apache" appear in their names without prior written
 *    permission of the Apache Group.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 */

package studio.beansoft.jasper.runtime;

import java.beans.PropertyEditor;
import java.beans.PropertyEditorManager;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.security.AccessController;
import java.security.PrivilegedActionException;
import java.security.PrivilegedExceptionAction;
import java.util.Enumeration;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;


import studio.beansoft.jasper.Constants;
import studio.beansoft.jasper.JasperException;

/**
 * Bunch of util methods that are used by code generated for useBean,
 * getProperty and setProperty.
 *
 * The __begin, __end stuff is there so that the JSP engine can
 * actually parse this file and inline them if people don't want
 * runtime dependencies on this class. However, I'm not sure if that
 * works so well right now. It got forgotten at some point. -akv
 *
 * Documents added by BeanSoft Studio:
 * 本類可以讀取 servlet request 中的參數并對 JavaBean 對象的屬性根據名字進行自動
 * 賦值, 并且已經提供了故障恢復功能, 即不拋出任何異常.
 *
 * 在 JSP 和 Servlet 中可以調用下列代碼:
 * studio.beansoft.jasper.runtime.JspRuntimeLibrary.introspect(myBean, request);
 * 來完成和 <%jsp:setProperty name="myBean" property="*"/> 同樣的操作(除了不再出錯時中止).
 *
 * 也可以自動處理字符串的編碼問題, 例如從 Tomcat 下的默認 ServletRequest 對象
 * 字符集編碼(ISO8859-1)轉換到 GBK 編碼可以調用下列代碼:
 * studio.beansoft.jasper.runtime.JspRuntimeLibrary.introspect(myBean, request,
 * 	"GBK");
 *
 * 還可以顯式的指定源字符集到目標字符集的編碼, 例如從 UTF8 編碼轉換到 GBK 編碼:
 * studio.beansoft.jasper.runtime.JspRuntimeLibrary.introspect(myBean, request,
 * 	"UTF-8", "GBK");
 *
 * @author LiuChangjiong
 * @version 1.0
 * 2004-3-31
 *
 * Origianl:
 * @author Mandar Raje
 */
public class JspRuntimeLibrary {

	/**
	 *
	 * PrivilegedIntrospectEncodingHelper, added by BeanSoft Studio at 2004-04-06 to
	 * support encoding convertion.
	 *
	 * Obfusecate setttings:
	 * @preserve
	 *
	 * @author LiuChangjiong
	 * @version 1.0
	 * 2004-3-31
	 */
	protected static class PrivilegedIntrospectEncodingHelper
		implements PrivilegedExceptionAction {

		private Object bean;
		private String prop;
		private String value;
		private ServletRequest request;
		private String param;
		private boolean ignoreMethodNF;
		private String sourceEncoding;
		private String targetEncoding;

		PrivilegedIntrospectEncodingHelper(
			Object bean,
			String prop,
			String value,
			ServletRequest request,
			String param,
			boolean ignoreMethodNF,
			String sourceEncoding,
			String targetEncoding) {
			this.bean = bean;
			this.prop = prop;
			this.value = value;
			this.request = request;
			this.param = param;
			this.ignoreMethodNF = ignoreMethodNF;
			this.sourceEncoding = sourceEncoding;
			this.targetEncoding = targetEncoding;
		}

		public Object run() throws JasperException {
			internalIntrospecthelper(
				bean,
				prop,
				value,
				request,
				param,
				ignoreMethodNF,
				sourceEncoding,
				targetEncoding);
			return null;
		}
	}

	// __begin convertMethod
	/**
	 * 將輸入的字符串轉換為目標類型(會出錯).
	 * Note: 修改出錯處理, 出現異常時只返回空值,
	 * 即可改變 Bean 賦值出錯時發生中斷的問題.
	 */
	public static Object convert(
		String propertyName,
		String s,
		Class t,
		Class propertyEditorClass)
		throws JasperException {
		try {
			if (s == null) {
				if (t.equals(Boolean.class) || t.equals(Boolean.TYPE))
					s = "false";
				else
					return null;
			}
			if (propertyEditorClass != null) {
				return getValueFromBeanInfoPropertyEditor(
					t,
					propertyName,
					s,
					propertyEditorClass);
			} else if (t.equals(Boolean.class) || t.equals(Boolean.TYPE)) {
				if (s.equalsIgnoreCase("on") || s.equalsIgnoreCase("true"))
					s = "true";
				else
					s = "false";
				return new Boolean(s);
			} else if (t.equals(Byte.class) || t.equals(Byte.TYPE)) {
				return new Byte(s);
			} else if (t.equals(Character.class) || t.equals(Character.TYPE)) {
				return s.length() > 0 ? new Character(s.charAt(0)) : null;
			} else if (t.equals(Short.class) || t.equals(Short.TYPE)) {
				return new Short(s);
			} else if (t.equals(Integer.class) || t.equals(Integer.TYPE)) {
				//System.err.println("Convert to Integer: " + s);
				return new Integer(s);
			} else if (t.equals(Float.class) || t.equals(Float.TYPE)) {
				return new Float(s);
			} else if (t.equals(Long.class) || t.equals(Long.TYPE)) {
				return new Long(s);
			} else if (t.equals(Double.class) || t.equals(Double.TYPE)) {
				return new Double(s);
			} else if (t.equals(String.class)) {
				return s;
			} else if (t.equals(java.io.File.class)) {
				return new java.io.File(s);
			} else if (t.getName().equals("java.lang.Object")) {
				return new Object[] { s };
			} else {
				return getValueFromPropertyEditorManager(t, propertyName, s);
			}
		} catch (Exception ex) {
			// Modified by BeanSoft Studio -- 只返回空值, 不報錯
			System.out.println(ex);
			return null;
			// Old code below:
			//throw new JasperException(ex);
		}
	}
	// __end convertMethod

	// __begin introspectMethod
	/**
	 * 用 ServletRequest 的默認字符集實現 ServletRequest 到 Bean 值的自動填充工作.
	 * 實現和 Tomcat 默認的操作相同的功能.
	 *
	 * @param bean JavaBean 對象
	 * @param request ServletRequest 對象
	 */
	public static void introspect(Object bean, ServletRequest request) {
		//throws JasperException {
		introspect(bean, request, null);
	}
	// __end introspectMethod

	// __begin introspectMethod
	/**
	 * 從默認字符集轉換到目標字符集并進行 ServletRequest 到 Bean 值的自動填充工作.
	 *
	 * @param bean JavaBean 對象
	 * @param request ServletRequest 對象
	 * @param encoding 目標字符集(如果要轉換到中文字符集, 此參數應該為 "GB2312"
	 * 或者 "GBK"), 如果參數為空, 則不做任何轉碼
	 */
	public static void introspect(Object bean, ServletRequest request, String encoding) {
		//throws JasperException {
		introspect(bean, request, null, encoding);
	}
	// __end introspectMethod

	// __begin introspectMethod
	/**
	 * 用給定字符編碼轉換實現 ServletRequest 到 Bean 值的自動填充工作.
	 *
	 * @param bean JavaBean 對象
	 * @param request ServletRequest 對象
	 * @param sourceEncoding ServeltRequest 的源字符集(如果為空, 則默認為 ISO8859-1)
	 * @param targetEncoding 目標字符集, 例如 "GB2312" 或者 "GBK"
	 */
	public static void introspect(Object bean, ServletRequest request,
		String sourceEncoding, String targetEncoding) {
		//throws JasperException {
		// Check default encoding
		if(sourceEncoding == null || sourceEncoding.length() == 0) {
        	sourceEncoding = "ISO8859-1";
		}

		try {
			Enumeration e = request.getParameterNames();
			while (e.hasMoreElements()) {
				String name = (String) e.nextElement();
				String value = request.getParameter(name);
				// 字符集轉換, 僅當目標字符集非空時進行此操作
				if(value != null && targetEncoding != null && targetEncoding.length() > 0) {
					try {
						value = new String(value.getBytes(sourceEncoding), targetEncoding);
					} catch (UnsupportedEncodingException exception) {
						exception.printStackTrace();
					}
				}

				introspecthelper(bean, name, value, request, name, true,
					sourceEncoding, targetEncoding);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	// __end introspectMethod

	// __begin introspecthelperMethod
	public static void introspecthelper(
		Object bean,
		String prop,
		String value,
		ServletRequest request,
		String param,
		boolean ignoreMethodNF,
		String sourceEncoding,
		String targetEncoding)
		throws JasperException {
		if (System.getSecurityManager() != null) {
			try {
				PrivilegedIntrospectEncodingHelper dp =

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩三级在线| 国产一区二区h| 欧美熟乱第一页| 亚洲午夜在线电影| 欧美日韩中文精品| 日韩成人免费电影| 日韩免费观看高清完整版 | 日本不卡123| 欧美一区二区三区思思人| 另类综合日韩欧美亚洲| 精品盗摄一区二区三区| 丁香亚洲综合激情啪啪综合| 国产精品久久99| 欧美日韩国产在线观看| 美女网站一区二区| 国产亚洲一区字幕| 久久99久久99精品免视看婷婷 | 国产精品理论片| 高清在线不卡av| 欧美韩日一区二区三区四区| 国产v日产∨综合v精品视频| 欧美极品另类videosde| jvid福利写真一区二区三区| 国产精品久久久久久户外露出| 国产91清纯白嫩初高中在线观看| 国产区在线观看成人精品 | 国产精品久久午夜| 91免费版在线看| 亚洲国产精品久久久久婷婷884| 在线精品视频小说1| 日本伊人精品一区二区三区观看方式| 欧美日本一区二区三区四区| 免费观看在线综合| 国产女主播在线一区二区| 99久久精品免费看国产免费软件| 亚洲精品乱码久久久久久久久| 欧美午夜精品久久久久久超碰| 日韩电影在线免费看| 精品盗摄一区二区三区| 97se狠狠狠综合亚洲狠狠| 亚洲高清视频的网址| 欧美不卡一区二区| 成人福利视频在线| 亚洲高清免费观看| 26uuu国产一区二区三区| 91丨porny丨首页| 日韩国产成人精品| 国产精品第13页| 日本高清不卡aⅴ免费网站| 爽好多水快深点欧美视频| 欧美一级黄色片| 成人免费视频一区| 亚洲午夜一区二区| 久久久不卡影院| 色久优优欧美色久优优| 日韩激情在线观看| 国产精品乱子久久久久| 91精品91久久久中77777| 日本亚洲天堂网| 亚洲男人天堂av网| 精品国产伦一区二区三区观看体验| 白白色 亚洲乱淫| 蜜臀av性久久久久蜜臀av麻豆| 欧美经典一区二区三区| 色综合一区二区三区| 老司机午夜精品| 亚洲欧美日韩久久精品| 26uuu精品一区二区在线观看| 欧美三级中文字| 国产91高潮流白浆在线麻豆| 蜜臀av性久久久久蜜臀aⅴ流畅| 一区二区三区四区不卡视频| 国产欧美精品一区二区色综合 | 久久久久久久免费视频了| 91久久精品一区二区三区| 国产成人免费视频| 免费高清视频精品| 午夜精品一区二区三区免费视频| 国产精品美女久久久久久| 精品久久久久久久久久久久久久久 | 欧美第一区第二区| 欧美高清精品3d| 96av麻豆蜜桃一区二区| 国产黄色91视频| 狠狠色综合色综合网络| 日日欢夜夜爽一区| 亚洲国产一区二区三区青草影视| 亚洲欧洲国产日本综合| 久久精品日韩一区二区三区| 日韩免费视频一区| 欧美v日韩v国产v| 欧美大片一区二区| 在线综合视频播放| 在线电影一区二区三区| 欧美性色欧美a在线播放| 色呦呦一区二区三区| 不卡av在线网| 99视频国产精品| 成人av网站在线观看免费| 国产69精品久久久久毛片| 国产精品一区一区| 国产精品911| 国产传媒一区在线| 成人av在线资源网站| 97aⅴ精品视频一二三区| 91免费小视频| 在线视频一区二区三区| 欧美日韩一区三区四区| 4438x成人网最大色成网站| 欧美精品自拍偷拍| 日韩欧美区一区二| 国产午夜精品一区二区三区视频 | 午夜婷婷国产麻豆精品| 性欧美疯狂xxxxbbbb| 日韩和欧美的一区| 精品制服美女久久| www.亚洲在线| 欧美在线播放高清精品| 欧美一二三区精品| 久久九九全国免费| 最新国产の精品合集bt伙计| 伊人色综合久久天天| 日韩成人午夜电影| 国产成人免费在线观看| 国产91富婆露脸刺激对白| 在线观看91视频| 日韩无一区二区| 欧美成人三级在线| 亚洲图片激情小说| 秋霞影院一区二区| 国产成人精品在线看| 在线观看亚洲一区| 欧美成人bangbros| 国产精品福利一区二区三区| 综合色天天鬼久久鬼色| 蜜桃精品视频在线| 波多野结衣在线aⅴ中文字幕不卡| 欧洲精品一区二区三区在线观看| 精品久久免费看| 一区二区三区中文免费| 麻豆国产精品一区二区三区| 成人黄色电影在线| 欧美一级爆毛片| 日本一区二区免费在线观看视频 | 樱花草国产18久久久久| 精品一区二区三区在线播放| 91亚洲永久精品| 久久夜色精品国产欧美乱极品| 亚洲手机成人高清视频| 韩日av一区二区| 欧美日韩一区三区| 日韩毛片高清在线播放| 午夜精品免费在线观看| 粉嫩久久99精品久久久久久夜| 欧美日韩五月天| 中文字幕的久久| 亚洲一区国产视频| 不卡一区中文字幕| 精品国产麻豆免费人成网站| 亚洲.国产.中文慕字在线| 不卡在线观看av| 久久亚洲精华国产精华液 | 97se亚洲国产综合在线| 久久久精品蜜桃| 日韩电影在线免费| 成av人片一区二区| 日韩免费看的电影| 成人免费在线播放视频| 成人h动漫精品| 欧美极品aⅴ影院| 九九久久精品视频| 日韩欧美成人一区二区| 婷婷夜色潮精品综合在线| 91国在线观看| 亚洲精品老司机| 99久久久国产精品免费蜜臀| 欧美精品一区二区三区高清aⅴ | 国产精品一区二区久久精品爱涩| 欧美日韩高清一区二区不卡| 亚洲精品乱码久久久久久黑人 | 99久久精品一区二区| 国产欧美一区二区三区鸳鸯浴| 久久av资源站| 欧美在线制服丝袜| 亚洲欧美激情在线| 国产91在线观看| 国产精品福利电影一区二区三区四区| 国产精品99久久久久久久vr | 国产精品高潮久久久久无| 狠狠狠色丁香婷婷综合久久五月| 欧美四级电影在线观看| 亚洲欧美日韩在线不卡| 91网上在线视频| 亚洲欧美日本韩国| 国产凹凸在线观看一区二区 | 欧美日韩免费一区二区三区视频 | 91精品国产麻豆| 美女视频一区在线观看| 日韩久久久精品| 国产在线播放一区|