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是Apache软件基金会的一个开源项目,它是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架。这个框架的主要目的是为了简化开发过程,并提供一种更有效的方式来控制应用程序的行为。...
在SSH整合中,Spring作为核心框架,负责整个应用的上下文管理和依赖注入,可以将Struts2和Hibernate的组件纳入管理,提高代码的可测试性和可维护性。 SSH整合的步骤通常包括以下部分: 1. 配置Struts2:添加Struts2...
- 修改Tomcat的`conf/server.xml`文件,添加上下文路径和文件位置配置,例如: ```xml <Context path="/struts2" docBase="D:\src\struts2\WebRoot" reloadable="true"/> ``` - 配置`reloadable="true"`使得...
WebWork支持两种主要类型的Action: 1. **Field-Driven Action**:这种Action的属性与表单字段一一对应,WebWork会自动将HTTP请求参数绑定到Action的字段。 2. **Model-Driven Action**:这种Action通过模型对象来...
- **配置方式**:Struts2支持XML和注解两种配置方式,而Struts1仅支持XML配置。 - **性能优化**:Struts2在性能方面进行了优化,尤其是在高并发场景下的表现优于Struts1。 **12. Struts的常用标签库及用法** - **...
- 用于监听应用程序的不同生命周期事件,如ServletContextListener监听上下文的启动和关闭。 #### JSP (JavaServer Pages) **1. JSP的工作原理** - JSP页面会被编译成Servlet,然后由Servlet引擎执行。 **2. JSP...
EL是JSP 2.0引入的一种轻量级表达式语言,用于简化JSP页面中的数据访问。它可以用来获取和设置JSP内置对象、JavaBean属性以及Map对象的键值。 ### JSTL(JavaServer Pages Standard Tag Library) JSTL是一组标准...
它允许开发者以简洁的方式获取和设置JavaBean属性,例如`${bean.property}`。 5. **JSP内置对象**: JSP提供了一系列内置对象,如`request`、`response`、`session`、`application`等,它们代表HTTP请求、响应、...
- **application**: 应用程序上下文对象。 - **out**: 输出流对象。 - **config**: 配置对象。 #### 12. JSP中的跳转方式及其区别 - **转发(forward)**: - 服务器内部跳转,地址栏不变,只执行一次生命周期。 - **...
5. `pageContext`:提供对整个JSP页面上下文的访问。 6. `out`:输出流,用于向客户端发送数据。 7. `page`:当前JSP页面的实例,通常是Servlet实例。 8. `config`:Servlet的初始化参数。 9. `exception`:用于捕获...