自动秒收录

javaee和javase有啥区别 (JavaEE基础框架集合)


文章编号:1108 / 更新时间:2023-11-09 16:18:04 / 浏览:
Java

本次体系:

1.XML建模

1:

我们为什么要学习XML的建模,他可以给我们带来什么好处,我们可以得到什么东西?

我们学习这个XML建模的好处就是,我们也可以在学习XML后更好的掌握java的集合框架现在我们要学习的是XML中的ConfigModel .ActionModel . ForwardModel . ConfigModelDactory


1.往config标签中添加了一个action标签


2.住action标签中添加了4个forward标签


3.将action标签的属性值path.type发生了更改


4.将forward标签的属性值name. type . redirect 发生了更改


2:

以面向对象的思想思考上述操作:


1.confingModel对象中加一个actionModel对象,因为actionModel在configModel中是唯一的,所以在configModel必然有一个属性(容器Map),能够以一对一的方式存储不同个actionModel,还有添加的方法还有查询的方法


2.actinModel 也有一个(容器Map),也有个添加的方法查询的方法


3.actinModel 还有属性path . type


4.forwardModel 有属性name . path .redirect

1.1ConfigModel

package com.zkanghao;
import java.util.HashMap;
import java.util.Map;
public class ConfigModel {
    private Map aMap=new  HashMap();
    public void push(ActionModel actionModel) {
        aMap.put(actionModel.getPath(), actionModel);
    public ActionModel pop(String path) {
        return aMap.get(path);
    public static void main(String[] args) {
        ConfigModel configModel=new ConfigModel();
        ActionModel actionModel = configModel.pop("/loginAction");
        ForwardModel forwardModel = actionModel.pop("success");
    System.out.println(forwardModel.getPath());

1.2ActionModel

package com.zkanghao;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
    private String path;
    private String type;
    private Map fMap =  new HashMap();
    public String getPath() {
        return path;
    public void setPath(String path) {
        this.path = path;
    public String getType() {
        return type;
    public void setType(String type) {
        this.type = type;
//将forward往action中放  压栈
    public void push(ForwardModel forwardModel) {
        fMap.put(forwardModel.getName(), forwardModel);
//从action中通过name值取出forward
    public ForwardModel pop(String naem) {
        return fMap.get(naem);              

1.3ForwardModel

package com.zkanghao;
import java.util.HashMap;
import java.util.Map;
public class ActionModel {
    private String path;
    private String type;
    private Map fMap =  new HashMap();
    public String getPath() {
        return path;
    public void setPath(String path) {
        this.path = path;
    public String getType() {
        return type;
    public void setType(String type) {
        this.type = type;
//将forward往action中放  压栈
    public void push(ForwardModel forwardModel) {
        fMap.put(forwardModel.getName(), forwardModel);
//从action中通过name值取出forward
    public ForwardModel pop(String naem) {
        return fMap.get(naem);              

2.工厂模式

什么是工厂模式,工厂模式是23种模式之一

2.1工厂模式的定义:

定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。这满足创建型模式中所要求的“创建与使用相分离”的特点。


按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。


23种设计模式---->工厂模式--->创建型模式


sessionFactory. sqlsessionFactory . securityFactory等等。。。。


2.1ConfigModeIFactory

package com.zkanghao;
import java.io.InputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class ConfigModelFactory {
    public static ConfigModel build(String xmlPath) throws Exception {
        ConfigModel configmodel = new ConfigModel();
        //读取文件内容
        InputStream in = ConfigModelFactory.class.getResourceAsStream(xmlPath);
        SAXReader sr = new SAXReader();
        Document read = sr.read(in);
//      System.out.println(read.asXML());
        //让actionmodel有值,再放入到configmodel中
        List actionEles = read.selectNodes("/config/action");
        for (Element actionEle : actionEles) {
            ActionModel actionmodel = new ActionModel();
            actionmodel.setPath(actionEle.attributeValue("path"));
            actionmodel.setType(actionEle.attributeValue("type"));
            //让forwardmodel有值,再放入到actionmodel中
            List forwardEles = actionEle.selectNodes("forward");
            for (Element forwardEle : forwardEles) {
//              System.out.println(forwardEle.asXML());
                ForwardModel forwardmodel = new ForwardModel();
                forwardmodel.setName(forwardEle.attributeValue("name"));
                forwardmodel.setPath(forwardEle.attributeValue("path"));
                //当redirect值为false时,是转发,其它则是重定向
                forwardmodel.setRedirect(!"false".equals(forwardEle.attributeValue("redirect")));
                actionmodel.push(forwardmodel);
            configmodel.push(actionmodel);
        return configmodel;
    public static ConfigModel build() throws Exception {
        ConfigModel configmodel = new ConfigModel();
        //读取文件内容
        InputStream in = ConfigModelFactory.class.getResourceAsStream("/config.xml");
        SAXReader sr = new SAXReader();
        Document read = sr.read(in);
//      System.out.println(read.asXML());
        //让actionmodel有值,再放入到configmodel中
        List actionEles = read.selectNodes("/config/action");
        for (Element actionEle : actionEles) {
            ActionModel actionmodel = new ActionModel();
            actionmodel.setPath(actionEle.attributeValue("path"));
            actionmodel.setType(actionEle.attributeValue("type"));
            //让forwardmodel有值,再放入到actionmodel中
            List forwardEles = actionEle.selectNodes("forward");
            for (Element forwardEle : forwardEles) {
//              System.out.println(forwardEle.asXML());
                ForwardModel forwardmodel = new ForwardModel();
                forwardmodel.setName(forwardEle.attributeValue("name"));
                forwardmodel.setPath(forwardEle.attributeValue("path"));
                //当redirect值为false时,是转发,其它则是重定向
                forwardmodel.setRedirect(!"false".equals(forwardEle.attributeValue("redirect")));
                actionmodel.push(forwardmodel);
            configmodel.push(actionmodel);
        return configmodel;
    public static void main(String[] args) throws Exception {
//      测试,拿第二个action中第二个forward的path值
        ConfigModel configmodel = ConfigModelFactory.build("/config.xml");
        ActionModel actionmodel = configmodel.pop("/loginAction");
        ForwardModel forwardmodel = actionmodel.pop("success");
        System.out.println("第二个action中第二个forward的path值为"+forwardmodel.getPath());



相关标签: 数据格式XML容器Java存储

本文地址:https://www.0558.la/article/0720b759f2586dc82211.html

上一篇:javaee和javase有啥区别JavaEE之反射...
下一篇:新注册的域名多久可以备案新注册的域名要如...

温馨提示

做上本站友情链接,在您站上点击一次,即可自动收录并自动排在本站第一位!
<a href="https://www.0558.la/" target="_blank">自动秒收录</a>