在struts2中,上传文件的时候遇到一个很好用但是失效的方法,找到如下替代。并且测试了一下request可以得到的相关路径。
得到request对象:
HttpServletRequest request = ServletActionContext.getRequest()
得到当前项目在服务器的绝对路径(方法失效,但是可用):
String path1 = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/";
// D:\javabao\apache-tomcat-7.0.34\webapps\billingsystem\upload 得到当前项目在服务器的绝对路径(推荐使用):
String path2 = request.getSession().getServletContext().getRealPath("/upload/");
// D:\javabao\apache-tomcat-7.0.34\webapps\billingsystem\upload 得到根url:
String path1 = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+"/";
// http://127.0.0.1:8080/ 得到项目发布的名字:
System.out.println(ServletActionContext.getRequest().getContextPath());
// /mly 得到当前servlet路径;
System.out.println(ServletActionContext.getRequest().getServletPath());
// /hello_uploadTitle.action