亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

遞歸讀取并解釋多配置文件

系統(tǒng) 1705 0


遞歸讀取并解釋多配置文件
?

?最近做項(xiàng)目時(shí),遇到了多配置文件讀取的問題。最后,還是采用了遞歸讀取配置文件的方法去實(shí)現(xiàn),感覺挺實(shí)用的。

?

    package com.lxit.web.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;

import com.lxit.web.util.bean.ActionFormTemplate;
import com.lxit.web.util.bean.ActionTemplate;
import com.lxit.web.util.bean.DispatchTemplate;
import com.lxit.web.util.bean.ServletHelper;



public class LoadConfigServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;
	private final static String CONFIG_PATH="\\WEB-INF\\config";
    private List<String> fileList= new ArrayList<String>();
    private List<ServletHelper> ServletHelperList= new ArrayList<ServletHelper>();
    private Document  document;

	@Override
    public void init(ServletConfig config) throws ServletException {
		getConfigFiles(config.getServletContext(),CONFIG_PATH);
		for(String file:fileList){
			System.out.println("讀取配置文件:"+file);
			ServletHelperList.add(parseConfigFile(file));
		}
		System.out.println("ServletHelperList的值如下:");
		for(ServletHelper i: ServletHelperList){
           System.out.println("i:   "+i);
		}
	}

	public void getConfigFiles(ServletContext context,String path){
		String filePath=context.getRealPath("")+path;
		File file=new File(filePath);
		File[] files=file.listFiles();
		for(File i:files){
			if(i.isDirectory()){
			   getConfigFiles(context,CONFIG_PATH+"\\"+i.getName());
			}else if(i.isFile()){
			    fileList.add(filePath+"\\"+i.getName());
			}
		}
	}

	private ServletHelper parseConfigFile(String path){
        ServletHelper servletHelper=new ServletHelper();
        SAXBuilder saxBuilder = new SAXBuilder();
        FileInputStream fileInputStream = null;
        try {
            fileInputStream = new FileInputStream(path);
            document=saxBuilder.build(fileInputStream);
        } catch (Exception e) {
            System.out.println("配置文件加載失敗    路徑:  "+path);
            e.printStackTrace();
        }
        Element rootElement = document.getRootElement();
        List<Element> childlist = rootElement.getChildren();
        for (Element tempElement : childlist) {
            if(tempElement.getName().equals("actionForm")){
               ActionFormTemplate actionFormTemplate=new ActionFormTemplate(tempElement.getAttributeValue("name"),tempElement.getAttributeValue("class"));
               servletHelper.setActionFormTemplate(actionFormTemplate);
            }else if(tempElement.getName().equals("action")){
               ActionTemplate actionTemplate=new ActionTemplate(tempElement.getAttributeValue("name"),tempElement.getAttributeValue("class"));
               List<Element> actionChildElement=tempElement.getChildren();
               for(Element actionElement:actionChildElement){
                   DispatchTemplate dispatchTemplate=new DispatchTemplate(actionElement.getAttributeValue("name"),actionElement.getText());
                   actionTemplate.setDispatchTemplate(dispatchTemplate);
               }
               servletHelper.setActionTemplate(actionTemplate);
            }
        }
        return servletHelper;
	}

	@Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}


	@Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	}

}

  

?

    package com.lxit.web.util.bean;

public class ActionFormTemplate {
    private String name;
    private String Class;

    public ActionFormTemplate(String name,String Class){
        this.name=name;
        this.Class=Class;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getActionFormClass() {
        return Class;
    }
    public void setActionFormClass(String Class) {
        this.Class = Class;
    }
    @Override
    public String toString() {
        return "ActionFormTemplate [name=" + name + ", Class=" + Class + "]";
    }


}

  

?

    package com.lxit.web.util.bean;

import java.util.HashMap;
import java.util.Map;

public class ActionTemplate {
    private String name;
    private String Class;
    private Map<String,DispatchTemplate> dispatchTemplate=new HashMap<String,DispatchTemplate>();

    public ActionTemplate(String name,String Class){
        this.name=name;
        this.Class=Class;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getActionClass() {
        return Class;
    }
    public void setActionClass(String Class) {
        this.Class = Class;
    }
    public Map<String, DispatchTemplate> getDispatchTemplate() {
        return dispatchTemplate;
    }
    public void setDispatchTemplate(DispatchTemplate tempDispatchTemplate) {
        dispatchTemplate.put(tempDispatchTemplate.getName(),tempDispatchTemplate);
    }
    @Override
    public String toString() {
        return "ActionTemplate [name=" + name + ", Class=" + Class + ", dispatchTemplate=" + dispatchTemplate + "]";
    }


}

  

?

    package com.lxit.web.util.bean;


public class DispatchTemplate {
    private String name;
    private String text;

    public DispatchTemplate(String name,String Text){
        this.name=name;
        this.text=Text;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    @Override
    public String toString() {
        return "DispatchTemplate [name=" + name + ", text=" + text + "]";
    }


}

  

?

    package com.lxit.web.util.bean;

import java.util.HashMap;
import java.util.Map;

public class ServletHelper {
    private Map<String,ActionFormTemplate> actionFormTemplate=new HashMap<String,ActionFormTemplate>();
    private Map<String,ActionTemplate> actionTemplate=new HashMap<String,ActionTemplate>();


    public Map<String, ActionFormTemplate> getActionFormTemplate() {
        return actionFormTemplate;
    }
    public void setActionFormTemplate(ActionFormTemplate tempActionFormTemplate) {
        actionFormTemplate.put(tempActionFormTemplate.getName(),tempActionFormTemplate);
    }
    public Map<String, ActionTemplate> getActionTemplate() {
        return actionTemplate;
    }
    public void setActionTemplate(ActionTemplate tempActionTemplate) {
        actionTemplate.put(tempActionTemplate.getName(),tempActionTemplate);
    }
    @Override
    public String toString() {
        return "ServletHelper [actionFormTemplate=" + actionFormTemplate + ", actionTemplate=" + actionTemplate + "]";
    }


}

  

?user.xml:

    <?xml version="1.0" encoding="UTF-8"?>
<config>
<!-- actionForm反射地址  -->
	<actionForm name="AccountForm" class="com.lxit.book.bean.Account"></actionForm>
	<actionForm name="BookForm" class="com.lxit.book.bean.Book"></actionForm>
	<actionForm name="BorrowBookForm" class="com.lxit.book.bean.BorrowBook"></actionForm>
	<actionForm name="StudentForm" class="com.lxit.book.bean.Student"></actionForm>
	<actionForm name="UserForm" class="com.lxit.book.bean.User"></actionForm>
	<actionForm name="DictionaryForm" class="com.lxit.book.bean.DictionaryValue"></actionForm>
	<actionForm name="RoleForm" class="com.lxit.book.bean.Role"></actionForm>
	<actionForm name="PurviewForm" class="com.lxit.book.bean.Purview"></actionForm>
<!-- method 反射地址 -->
    <action name="book" class="com.lxit.book.action.BookAction"></action>
    <action name="student" class="com.lxit.book.action.StudentAction"></action>
	<action name="user" class="com.lxit.book.action.UserAction">
	   <forward name="query" >/WEB-INF/jsp/user/user.jsp</forward>
	</action>
	<action name="dictionary" class="com.lxit.book.action.DictionaryAction"></action> 
	<action name="borrowBook" class="com.lxit.book.action.BorrowBookAction"></action>
	<action name="role" class="com.lxit.book.action.RoleAction">
	  <forward name="query" >/WEB-INF/jsp/role/role.jsp</forward>
	</action>
	<action name="purview" class="com.lxit.book.action.PurviewAction">
	  <forward name="query" >/WEB-INF/jsp/purview/purview.jsp</forward>
	</action>
</config>
  

?config.xml:

    <?xml version="1.0" encoding="UTF-8"?>
<config>
	<action name="purview" class="com.lxit.book.action.PurviewAction">
	  <forward name="query" >/WEB-INF/jsp/purview/purview.jsp</forward>
	</action>
</config>
  

?

遞歸讀取并解釋多配置文件


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 一本伊大人香蕉高清在线观看 | 国产欧美精品专区一区二区 | 日日摸日日碰夜夜97 | 99re热久久资源最新获取 | 中文字幕一区久久久久 | 国产成人免费全部网站 | 亚洲国产精品ⅴa在线观看 亚洲国产精品aa在线看 | 天天操天天干天天操 | 国产福利午夜 | 国产精品国产色综合色 | 久久精品美女视频 | 国产精品久久久久久久小唯西川 | 日韩每日更新 | 亚洲精品乱码久久久久久中文字幕 | 一级成人生活片免费看 | 青草青视频在线观看 | 国产免费人人看大香伊 | 天天干天天射天天插 | 不卡中文字幕 | 亚洲国产精品综合久久20 | 日韩在线1 | 亚洲欧美日韩国产精品网 | 国产欧美中文字幕 | 亚欧毛片 | 免费a黄色 | 国产成在线观看免费视频成本人 | 日韩 亚洲 中文 图片 小说 | ww欧美| 久久久噜噜噜久噜久久 | 91久久综合九色综合欧美98 | 国产精品免费观看 | 99九九精品免费视频观看 | 爱爱爱久久久久久久 | 香蕉青草久久成人网 | 伊人资源 | 日韩精品影视 | 91精品国产欧美一区二区 | 免费看黄色的网站 | 久久免费大片 | 国产欧美亚洲精品综合在线 | 俺去也理论网站 |