Web开发模式【Mode I 和Mode II的介绍、应用案例】(三)

应用例子:


我们使用MVC模式开发一个简单的用户登陆注册的案例吧!作为一个简单的用户登陆注册,这里就直接使用XML文档当作小型数据库吧


①搭建开发环境

  • 导入相对应的开发包
  • 创建程序的包名
  • 创建xml文件,当做小型的数据库

Web开发模式【Mode I 和Mode II的介绍、应用案例】(三)


②开发实体User


private int id;

    private String username;

    private String password;

    private String email;

    private Date birthday;


    //....各种setter、getter


③开发dao


  • 这个根据业务来开发,我们是登陆注册,那应该提供什么功能呢?注册(外界传递一个User对象进来,我可以在XML文档多一条信息)。登陆(外界传递用户名和密码过来,我就在XML文档中查找有没该用户名和密码,如果有就返回一个User对象)
  • 3.1登陆功能

//外界传递用户名和密码进来,我要在XML文档中查找是否有该条记录

    public User find(String username, String password) {


        //得到XML文档的流对象

        InputStream inputStream = UserImplXML.class.getClassLoader().getResourceAsStream("user.xml");


        //得到dom4j的解析器对象

        SAXReader saxReader = new SAXReader();



        try {


            //解析XML文档

            Document document = saxReader.read(path);


            //使用XPATH技术,查找XML文档中是否有传递进来的username和password

            Element element = (Element) document.selectSingleNode("//user[@username='" + username + "' and@password='" + password + "']");


            if (element == null) {

                return null;

            }


            //如果有,就把XML查出来的节点信息封装到User对象,返回出去

            User user = new User();

            user.setId(Integer.parseInt(element.attributeValue("id")));

            user.setUsername(element.attributeValue("username"));

            user.setPassword(element.attributeValue("password"));

            user.setEmail(element.attributeValue("email"));


            //生日就需要转换一下了,XML文档保存的是字符串,User对象需要的是Date类型

            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yy-MM-dd");

            Date birthday = simpleDateFormat.parse(element.attributeValue("birthday"));

            user.setBirthday(birthday);


            //返回User对象出去

            return user;


        } catch (DocumentException e) {

            e.printStackTrace();

            throw new RuntimeException("初始化时候出错啦!");

        } catch (ParseException e) {

            e.printStackTrace();

            throw new RuntimeException("查询的时候出错啦!");

        }


    }

  • 做完一个功能,最好就测试一下,看有没有错误再继续往下写!

private String username = "zhongfucheng";

    private String password = "123";


    @Test

    public void testLogin() {


        UserImplXML userImplXML = new UserImplXML();

        User user = userImplXML.find(username, password);


        System.out.println(user.getBirthday());

        System.out.println(user.getEmail());

        System.out.println(user.getId());

        System.out.println(user.getUsername());

        System.out.println(user.getPassword());



    }

  • 效果:

Web开发模式【Mode I 和Mode II的介绍、应用案例】(三)


上一篇:带你读《云原生应用开发 Operator原理与实践》第二章 Operator 原理2.3 Kube-APIServer 介绍(二)


下一篇:三、顺序程序设计