91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

struts2獲取工程根目錄

發布時間:2020-08-01 04:24:11 來源:網絡 閱讀:1160 作者:nifu2010 欄目:開發技術

    最近學習struts2的文件上傳和下載,由于書中的方法ServletActionContext.getRequest().getRealPath("/")已經過時,所以尋找了其它獲取工程根目錄方法。

    在嘗試過程中曾試過使用相對路徑方法,結果相對路徑為eclipse的根目錄,所以此方法行不通。

    由于工程路徑封裝在了Servlet的ServletContext中,我們可以在Action中直接訪問Servlet API進行操作:struts2提供的Actioncontext不能直接訪問servlet API實例,所以為了直接訪問servlet API,struts2提供了如下三個接口:

    1. SerlvetContextAware:實現接口的Action可以訪問web應用的ServletContext實例。

    2. ServletRequestAware:實現接口的Action可以訪問用戶請求的HttpServletRequest實例。

    3. ServletResponseAware: 實現接口的Action可以訪問服務器響應的HttpServletResponse實例。

    獲取路徑需要讓Action實現SerlvetContextAware接口,Action代碼如下:

    

package org.struts2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import javax.servlet.ServletContext;
import org.apache.struts2.util.ServletContextAware;
import com.opensymphony.xwork2.ActionContext;

public class FileUpLoadAction implements ServletContextAware{
	private String title;
	private File uploadFile;
	private ServletContext servletcontext;
	
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public File getUploadFile() {
		return uploadFile;
	}
	public void setUploadFile(File uploadFile) {
		this.uploadFile = uploadFile;
	}
	
    private String getPath(){
        return servletcontext.getRealPath("files");
    }
    
    public String execute() throws Exception {
    	String name = getTitle();
    	String path = getPath() + "\\" + getTitle();
    	FileOutputStream fos = new FileOutputStream(path);
    	FileInputStream fis = new FileInputStream(getUploadFile());
    	byte[] buffer = new byte[1024];
    	int len;
    	while( (len = fis.read(buffer)) > 0){
    		fos.write(buffer, 0, len);
    	}
    	ActionContext.getContext().put("path", path);
    	return "success";
    	
    }
	@Override
	public void setServletContext(ServletContext arg0) {
		this.servletcontext = arg0;
		
	}

}

serlvetcontext.getRealPath("files")為獲取根目錄下files文件夾的路徑,files文件夾必須存在,可以在action中判斷是否存在該文件夾,若不存在則創建該文件夾。此函數獲取的路徑后不帶"\\"。

若獲取跟目錄則將files換成"/"即可。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南岸区| 金乡县| 广水市| 拜泉县| 逊克县| 霍林郭勒市| 文安县| 杨浦区| 丰原市| 芦山县| 都昌县| 镇宁| 汨罗市| 准格尔旗| 太和县| 金阳县| 庄河市| 永靖县| 四平市| 九江县| 项城市| 天柱县| 鄯善县| 报价| 林甸县| 福建省| 内乡县| 新宁县| 平果县| 商洛市| 通化市| 安泽县| 常州市| 娄烦县| 水城县| 江永县| 集安市| 小金县| 金山区| 隆子县| 武汉市|