Java Code Examples for javax.servlet.http.HttpServletRequest#getAttributeNames()

The following examples show how to use javax.servlet.http.HttpServletRequest#getAttributeNames() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DumpFilter.java    From uyuni with GNU General Public License v2.0 7 votes vote down vote up
private void logAttributes(HttpServletRequest req) {
    Enumeration items = req.getAttributeNames();
    while (items.hasMoreElements()) {
        String name = (String) items.nextElement();
        Object obj = req.getAttribute(name);
        if (obj != null) {
            log.debug("Attribute: name [" + name + "] value [" +
                ReflectionToStringBuilder.toString(obj) + "]");
        }
        else {
            log.debug("Attribute: name [" + name + "] value [null]");
        }
    }
}
 
Example 2
Source File: ServletRequestUtils.java    From portals-pluto with Apache License 2.0 6 votes vote down vote up
public static void logDebugInfo(HttpServletRequest req, String title) {

      if (LOGGER.isTraceEnabled()) {
         StringBuilder txt = new StringBuilder(128);
         txt.append("Servlet request info: \nAttributes for ").append(title).append(":");
         
         Enumeration<String> names = req.getAttributeNames();
         for (String name : Collections.list(names)) {
            txt.append("\nName: ").append(name);
            txt.append(", value: ").append(req.getAttribute(name));
         }
         
         txt.append("\n\nPath info:");
         txt.append("\nRequestUri:").append(req.getRequestURI());
         txt.append("\nContextPath:").append(req.getContextPath());
         txt.append("\nServletPath:").append(req.getServletPath());
         txt.append("\nPathInfo:").append(req.getPathInfo());
         txt.append("\nQueryString:").append(req.getQueryString());

         LOGGER.trace(txt.toString());
      }
   }
 
Example 3
Source File: TrimouView.java    From trimou with Apache License 2.0 5 votes vote down vote up
private void exposeRequestAttributesAsModel(Map<String, Object> model,
        HttpServletRequest request) {
    if (request == null || request.getAttributeNames() == null) {
        return;
    }
    Enumeration<String> attributeNames = request.getAttributeNames();
    while (attributeNames.hasMoreElements()) {
        String attributeName = attributeNames.nextElement();
        model.put(attributeName, request.getAttribute(attributeName));
    }
}
 
Example 4
Source File: DumpFilter.java    From spacewalk with GNU General Public License v2.0 5 votes vote down vote up
private void logAttributes(HttpServletRequest req) {
    Enumeration items = req.getAttributeNames();
    while (items.hasMoreElements()) {
        String name = (String) items.nextElement();
        Object obj = req.getAttribute(name);
        if (obj != null) {
            log.debug("Attribute: name [" + name + "] value [" +
                ReflectionToStringBuilder.toString(obj) + "]");
        }
        else {
            log.debug("Attribute: name [" + name + "] value [null]");
        }
    }
}
 
Example 5
Source File: InvokerCallerParamsBuilder.java    From hasor with Apache License 2.0 5 votes vote down vote up
private Object getAttributeParam(Invoker invoker, AttributeParameter pAnno) {
    String paramName = pAnno.value();
    if (StringUtils.isBlank(paramName)) {
        return null;
    }
    HttpServletRequest httpRequest = invoker.getHttpRequest();
    Enumeration<?> e = httpRequest.getAttributeNames();
    while (e.hasMoreElements()) {
        String name = e.nextElement().toString();
        if (name.equalsIgnoreCase(paramName)) {
            return httpRequest.getAttribute(paramName);
        }
    }
    return null;
}
 
Example 6
Source File: WebServlet.java    From sakai with Educational Community License v2.0 5 votes vote down vote up
/**
 * Handle file upload requests.
 * 
 * @param req
 * @param res
 */
protected void postUpload(HttpServletRequest req, HttpServletResponse res)
{
	String path = req.getPathInfo();
	log.debug("path {}", path);
	if (path == null) path = "";
	// assume caller has verified that it is a request for content and that it's multipart
	// loop over attributes in request, picking out the ones
	// that are file uploads and doing them
	for (Enumeration e = req.getAttributeNames(); e.hasMoreElements();)
	{
		String iname = (String) e.nextElement();
		log.debug("Item {}", iname);
		Object o = req.getAttribute(iname);
		// NOTE: Fileitem is from
		// org.apache.commons.fileupload.FileItem, not
		// sakai's parameterparser version
		if (o != null && o instanceof FileItem)
		{
			FileItem fi = (FileItem) o;
			try (InputStream inputStream = fi.getInputStream())
			{
				if (!writeFile(fi.getName(), fi.getContentType(), inputStream, path, req, res, true)) return;
			} catch (IOException ioe) {
				log.warn("Problem getting InputStream", ioe);
			}
		}
	}
}
 
Example 7
Source File: JDiscHttpServlet.java    From vespa with Apache License 2.0 5 votes vote down vote up
private static String formatAttributes(final HttpServletRequest request) {
    StringBuilder out = new StringBuilder();
    out.append("attributes = {");
    for (Enumeration<String> names = request.getAttributeNames(); names.hasMoreElements(); ) {
        String name = names.nextElement();
        out.append(" '").append(name).append("' = '").append(request.getAttribute(name)).append("'");
        if (names.hasMoreElements()) {
            out.append(",");
        }
    }
    out.append(" }");
    return out.toString();
}
 
Example 8
Source File: MCRParameterCollector.java    From mycore with GNU General Public License v3.0 5 votes vote down vote up
/**
 * Sets those request parameters as XSL parameters that start with "XSL.",
 * others will be ignored. The "XSL." prefix is cut off from the name.
 */
private void setFromRequestAttributes(HttpServletRequest request) {
    for (Enumeration<String> e = request.getAttributeNames(); e.hasMoreElements();) {
        String name = e.nextElement();
        if (!(name.endsWith(".SESSION"))) {
            final Object attributeValue = request.getAttribute(name);
            if (attributeValue != null) {
                setXSLParameter(name, attributeValue.toString());
            }
        }
    }
}
 
Example 9
Source File: WebUtils.java    From rice with Educational Community License v2.0 5 votes vote down vote up
/**
 * Iterates through and logs (at the given level) all attributes and
 * parameters of the given request onto the given Logger
 * 
 * @param request
 * @param logger
 */
public static void logRequestContents(Logger logger, Level level, HttpServletRequest request) {
	if (logger.isEnabledFor(level)) {
		logger.log(level, "--------------------");
		logger.log(level, "HttpRequest attributes:");
		for (Enumeration e = request.getAttributeNames(); e.hasMoreElements();) {
			String attrName = (String) e.nextElement();
			Object attrValue = request.getAttribute(attrName);

			if (attrValue.getClass().isArray()) {
				logCollection(logger, level, attrName, Arrays.asList((Object[]) attrValue));
			}
			else if (attrValue instanceof Collection) {
				logCollection(logger, level, attrName, (Collection) attrValue);
			}
			else if (attrValue instanceof Map) {
				logMap(logger, level, attrName, (Map) attrValue);
			}
			else {
				logObject(logger, level, attrName, attrValue);
			}
		}

		logger.log(level, "--------------------");
		logger.log(level, "HttpRequest parameters:");
		for (Enumeration i = request.getParameterNames(); i.hasMoreElements();) {
			String paramName = (String) i.nextElement();
			String[] paramValues = (String[]) request.getParameterValues(paramName);

			logArray(logger, level, paramName, paramValues);
		}

		logger.log(level, "--------------------");
	}
}
 
Example 10
Source File: UtilHttp.java    From scipio-erp with Apache License 2.0 5 votes vote down vote up
/**
 * SCIPIO: Gets the request attribute names into the specified collection and returns the collection.
 */
public static <C extends Collection<? super String>> C getRequestAttrNames(HttpServletRequest request, C out, Collection<String> namesToSkip) {
    Enumeration<String> names = request.getAttributeNames();
    while(names.hasMoreElements()) {
        String name = names.nextElement();
        if (namesToSkip == null || !namesToSkip.contains(name)) {
            out.add(name);
        }
    }
    return out;
}
 
Example 11
Source File: DispatcherServlet.java    From spring-analysis-note with MIT License 4 votes vote down vote up
/**
 * Exposes the DispatcherServlet-specific request attributes and delegates to {@link #doDispatch}
 * for the actual dispatching.
 */
@Override
protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {
	logRequest(request);

	// Keep a snapshot of the request attributes in case of an include,
	// to be able to restore the original attributes after the include.
	// 暂存请求参数
	Map<String, Object> attributesSnapshot = null;
	if (WebUtils.isIncludeRequest(request)) {
		attributesSnapshot = new HashMap<>();
		Enumeration<?> attrNames = request.getAttributeNames();
		while (attrNames.hasMoreElements()) {
			String attrName = (String) attrNames.nextElement();
			if (this.cleanupAfterInclude || attrName.startsWith(DEFAULT_STRATEGIES_PREFIX)) {
				attributesSnapshot.put(attrName, request.getAttribute(attrName));
			}
		}
	}

	// Make framework objects available to handlers and view objects.
	// 使框架对象可用于处理程序和视图对象
	request.setAttribute(WEB_APPLICATION_CONTEXT_ATTRIBUTE, getWebApplicationContext());
	request.setAttribute(LOCALE_RESOLVER_ATTRIBUTE, this.localeResolver);
	request.setAttribute(THEME_RESOLVER_ATTRIBUTE, this.themeResolver);
	request.setAttribute(THEME_SOURCE_ATTRIBUTE, getThemeSource());

	if (this.flashMapManager != null) {
		FlashMap inputFlashMap = this.flashMapManager.retrieveAndUpdate(request, response);
		if (inputFlashMap != null) {
			request.setAttribute(INPUT_FLASH_MAP_ATTRIBUTE, Collections.unmodifiableMap(inputFlashMap));
		}
		request.setAttribute(OUTPUT_FLASH_MAP_ATTRIBUTE, new FlashMap());
		request.setAttribute(FLASH_MAP_MANAGER_ATTRIBUTE, this.flashMapManager);
	}

	try {
		// 经过前面的准备(属性、辅助变量),进入请求处理过程
		doDispatch(request, response);
	}
	finally {
		if (!WebAsyncUtils.getAsyncManager(request).isConcurrentHandlingStarted()) {
			// Restore the original attribute snapshot, in case of an include.
			// 恢复原始参数
			if (attributesSnapshot != null) {
				restoreAttributesAfterInclude(request, attributesSnapshot);
			}
		}
	}
}
 
Example 12
Source File: WebResource.java    From lams with GNU General Public License v2.0 4 votes vote down vote up
private String deriveUsefulInfo()
{
   if(servletRequest instanceof HttpServletRequest == false)
      return " ";
   
   HttpServletRequest httpRequest = (HttpServletRequest) servletRequest;
   StringBuilder sb = new StringBuilder();
   sb.append("[").append(httpRequest.getContextPath());
   //Append cookies
   if(auditFlag.contains("cookies"))
   {
      sb.append(":cookies=").append(Arrays.toString(httpRequest.getCookies()));   
   }
   //Append Header information
   if(auditFlag.contains("headers"))
   {
      sb.append(":headers=");
      Enumeration<?> en = httpRequest.getHeaderNames();
      for(;en.hasMoreElements();)
      {
         String headerName = (String)en.nextElement();
         sb.append(headerName).append("="); 
         if(headerName.contains("authorization") == false)
            sb.append(httpRequest.getHeader(headerName)).append(",");
      }
      sb.append("]");         
   }
   
   //Append Request parameter information
   if(auditFlag.contains("parameters"))
   {
      sb.append("[parameters=");
      Enumeration<?> enparam = httpRequest.getParameterNames();
      for(;enparam.hasMoreElements();)
      {
         String paramName = (String)enparam.nextElement();
         sb.append(paramName).append("=");
         if (paramName.equalsIgnoreCase("j_password"))
         {
            sb.append("***");
         }
         else
         {
            String[] paramValues = httpRequest.getParameterValues(paramName);
            int len = paramValues != null ? paramValues.length : 0;
            for(int i = 0 ; i < len ; i++)
               sb.append(paramValues[i]).append("::");
         }
         sb.append(",");
      }
   } 
   //Append Request attribute information
   if(auditFlag.contains("attributes"))
   {
      sb.append("][attributes=");
      Enumeration<?> enu = httpRequest.getAttributeNames();
      for(;enu.hasMoreElements();)
      {
         String attrName = (String)enu.nextElement();
         sb.append(attrName).append("=");
         sb.append(httpRequest.getAttribute(attrName)).append(",");
      }
   }
   sb.append("]");
   return sb.toString();
}
 
Example 13
Source File: XSLTEntityHandler.java    From sakai with Educational Community License v2.0 4 votes vote down vote up
public void addRequestAttributes(ContentHandler ch, HttpServletRequest request)
		throws Exception
{
	if (!isAvailable()) return;

	// add the attributes
	AttributesImpl dummyAttributes = new AttributesImpl();
	ch.startElement(SchemaNames.NS_CONTAINER, SchemaNames.EL_REQUEST_ATTRIBUTES,
			SchemaNames.EL_NSREQUEST_ATTRIBUTES, dummyAttributes);
	for (Enumeration e = request.getAttributeNames(); e.hasMoreElements();)
	{
		String name = (String) e.nextElement();
		Object attr = request.getAttribute(name);
		AttributesImpl propA = new AttributesImpl();
		propA.addAttribute("", SchemaNames.ATTR_NAME, //$NON-NLS-1$
				SchemaNames.ATTR_NAME, "string", name); //$NON-NLS-1$
		if (attr instanceof Object[])
		{
			Object[] oattr = (Object[]) attr;
			ch.startElement(SchemaNames.NS_CONTAINER,
					SchemaNames.EL_REQUEST_ATTRIBUTE,
					SchemaNames.EL_NSREQUEST_ATTRIBUTE, propA);
			for (int i = 0; i < oattr.length; i++)
			{
				addElement(ch, SchemaNames.NS_CONTAINER, SchemaNames.EL_VALUE,
						SchemaNames.EL_NSVALUE, dummyAttributes, oattr[i]);
			}
			ch.endElement(SchemaNames.NS_CONTAINER, SchemaNames.EL_REQUEST_ATTRIBUTE,
					SchemaNames.EL_NSREQUEST_ATTRIBUTE);
		}
		else
		{
			ch.startElement(SchemaNames.NS_CONTAINER,
					SchemaNames.EL_REQUEST_ATTRIBUTE,
					SchemaNames.EL_NSREQUEST_ATTRIBUTE, propA);
			addElement(ch, SchemaNames.NS_CONTAINER, SchemaNames.EL_VALUE,
					SchemaNames.EL_NSVALUE, dummyAttributes, attr);
			ch.endElement(SchemaNames.NS_CONTAINER, SchemaNames.EL_REQUEST_ATTRIBUTE,
					SchemaNames.EL_NSREQUEST_ATTRIBUTE);
		}
	}

	ch.endElement(SchemaNames.NS_CONTAINER, SchemaNames.EL_REQUEST_ATTRIBUTES,
			SchemaNames.EL_NSREQUEST_ATTRIBUTES);
}
 
Example 14
Source File: WebAppContext.java    From mdw with Apache License 2.0 4 votes vote down vote up
/**
 * Request info for System REST service.
 */
public static SysInfoCategory getRequestInfo(HttpServletRequest request) {
    List<SysInfo> requestInfos = new ArrayList<SysInfo>();
    requestInfos.add(new SysInfo("Method", request.getMethod()));
    requestInfos.add(new SysInfo("URL", request.getRequestURL().toString()));
    requestInfos.add(new SysInfo("Protocol", request.getProtocol()));
    requestInfos.add(new SysInfo("Servlet path", request.getServletPath()));
    requestInfos.add(new SysInfo("Context path", request.getContextPath()));
    requestInfos.add(new SysInfo("Path info", request.getPathInfo()));
    requestInfos.add(new SysInfo("Path translated", request.getPathTranslated()));
    requestInfos.add(new SysInfo("Query string", request.getQueryString()));
    requestInfos.add(new SysInfo("Content length: ", String.valueOf(request.getContentLength())));
    requestInfos.add(new SysInfo("Content type: ", request.getContentType()));
    requestInfos.add(new SysInfo("Server name", request.getServerName()));
    requestInfos.add(new SysInfo("Server port", String.valueOf(request.getServerPort())));
    requestInfos.add(new SysInfo("Remote user", request.getRemoteUser()));
    requestInfos.add(new SysInfo("Remote address", request.getRemoteAddr()));
    requestInfos.add(new SysInfo("Remote host", request.getRemoteHost()));
    requestInfos.add(new SysInfo("Authorization type", request.getAuthType()));
    requestInfos.add(new SysInfo("Locale", String.valueOf(request.getLocale())));

    SysInfo paramInfo = new SysInfo("Parameters");
    Enumeration<?> paramNames = request.getParameterNames();
    while (paramNames.hasMoreElements()) {
        String paramName = (String)paramNames.nextElement();
        paramInfo.addSysInfo(new SysInfo(paramName, request.getParameter(paramName)));
    }
    requestInfos.add(paramInfo);

    SysInfo headerInfo = new SysInfo("Headers");
    Enumeration<?> headerNames = request.getHeaderNames();
    while (headerNames.hasMoreElements()) {
        String headerName = (String)headerNames.nextElement();
        headerInfo.addSysInfo(new SysInfo(headerName, request.getHeader(headerName)));
    }
    requestInfos.add(headerInfo);

    SysInfo attrInfo = new SysInfo("Attributes");
    Enumeration<?> attrNames = request.getAttributeNames();
    while (attrNames.hasMoreElements()) {
        String attrName = (String)attrNames.nextElement();
        attrInfo.addSysInfo(new SysInfo(attrName, String.valueOf(request.getAttribute(attrName))));
    }
    requestInfos.add(attrInfo);

    return new SysInfoCategory("Request Details", requestInfos);
}
 
Example 15
Source File: DefaultServlet.java    From olat with Apache License 2.0 4 votes vote down vote up
/**
 * Show HTTP header information.
 */
protected void showRequestInfo(HttpServletRequest req) {

    System.out.println();
    System.out.println("SlideDAV Request Info");
    System.out.println();

    // Show generic info
    System.out.println("Encoding : " + req.getCharacterEncoding());
    System.out.println("Length : " + req.getContentLength());
    System.out.println("Type : " + req.getContentType());

    System.out.println();
    System.out.println("Parameters");

    Enumeration parameters = req.getParameterNames();

    while (parameters.hasMoreElements()) {
        String paramName = (String) parameters.nextElement();
        String[] values = req.getParameterValues(paramName);
        System.out.print(paramName + " : ");
        for (int i = 0; i < values.length; i++) {
            System.out.print(values[i] + ", ");
        }
        System.out.println();
    }

    System.out.println();

    System.out.println("Protocol : " + req.getProtocol());
    System.out.println("Address : " + req.getRemoteAddr());
    System.out.println("Host : " + req.getRemoteHost());
    System.out.println("Scheme : " + req.getScheme());
    System.out.println("Server Name : " + req.getServerName());
    System.out.println("Server Port : " + req.getServerPort());

    System.out.println();
    System.out.println("Attributes");

    Enumeration attributes = req.getAttributeNames();

    while (attributes.hasMoreElements()) {
        String attributeName = (String) attributes.nextElement();
        System.out.print(attributeName + " : ");
        System.out.println(req.getAttribute(attributeName).toString());
    }

    System.out.println();

    // Show HTTP info
    System.out.println();
    System.out.println("HTTP Header Info");
    System.out.println();

    System.out.println("Authentication Type : " + req.getAuthType());
    System.out.println("HTTP Method : " + req.getMethod());
    System.out.println("Path Info : " + req.getPathInfo());
    System.out.println("Path translated : " + req.getPathTranslated());
    System.out.println("Query string : " + req.getQueryString());
    System.out.println("Remote user : " + req.getRemoteUser());
    System.out.println("Requested session id : " + req.getRequestedSessionId());
    System.out.println("Request URI : " + req.getRequestURI());
    System.out.println("Context path : " + req.getContextPath());
    System.out.println("Servlet path : " + req.getServletPath());
    System.out.println("User principal : " + req.getUserPrincipal());

    System.out.println();
    System.out.println("Headers : ");

    Enumeration headers = req.getHeaderNames();

    while (headers.hasMoreElements()) {
        String headerName = (String) headers.nextElement();
        System.out.print(headerName + " : ");
        System.out.println(req.getHeader(headerName));
    }

    System.out.println();
    System.out.println();

}
 
Example 16
Source File: HttpRequestUtils.java    From choerodon-starters with Apache License 2.0 4 votes vote down vote up
/**
 * Build a String containing a multi-line dump of an HTTP request.
 *
 * @param fromMethod      the method that this method was called from
 * @param request         the HTTP request build the request dump from
 * @param includePostData if true will include the POST data in the dump
 * @return a String containing a multi-line dump of the HTTP request, If an error occurs,
 * the message from the exception will be returned
 */
public static String getRequestDump(String fromMethod, HttpServletRequest request, boolean includePostData) {

    String shortDump = getShortRequestDump(fromMethod, request);
    StringBuilder buf = new StringBuilder(shortDump);
    try {

        buf.append("\nAttributes:\n");
        Enumeration<String> attrs = request.getAttributeNames();
        while (attrs.hasMoreElements()) {
            String attr = attrs.nextElement();
            buf.append("\t").append(attr).append(": ").append(request.getAttribute(attr)).append('\n');
        }

        buf.append("\nHeaders:\n");
        Enumeration<String> headers = request.getHeaderNames();
        while (headers.hasMoreElements()) {
            String header = headers.nextElement();
            buf.append("\t").append(header).append(": ").append(request.getHeader(header)).append('\n');
        }

        buf.append("\nParameters:\n");
        Enumeration<String> params = request.getParameterNames();
        while (params.hasMoreElements()) {
            String param = params.nextElement();
            buf.append("\t").append(param).append(": ").append(request.getParameter(param)).append('\n');
        }

        buf.append("\nCookies:\n");
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                String cstr = "\t" + cookie.getDomain() + "." + cookie.getPath() + "." + cookie.getName() + ": " + cookie.getValue() + "\n";
                buf.append(cstr);
            }
        }

        if (includePostData) {
            buf.append(getPostDataAsString(request)).append("\n");
        }

        return (buf.toString());

    } catch (IOException e) {
        return e.getMessage();
    }
}
 
Example 17
Source File: ServletRequestCopy.java    From onedev with MIT License 4 votes vote down vote up
public ServletRequestCopy(HttpServletRequest request) {
	this.servletPath = request.getServletPath();
	this.contextPath = request.getContextPath();
	this.pathInfo = request.getPathInfo();
	this.requestUri = request.getRequestURI();
	this.requestURL = request.getRequestURL();
	this.method = request.getMethod();
	this.serverName = request.getServerName();
	this.serverPort = request.getServerPort();
	this.protocol = request.getProtocol();
	this.scheme = request.getScheme();
	
	
	/*
	 * have to comment out below two lines as otherwise web socket will
	 * report UnSupportedOperationException upon connection
	 */
	//this.characterEncoding = request.getCharacterEncoding();
	//this.contentType = request.getContentType();
	//this.requestedSessionId = request.getRequestedSessionId();
	this.characterEncoding = null;
	this.contentType = null;
	this.requestedSessionId = null;
	
	this.locale = request.getLocale();
	this.locales = request.getLocales();
	this.isSecure = request.isSecure();
	this.remoteUser = request.getRemoteUser();
	this.remoteAddr = request.getRemoteAddr();
	this.remoteHost = request.getRemoteHost();
	this.remotePort = request.getRemotePort();
	this.localAddr = request.getLocalAddr();
	this.localName = request.getLocalName();
	this.localPort = request.getLocalPort();
	this.pathTranslated = request.getPathTranslated();
	this.principal = request.getUserPrincipal();

	HttpSession session = request.getSession(true);
	httpSession = new HttpSessionCopy(session);

	String s;
	Enumeration<String> e = request.getHeaderNames();
	while (e != null && e.hasMoreElements()) {
		s = e.nextElement();
		Enumeration<String> headerValues = request.getHeaders(s);
		this.headers.put(s, headerValues);
	}

	e = request.getAttributeNames();
	while (e != null && e.hasMoreElements()) {
		s = e.nextElement();
		attributes.put(s, request.getAttribute(s));
	}

	e = request.getParameterNames();
	while (e != null && e.hasMoreElements()) {
		s = e.nextElement();
		parameters.put(s, request.getParameterValues(s));
	}
}
 
Example 18
Source File: PageUtils.java    From thymeleaf-spring-data-dialect with Apache License 2.0 4 votes vote down vote up
public static Page<?> findPage(final ITemplateContext context) {
    // 1. Get Page object from local variables (defined with sd:page-object)
    // 2. Search Page using ${page} expression
    // 3. Search Page object as request attribute

    final Object pageFromLocalVariable = context.getVariable(Keys.PAGE_VARIABLE_KEY);
    if (isPageInstance(pageFromLocalVariable)) {
        return (Page<?>) pageFromLocalVariable;
    }

    // Check if not null and Page instance available with ${page} expression
    final IEngineConfiguration configuration = context.getConfiguration();
    final IStandardExpressionParser parser = StandardExpressions.getExpressionParser(configuration);
    final IStandardExpression expression = parser.parseExpression(context, Keys.PAGE_EXPRESSION);
    final Object page = expression.execute(context);
    if (isPageInstance(page)) {
        return (Page<?>) page;
    }

    // Search for Page object, and only one instance, as request attribute
    if (context instanceof IWebContext) {
        HttpServletRequest request = ((IWebContext) context).getRequest();
        Enumeration<String> attrNames = request.getAttributeNames();
        Page<?> pageOnRequest = null;
        while (attrNames.hasMoreElements()) {
            String attrName = (String) attrNames.nextElement();
            Object attr = request.getAttribute(attrName);
            if (isPageInstance(attr)) {
                if (pageOnRequest != null) {
                    throw new InvalidObjectParameterException("More than one Page object found on request!");
                }

                pageOnRequest = (Page<?>) attr;
            }
        }

        if (pageOnRequest != null) {
            return pageOnRequest;
        }
    }

    throw new InvalidObjectParameterException("Invalid or not present Page object found on request!");
}
 
Example 19
Source File: HttpRequestUtils.java    From gitlab4j-api with MIT License 4 votes vote down vote up
/**
 * Build a String containing a multi-line dump of an HTTP request.
 * 
 * @param fromMethod the method that this method was called from
 * @param request the HTTP request build the request dump from
 * @param includePostData if true will include the POST data in the dump
 * @return a String containing a multi-line dump of the HTTP request, If an error occurs,
 * the message from the exception will be returned
 */
public static String getRequestDump(String fromMethod, HttpServletRequest request, boolean includePostData) {

    String shortDump = getShortRequestDump(fromMethod, request);
    StringBuilder buf = new StringBuilder(shortDump);
    try {

        buf.append("\nAttributes:\n");
        Enumeration<String> attrs = request.getAttributeNames();
        while (attrs.hasMoreElements()) {
            String attr = attrs.nextElement();
            buf.append("\t").append(attr).append(": ").append(request.getAttribute(attr)).append('\n');
        }

        buf.append("\nHeaders:\n");
        Enumeration<String> headers = request.getHeaderNames();
        while (headers.hasMoreElements()) {
            String header = headers.nextElement();
            buf.append("\t").append(header).append(": ").append(request.getHeader(header)).append('\n');
        }

        buf.append("\nParameters:\n");
        Enumeration<String> params = request.getParameterNames();
        while (params.hasMoreElements()) {
            String param = params.nextElement();
            buf.append("\t").append(param).append(": ").append(request.getParameter(param)).append('\n');
        }

        buf.append("\nCookies:\n");
        Cookie[] cookies = request.getCookies();
        if (cookies != null) {
            for (Cookie cookie : cookies) {
                String cstr = "\t" + cookie.getDomain() + "." + cookie.getPath() + "." + cookie.getName() + ": " + cookie.getValue() + "\n";
                buf.append(cstr);
            }
        }

        if (includePostData) {
            buf.append(getPostDataAsString(request)).append("\n");
        }

        return (buf.toString());

    } catch (IOException e) {
        return e.getMessage();
    }
}
 
Example 20
Source File: DispatcherServlet.java    From java-technology-stack with MIT License 4 votes vote down vote up
/**
 * Exposes the DispatcherServlet-specific request attributes and delegates to {@link #doDispatch}
 * for the actual dispatching.
 */
@Override
protected void doService(HttpServletRequest request, HttpServletResponse response) throws Exception {
	logRequest(request);

	// Keep a snapshot of the request attributes in case of an include,
	// to be able to restore the original attributes after the include.
	Map<String, Object> attributesSnapshot = null;
	if (WebUtils.isIncludeRequest(request)) {
		attributesSnapshot = new HashMap<>();
		Enumeration<?> attrNames = request.getAttributeNames();
		while (attrNames.hasMoreElements()) {
			String attrName = (String) attrNames.nextElement();
			if (this.cleanupAfterInclude || attrName.startsWith(DEFAULT_STRATEGIES_PREFIX)) {
				attributesSnapshot.put(attrName, request.getAttribute(attrName));
			}
		}
	}

	// Make framework objects available to handlers and view objects.
	request.setAttribute(WEB_APPLICATION_CONTEXT_ATTRIBUTE, getWebApplicationContext());
	request.setAttribute(LOCALE_RESOLVER_ATTRIBUTE, this.localeResolver);
	request.setAttribute(THEME_RESOLVER_ATTRIBUTE, this.themeResolver);
	request.setAttribute(THEME_SOURCE_ATTRIBUTE, getThemeSource());

	if (this.flashMapManager != null) {
		FlashMap inputFlashMap = this.flashMapManager.retrieveAndUpdate(request, response);
		if (inputFlashMap != null) {
			request.setAttribute(INPUT_FLASH_MAP_ATTRIBUTE, Collections.unmodifiableMap(inputFlashMap));
		}
		request.setAttribute(OUTPUT_FLASH_MAP_ATTRIBUTE, new FlashMap());
		request.setAttribute(FLASH_MAP_MANAGER_ATTRIBUTE, this.flashMapManager);
	}

	try {
		// 核心逻辑
		doDispatch(request, response);
	}
	finally {
		if (!WebAsyncUtils.getAsyncManager(request).isConcurrentHandlingStarted()) {
			// Restore the original attribute snapshot, in case of an include.
			if (attributesSnapshot != null) {
				restoreAttributesAfterInclude(request, attributesSnapshot);
			}
		}
	}
}