之前走进胡同了,一直想着如何通过原代码修改地址,今天突然想到可以修改config.xml,具体解决方法:
package com;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Test {
public void a(String path,String userName) {
File inputXml = new File(
path);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml);
Element root=document.getRootElement();
for ( Iterator i = root.elementIterator(); i.hasNext(); ){
Element element = (Element) i.next();
System.out.println(element.getName()+"----"+element.getText());
if(element.getName().equals("baseDir")){
element.setText("d:/DOC_SERVER/UserFiles/"+userName+"/");
}
if(element.getName().equals("baseURL")){
element.setText("http://localhost:8080/docserver/UserFiles/"+userName+"/");
}
}
XMLWriter writer = new XMLWriter(new FileWriter(newFile(path)));
writer.write(document);
writer.close();
} catch (DocumentException e) {
System.out.println(e.getMessage());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
用户登录的时候就可以调用这个方法,就是简单的通过dom4j来修改config.xml里面baseDir和baseURL的值。有种想买块豆腐撞死的冲动、、、这脑子、、
path可以用
Stringxmlcfgfile=request.getServletContext().getRealPath("WEB-INF/cfg.xml");获取绝对路径