diff options
author | Konrad Kolosowski | 2003-04-09 15:10:07 +0000 |
---|---|---|
committer | Konrad Kolosowski | 2003-04-09 15:10:07 +0000 |
commit | f697d2d8b23126d33db3156e4b8c6241bda0cedc (patch) | |
tree | c7c6cce7a6551738dd2b74d9e5114a791f96f5bf | |
parent | 90781b55dc623fe796d823ba34b2ca3e6b27dc6b (diff) | |
download | eclipse.platform.ua-f697d2d8b23126d33db3156e4b8c6241bda0cedc.tar.gz eclipse.platform.ua-f697d2d8b23126d33db3156e4b8c6241bda0cedc.tar.xz eclipse.platform.ua-f697d2d8b23126d33db3156e4b8c6241bda0cedc.zip |
can require java>=1.4 and IE>=5.5
9 files changed, 49 insertions, 187 deletions
diff --git a/org.eclipse.help.webapp/index.jsp b/org.eclipse.help.webapp/index.jsp index 5aee9d033..34571db63 100644 --- a/org.eclipse.help.webapp/index.jsp +++ b/org.eclipse.help.webapp/index.jsp @@ -18,7 +18,7 @@ } RequestData data = new RequestData(application,request); - if(data.isIE() || (data.isMozilla() && data.isGecko()) ){ + if((data.isIE() && "5.5".compareTo(data.getIEVersion()) <=0) || (data.isMozilla() && data.isGecko()) ){ request.getRequestDispatcher("/advanced/index.jsp").forward(request, response); }else{ request.getRequestDispatcher("/basic/index.jsp").forward(request, response); diff --git a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java index 28dc1c823..90de23524 100644 --- a/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java +++ b/org.eclipse.help.webapp/src/org/eclipse/help/internal/webapp/WebappResources.java @@ -69,7 +69,7 @@ public class WebappResources { // break the string into tokens to get the Locale object StringTokenizer locales = new StringTokenizer(nl,"_"); if (locales.countTokens() == 1) - return new Locale(locales.nextToken(), ""); + return new Locale(locales.nextToken()); else if (locales.countTokens() == 2) return new Locale(locales.nextToken(), locales.nextToken()); else if (locales.countTokens() == 3) diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java index e1026a538..82bf301b0 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/BookmarksData.java @@ -10,13 +10,12 @@ *******************************************************************************/ package org.eclipse.help.internal.webapp.data; +import java.util.*; -import java.util.StringTokenizer; +import javax.servlet.*; +import javax.servlet.http.*; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; - -import org.eclipse.core.runtime.Preferences; +import org.eclipse.core.runtime.*; import org.eclipse.help.internal.*; import org.eclipse.help.internal.util.*; @@ -48,7 +47,7 @@ public class BookmarksData extends RequestData { if (bookmarkURL != null && bookmarkURL.length() > 0 && !bookmarkURL.equals("about:blank")) { - String title = getDBCSParameter("title"); + String title = request.getParameter("title"); Preferences prefs = HelpPlugin.getDefault().getPluginPreferences(); String bookmarks = prefs.getString(HelpSystem.BOOKMARKS); @@ -69,7 +68,7 @@ public class BookmarksData extends RequestData { if (bookmarkURL != null && bookmarkURL.length() > 0 && !bookmarkURL.equals("about:blank")) { - String title = getDBCSParameter("title"); + String title = request.getParameter("title"); Preferences prefs = HelpPlugin.getDefault().getPluginPreferences(); String bookmarks = prefs.getString(HelpSystem.BOOKMARKS); String removeString = diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java index f521ae3ed..c3d5621d3 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/RequestData.java @@ -10,10 +10,10 @@ *******************************************************************************/ package org.eclipse.help.internal.webapp.data; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; +import javax.servlet.*; +import javax.servlet.http.*; -import org.eclipse.help.internal.HelpSystem; +import org.eclipse.help.internal.*; /** * Helper class for contents.jsp initialization @@ -55,6 +55,10 @@ public class RequestData { return UrlUtil.isIE(request); } + public String getIEVersion() { + return UrlUtil.getIEVersion(request); + } + public boolean isKonqueror() { return UrlUtil.isKonqueror(request); } @@ -79,32 +83,4 @@ public class RequestData { return HelpSystem.getMode(); } - public String getDBCSParameter(String name) { - if (UrlUtil.isIE(request) - && request.getParameter("encoding") != null) { - // parameter is escaped using JavaScript - return UrlUtil.unescape( - UrlUtil.getRawRequestParameter(request, name)); - } else { - return request.getParameter(name); - } - } - - public String[] getDBCSParameters(String name) { - if (UrlUtil.isIE(request) - && request.getParameter("encoding") != null) { - // parameter is escaped using JavaScript - String[] rawValues = UrlUtil.getRawRequestParameters(request, name); - if (rawValues == null || rawValues.length == 0) { - return null; - } else { - String[] values = new String[rawValues.length]; - for (int i = 0; i < rawValues.length; i++) - values[i] = UrlUtil.unescape(rawValues[i]); - return values; - } - } else { - return request.getParameterValues(name); - } - } } diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java index 9ad78250a..7648b6bab 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/SearchData.java @@ -48,7 +48,7 @@ public class SearchData extends RequestData { if (topicHref != null && topicHref.length() == 0) topicHref = null; - searchWord = getDBCSParameter("searchWord"); + searchWord = request.getParameter("searchWord"); // try loading search results or get the indexing progress info. if (isSearchRequest() && !isScopeRequest()) { @@ -187,12 +187,12 @@ public class SearchData extends RequestData { return workingSetName; if (isScopeRequest()) { - workingSetName = getDBCSParameter("workingSet"); + workingSetName = request.getParameter("workingSet"); } else if (isSearchRequest()) { - workingSetName = getDBCSParameter("scope"); + workingSetName = request.getParameter("scope"); // if we have already set the working set, then use it. if (workingSetName == null) - workingSetName = getDBCSParameter("workingSet"); + workingSetName = request.getParameter("workingSet"); } else { workingSetName = HelpPlugin.getDefault().getPluginPreferences().getString( @@ -216,7 +216,7 @@ public class SearchData extends RequestData { if (getMode() == MODE_INFOCENTER) return; // if a working set is defined, set it in the preferences - String workingSet = getDBCSParameter("scope"); + String workingSet = request.getParameter("scope"); String lastWS = HelpPlugin.getDefault().getPluginPreferences().getString( HelpSystem.WORKING_SET); @@ -225,7 +225,8 @@ public class SearchData extends RequestData { HelpSystem.WORKING_SET, workingSet); HelpPlugin.getDefault().savePluginPreferences(); - } else if (workingSet == null && lastWS != null && lastWS.length() > 0) { + } else if ( + workingSet == null && lastWS != null && lastWS.length() > 0) { HelpPlugin.getDefault().getPluginPreferences().setValue( HelpSystem.WORKING_SET, ""); @@ -277,7 +278,7 @@ public class SearchData extends RequestData { getLocale()); } private SearchResults createHitCollector() { - String[] scopes = getDBCSParameters("scope"); + String[] scopes = request.getParameterValues("scope"); Collection scopeCol = null; if (scopes != null) { if (scopes.length diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java index 7100946c2..d376773bc 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/UrlUtil.java @@ -10,14 +10,14 @@ *******************************************************************************/ package org.eclipse.help.internal.webapp.data; import java.io.*; -import java.net.InetAddress; +import java.net.*; import java.util.*; -import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.*; -import org.eclipse.core.boot.BootLoader; -import org.eclipse.help.internal.HelpSystem; -import org.eclipse.help.internal.util.TString; +import org.eclipse.core.boot.*; +import org.eclipse.help.internal.*; +import org.eclipse.help.internal.util.*; public class UrlUtil { // XML escaped characters mapping @@ -26,121 +26,6 @@ public class UrlUtil { { "&", ">", "<", """ }; /** - * Decodes strings encoded with Javascript 1.3 escape - * Handles DBCS charactes that escape encoded as %uHHLL. - */ - public static String unescape(String encodedURL) { - if (encodedURL == null) - return null; - int len = encodedURL.length(); - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < len;) { - ByteArrayOutputStream tempOs; - switch (encodedURL.charAt(i)) { - case '%' : - if ((len > i + 1) && encodedURL.charAt(i + 1) != 'u') { - // byte encoded as %XX - if (len >= i + 3) { - tempOs = new ByteArrayOutputStream(1); - tempOs.write( - Integer.parseInt( - encodedURL.substring(i + 1, i + 3), - 16)); - try { - buf.append( - new String( - tempOs.toByteArray(), - "ISO8859_1")); - } catch (UnsupportedEncodingException uee) { - return null; - } - } - i += 3; - - } else { - // char escaped to the form %uHHLL - if (len >= i + 6) { - tempOs = new ByteArrayOutputStream(2); - tempOs.write( - Integer.parseInt( - encodedURL.substring(i + 2, i + 4), - 16)); - tempOs.write( - Integer.parseInt( - encodedURL.substring(i + 4, i + 6), - 16)); - try { - buf.append( - new String( - tempOs.toByteArray(), - "UnicodeBigUnmarked")); - } catch (UnsupportedEncodingException uee) { - return null; - } - } - i += 6; - - } - - break; - case '+' : //exception from standard - buf.append(' '); - i++; - break; - default : - tempOs = new ByteArrayOutputStream(1); - tempOs.write(encodedURL.charAt(i++)); - try { - buf.append(new String(tempOs.toByteArray(), "UTF8")); - } catch (UnsupportedEncodingException uee) { - return null; - } - - break; - } - - } - return buf.toString(); - } - /** - * Obtains parameter from request without decoding it - */ - public static String getRawRequestParameter( - HttpServletRequest request, - String parameterName) { - String[] values = getRawRequestParameters(request, parameterName); - if (values.length > 0) { - return values[0]; - } - return null; - } - /** - * Obtains values of a parameter from request query string - * withoud decoding them - * @return String[] - */ - public static String[] getRawRequestParameters( - HttpServletRequest request, - String parameterName) { - String query = request.getQueryString(); - if (query == null || "".equals(query)) { - return new String[0]; - } - List values = new ArrayList(); - StringTokenizer stok = new StringTokenizer(query, "&"); - while (stok.hasMoreTokens()) { - String nameEqValue = stok.nextToken(); - int equalsPosition = nameEqValue.indexOf("="); - if (equalsPosition >= 0 - && parameterName.equals( - nameEqValue.substring(0, equalsPosition))) { - String val = nameEqValue.substring(equalsPosition + 1); - values.add(val); - } - } - return (String[]) values.toArray(new String[values.size()]); - } - /** * Encodes string for embedding in JavaScript source */ public static String JavaScriptEncode(String str) { @@ -231,6 +116,17 @@ public class UrlUtil { return (agent.indexOf("msie") >= 0); } + public static String getIEVersion(HttpServletRequest request) { + String agent = request.getHeader("User-Agent").toLowerCase(); + int start = agent.indexOf("msie ") + "msie ".length(); + if (start < "msie ".length() || start >= agent.length()) + return "0"; + int end = agent.indexOf(";", start); + if (end <= start) + return "0"; + return agent.substring(start, end); + } + public static boolean isKonqueror(HttpServletRequest request) { String agent = request.getHeader("User-Agent").toLowerCase(); return agent.indexOf("konqueror") >= 0; diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java index d78d5cf82..3579a5f28 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetData.java @@ -11,10 +11,10 @@ package org.eclipse.help.internal.webapp.data; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; +import javax.servlet.*; +import javax.servlet.http.*; -import org.eclipse.help.internal.HelpSystem; +import org.eclipse.help.internal.*; import org.eclipse.help.internal.workingset.*; /** @@ -44,7 +44,7 @@ public class WorkingSetData extends RequestData { } public String getWorkingSetName() { - String name = getDBCSParameter("workingSet"); + String name = request.getParameter("workingSet"); if (name == null) name = ""; return name; diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java index 6447243d3..db6e3b832 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/data/WorkingSetManagerData.java @@ -11,10 +11,10 @@ package org.eclipse.help.internal.webapp.data; -import java.util.ArrayList; +import java.util.*; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; +import javax.servlet.*; +import javax.servlet.http.*; import org.eclipse.help.internal.*; import org.eclipse.help.internal.workingset.*; @@ -40,7 +40,7 @@ public class WorkingSetManagerData extends RequestData { HttpServletRequest request) { super(context, request); - name = getDBCSParameter("workingSet"); + name = request.getParameter("workingSet"); if (!workingSetsSynchronized && getMode() == MODE_WORKBENCH) { // upon startup in workbench mode, make sure working sets are in synch with those from UI @@ -106,7 +106,7 @@ public class WorkingSetManagerData extends RequestData { if (name != null && name.length() > 0) { - String oldName = getDBCSParameter("oldName"); + String oldName = request.getParameter("oldName"); if (oldName == null || oldName.length() == 0) oldName = name; WorkingSet ws = wsmgr.getWorkingSet(oldName); diff --git a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java index 0058d9f77..57b2e13c8 100644 --- a/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java +++ b/org.eclipse.help.webapp/src_servlets/org/eclipse/help/internal/webapp/servlet/SearchServlet.java @@ -88,17 +88,7 @@ public class SearchServlet extends HttpServlet { } private ISearchQuery createSearchQuery(HttpServletRequest request) { - String searchWord = ""; - if (UrlUtil.isIE(request) - && request.getParameter("encoding") != null) { - // parameter is escaped using JavaScript - searchWord = - UrlUtil.unescape( - UrlUtil.getRawRequestParameter(request, "searchWord")); - } else { - searchWord = request.getParameter("searchWord"); - } - + String searchWord = request.getParameter("searchWord"); String fieldSearchStr = request.getParameter("fieldSearch"); boolean fieldSearch = fieldSearchStr != null |