`
longgangbai
  • 浏览: 7341056 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Struts2.0中获取项目的上下文的两种方式

阅读更多

  Struts2.0中获取项目的上下文的两种方式

 

方法一:

  StringBuffer sb=new StringBuffer();
  sb.append(File.separator+"images"+File.separator+"vacationImage");
  String path=ServletActionContext.getServletContext().getRealPath(sb.toString());

 

方法二:

通过RequestUtils获取项目的上下文的信息:

 

String path=RequestUtils.getServletPath(ServletActionContext.getRequest());

源代码如下:

public class RequestUtils {

    /**
     * Retrieves the current request servlet path.
     * Deals with differences between servlet specs (2.2 vs 2.3+)
     *
     * @param request the request
     * @return the servlet path
     */
    public static String getServletPath(HttpServletRequest request) {
        String servletPath = request.getServletPath();
       
        String requestUri = request.getRequestURI();
        // Detecting other characters that the servlet container cut off (like anything after ';')
        if (requestUri != null && servletPath != null && !requestUri.endsWith(servletPath)) {
            int pos = requestUri.indexOf(servletPath);
            if (pos > -1) {
                servletPath = requestUri.substring(requestUri.indexOf(servletPath));
            }
        }
       
        if (null != servletPath && !"".equals(servletPath)) {
            return servletPath;
        }
       
        int startIndex = request.getContextPath().equals("") ? 0 : request.getContextPath().length();
        int endIndex = request.getPathInfo() == null ? requestUri.length() : requestUri.lastIndexOf(request.getPathInfo());

        if (startIndex > endIndex) { // this should not happen
            endIndex = startIndex;
        }

        return requestUri.substring(startIndex, endIndex);
    }

}

 

 

分享到:
评论

相关推荐

    struts2.0源码

    Struts2.0是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个框架的主要目的是为了简化开发过程,并提供一种更有效的方式来控制应用程序的行为。...

    Struts2.Hibernate3.2.Spring2.0整合续一

    在SSH整合中,Spring作为核心框架,负责整个应用的上下文管理和依赖注入,可以将Struts2和Hibernate的组件纳入管理,提高代码的可测试性和可维护性。 SSH整合的步骤通常包括以下部分: 1. 配置Struts2:添加Struts2...

    struts2学习笔记.doc

    - 修改Tomcat的`conf/server.xml`文件,添加上下文路径和文件位置配置,例如: ```xml <Context path="/struts2" docBase="D:\src\struts2\WebRoot" reloadable="true"/> ``` - 配置`reloadable="true"`使得...

    webwork2.0 webwork2.0 帮助文档

    WebWork支持两种主要类型的Action: 1. **Field-Driven Action**:这种Action的属性与表单字段一一对应,WebWork会自动将HTTP请求参数绑定到Action的字段。 2. **Model-Driven Action**:这种Action通过模型对象来...

    Java框架面试题总结

    - **配置方式**:Struts2支持XML和注解两种配置方式,而Struts1仅支持XML配置。 - **性能优化**:Struts2在性能方面进行了优化,尤其是在高并发场景下的表现优于Struts1。 **12. Struts的常用标签库及用法** - **...

    J2EE课程总结

    - 用于监听应用程序的不同生命周期事件,如ServletContextListener监听上下文的启动和关闭。 #### JSP (JavaServer Pages) **1. JSP的工作原理** - JSP页面会被编译成Servlet,然后由Servlet引擎执行。 **2. JSP...

    jsp知识大全

    EL是JSP 2.0引入的一种轻量级表达式语言,用于简化JSP页面中的数据访问。它可以用来获取和设置JSP内置对象、JavaBean属性以及Map对象的键值。 ### JSTL(JavaServer Pages Standard Tag Library) JSTL是一组标准...

    jsp网页必备

    它允许开发者以简洁的方式获取和设置JavaBean属性,例如`${bean.property}`。 5. **JSP内置对象**: JSP提供了一系列内置对象,如`request`、`response`、`session`、`application`等,它们代表HTTP请求、响应、...

    大唐JAVA笔试题

    - **application**: 应用程序上下文对象。 - **out**: 输出流对象。 - **config**: 配置对象。 #### 12. JSP中的跳转方式及其区别 - **转发(forward)**: - 服务器内部跳转,地址栏不变,只执行一次生命周期。 - **...

    JSP_notebook

    5. `pageContext`:提供对整个JSP页面上下文的访问。 6. `out`:输出流,用于向客户端发送数据。 7. `page`:当前JSP页面的实例,通常是Servlet实例。 8. `config`:Servlet的初始化参数。 9. `exception`:用于捕获...

Global site tag (gtag.js) - Google Analytics