• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    JSP基于dom解析xml实例详解

    本文实例讲述了JSP基于dom解析xml的方法。分享给大家供大家参考,具体如下:

    初次学习用dom操作xml文件,有很多不足之处,牛人多给点建议,练习时我没对中文做乱码处理,也没做验证哦!O(∩_∩)O~

    实体类:User

    public class User {
     private String name;
     private String pwd;
     private String email;
     public String getName() {
     return name;
     }
     public void setName(String name) {
     this.name = name;
     }
     public String getPwd() {
     return pwd;
     }
     public void setPwd(String pwd) {
     this.pwd = pwd;
     }
     public String getEmail() {
     return email;
     }
     public void setEmail(String email) {
     this.email = email;
     }
    }
    
    

    数据访问层接口:UserDao

    public interface UserDao {
     boolean login(String name, String pwd);
     void insertUser(User user);
     ListUser> selectUser();
     void updateUser(User user);
     boolean deleteUser(String name);
     public User findByName(String name);
    }
    
    

    接口实现类:UserDaoImpl

    public class UserDaoImpl implements UserDao {
     private static final String PATH="xml文件路径";
     private void build(Document dom) {
     try {
      //定义转换器
      Transformer f = TransformerFactory.newInstance().newTransformer();
      //设置输出的编码格式
      f.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
      //构建dom源
      DOMSource source = new DOMSource(dom);
      //指定文件存放的目标路劲
      StreamResult sr = new StreamResult(new File(PATH));
      //执行转换操作
      f.transform(source, sr);
     } catch (Exception e) {
      e.printStackTrace();
     }
     }
     //登陆
     public boolean login(String name, String pwd) {
     boolean flag = false;
     try {
      //根据以有的xml文件创建Document对象
      Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
      //获取user节点下的子节点
      NodeList list = dom.getElementsByTagName("user");
      //遍历list,数据匹配退出
      for(int i = 0; ilist.getLength(); i++) {
      Element el = (Element)list.item(i);
      if(name.equals(el.getAttribute("name"))  pwd.equals(el.getAttribute("pwd"))) {
       flag = true;
       break;
      }
      }
     } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     } 
     return flag;
     }
     //添加操作
     public void insertUser(User user) {
     try {
      //创建全新的Document对象
      Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
      //创建根节点users
      Element el = dom.createElement("users");
      //将根节点添加到dom中
      dom.appendChild(el);
      //创建子节点
      Element e2 = dom.createElement("user");
      //将子节点添加到根节点中
      el.appendChild(e2);
      //取得xml文件中现有的信息
      ListUser> users = this.selectUser();
      for(int i = 0; i  users.size(); i++){
      //创建节点user
      Element el3 = dom.createElement("user");
      User us =users.get(i);
      //设置节点的属性(name,pwd,email)
      el3.setAttribute("name", us.getName());
      el3.setAttribute("pwd", us.getPwd());
      el3.setAttribute("email", us.getEmail());
      //添加到根节点中
      el.appendChild(el3);
      }
      e2.setAttribute("name", user.getName());
      e2.setAttribute("pwd", user.getPwd());
      e2.setAttribute("email", user.getEmail());
      build(dom);
     } catch (ParserConfigurationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     }
     //查询操作
     public ListUser> selectUser() {
     ListUser> userList = new ArrayListUser>();
     try {
      //根据已有的xml文件创建dom
      Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
      //获取所有user节点下的子节点
      NodeList list = dom.getElementsByTagName("user");
      for(int i = 0;i list.getLength();i++){
      User user =new User();
      Element element = (Element)list.item(i);
      user.setName(element.getAttribute("name"));
      user.setPwd(element.getAttribute("pwd"));
      user.setEmail(element.getAttribute("email"));
      userList.add(user);
      }
     } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     return userList;
     }
     //修改操作
     public void updateUser(User user) {
     try {
      //根据以有的xml文件创建dom
      Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
      //获取user节点下的子节点
      NodeList list = dom.getElementsByTagName("user");
      //遍历list
      for(int i = 0;i  list.getLength();i++) {
      Element el = (Element)list.item(i);
      //根据name属性去修改
      if(user.getName().equals(el.getAttribute("name"))) {
       el.setAttribute("pwd", user.getPwd());
       el.setAttribute("email", user.getEmail());
       build(dom);
      }
      }
     } catch (SAXException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     } catch (ParserConfigurationException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
     }
     //删除操作
     public boolean deleteUser(String name) {
     try {
      //根据以有xml文件创建domcumet对象
      Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
      //获取user节点下的子节点
      NodeList list = dom.getElementsByTagName("user");
      //遍历list
      for(int i=0;ilist.getLength();i++) {
      Element el = (Element)list.item(i);
      if(name.equals(el.getAttribute("name"))) {
       el.getParentNode().removeChild(el);
       build(dom);
       return true;
      }
      }
     } catch (Exception e) {
      // TODO: handle exception
     }
     return false;
     }
     //根据name查找
     public User findByName(String name) {
     User user = new User();
     try {
      //根据以后的xml文件创建document对象
      Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
      //获取user节点下的子节点集合
      NodeList list = dom.getElementsByTagName("user");
      for(int i=0;ilist.getLength();i++) {
      Element el = (Element)list.item(i);
      if(name.equals(el.getAttribute("name"))) {
       user.setName(el.getAttribute("name"));
       user.setPwd(el.getAttribute("pwd"));
       user.setEmail(el.getAttribute("email"));
       break;
      }
      }
     } catch (Exception e) {
      e.printStackTrace();
     }
     return user;
     }
    }
    
    

    业务逻辑层接口:UserService

    boolean login(String name, String pwd);
    void insertUser(User user);
    ListUser> selectUser();
    void updateUser(User user);
    boolean deleteUser(String name);
    public User findByName(String name);
    
    

    接口实现类:UserServiceImpl

    public class UserServiceImpl implements UserService {
     UserDao dao = new UserDaoImpl();
     public boolean login(String name, String pwd) {
     return dao.login(name, pwd);
     }
     public void insertUser(User user) {
     dao.insertUser(user);
     }
     public ListUser> selectUser() {
     return dao.selectUser();
     }
     public void updateUser(User user) {
     dao.updateUser(user);
     }
     public boolean deleteUser(String name) {
     return dao.deleteUser(name);
     }
     public User findByName(String name) {
     return dao.findByName(name);
     }
    }

    控制层:UserAction

    public class UserAction extends ActionSupport{
      private User user;
     public User getUser() {
     return user;
     }
     public void setUser(User user) {
     this.user = user;
     }
     UserService userService = new UserServiceImpl();
     public String selectUser(){
     HttpServletRequest request = ServletActionContext.getRequest();
     ListUser> users = new ArrayListUser>();
     users = userService.selectUser();
     request.setAttribute("USER", users);
     return "select";
     }
     /**
     * 登陆
     * @return
     */
     public String login(){
     if(user.getName() != null  user.getPwd() != null) {
      boolean flag = userService.login(user.getName(), user.getPwd());
      if(flag) {
      return SUCCESS;
      }
     }
     return ERROR;
     }
     /**
     * 修改
     * @return
     */
     public String update(){
     userService.updateUser(user);
     return "update";
     }
     /**
     * 编辑
     * @return
     */
     public String edit(){
     HttpServletRequest request = ServletActionContext.getRequest();
     String name = request.getParameter("uName");
     if(name != null) {
      User u = userService.findByName(name);
      request.setAttribute("USER", u);
     }
     return "edit";
     }
     /**
     * 删除
     * @return
     */
     public String delete(){
     HttpServletRequest request = ServletActionContext.getRequest();
     String name = request.getParameter("uName");
     boolean flag = userService.deleteUser(name);
     System.out.println(flag);
     return SUCCESS;
     }
      /**
       * 添加
       * @return
       */
     public String insert(){
     userService.insertUser(user);
     return "insert";
     }
    }
    
    

    struts.xml配置(本人用的的struts2):

    ?xml version="1.0" encoding="UTF-8" ?>
    !DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
      "http://struts.apache.org/dtds/struts-2.1.7.dtd">
    struts>
      package name="file" extends="struts-default">
       action name="list" class="com.jun.action.UserAction" method="selectUser">
        result name="select">/list.jsp/result>
       /action>
       action name="login" class="com.jun.action.UserAction" method="login">
        result name="success" type="redirectAction">/list.action/result>
        result name="error">/login.jsp/result>
       /action>
       action name="insert" class="com.jun.action.UserAction" method="insert">
        result name="insert" type="redirectAction">/list.action/result>
       /action>
       action name="delete" class="com.jun.action.UserAction" method="delete">
        result type="redirect">/list.action/result>  
       /action>
       action name="update" class="com.jun.action.UserAction" method="update">
        result name="update" type="redirectAction">/list.action/result>  
       /action>
       action name="edit" class="com.jun.action.UserAction" method="edit">
        result name="edit">/update.jsp/result>  
       /action>
      /package>
    /struts>

    web.xml配置

    ?xml version="1.0" encoding="UTF-8"?>
    web-app version="2.5" 
     xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     welcome-file-list>
      welcome-file>index.jsp/welcome-file>
     /welcome-file-list>
     filter>
      filter-name>struts2/filter-name>
      filter-class>
      org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
      /filter-class>
     /filter>
     filter-mapping>
      filter-name>struts2/filter-name>
      url-pattern>/*/url-pattern>
     /filter-mapping>
    /web-app>

    四个页面:login.jsp  list.jsp insert.jsp,update.jsp

    login.jsp

    %@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    %
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    html>
     head>
      base href="%=basePath%>">
      title>My JSP 'login.jsp' starting page/title>
     meta http-equiv="pragma" content="no-cache">
     meta http-equiv="cache-control" content="no-cache">
     meta http-equiv="expires" content="0">  
     meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     meta http-equiv="description" content="This is my page">
     !--
     link rel="stylesheet" type="text/css" href="styles.css">
     -->
     /head>
     body>
      a href="list.action">首页/a>|a href="insert.jsp">注册/a>
      form action="login.action" method="post">
      table>
      tr>
        td> 用户名:/td>td>input name="user.name" type="text">/td>
      /tr>
      tr>
        td> 密码:/td>td>input type="password" name="user.pwd">/td>
      /tr>
      tr>
        td colspan="2" align="center">input type="submit" value="登录">/td>
      /tr>
        /table> 
      /form>
     /body>
    /html>

    list.jsp

    %@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    %@ taglib uri="/struts-tags" prefix="s"%>
    %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    %
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    html>
     head>
      base href="%=basePath%>">
      title>My JSP 'list.jsp' starting page/title>
     meta http-equiv="pragma" content="no-cache">
     meta http-equiv="cache-control" content="no-cache">
     meta http-equiv="expires" content="0">  
     meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     meta http-equiv="description" content="This is my page">
     !--
     link rel="stylesheet" type="text/css" href="styles.css">
     -->
     /head>
     body >
     a href="insert.jsp">注册/a>
      table border="1">
      tr>
       td align="center" colspan="6">font size="+3">用户列表/font>/td>
      /tr>
       tr>
        td>序号/td>td>用户名/td>td>密码/td>td>邮箱/td>td>删除/td>td>编辑/td>
       /tr>
       c:forEach items="${USER}" var="u" varStatus="temp">
        tr>
        td>${temp.index+1}/td>td>${u.name }/td>td>${u.pwd }/td>td>${u.email}/td>td>a href="delete.action?uName=${u.name}">删除/a>/td>td>a href="edit.action?uName=${u.name }">编辑/a>/td>
        /tr>
      /c:forEach>
      /table>
     /body>
    /html>

    insert.jsp

    %@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    %
     String path = request.getContextPath();
     String basePath = request.getScheme() + "://"
      + request.getServerName() + ":" + request.getServerPort()
      + path + "/";
    %>
    !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    html>
     head>
     base href="%=basePath%>">
     title>My JSP 'register.jsp' starting page/title>
     meta http-equiv="pragma" content="no-cache">
     meta http-equiv="cache-control" content="no-cache">
     meta http-equiv="expires" content="0">
     meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     meta http-equiv="description" content="This is my page">
     !--
     link rel="stylesheet" type="text/css" href="styles.css">
     -->
     /head>
     body>
     a href="list.action">首页/a>
     form action="insert.action" method="post">
      table>
      tr>
       td>
       用户名:
       /td>
       td>
       input name="user.name" type="text">
       /td>
      /tr>
      tr>
       td>
       密码:
       /td>
       td>
       input type="password" name="user.pwd">
       /td>
      /tr>
      tr>
       td>
       邮箱:
       /td>
       td>
       input type="text" name="user.email">
       /td>
      /tr>
      tr>
       td colspan="2" align="center">
       input type="submit" value="提交">
       /td>
      /tr>
      /table>
     /form>
     /body>
    /html>
    
    

    update.jsp

    %@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    %
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    html>
     head>
      base href="%=basePath%>">
      title>My JSP 'update.jsp' starting page/title>
     meta http-equiv="pragma" content="no-cache">
     meta http-equiv="cache-control" content="no-cache">
     meta http-equiv="expires" content="0">  
     meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
     meta http-equiv="description" content="This is my page">
     !--
     link rel="stylesheet" type="text/css" href="styles.css">
     -->
     /head>
     body>
      a href="list.action">首页/a>
      h2>更新操作/h2>
      form action="update.action" method="post">
      table>
      c:set value="${USER}" var="user">/c:set>
      tr>
        td> 用户名:/td>td>input readonly="readonly" name="user.name" value="${user.name}" type="text">/td>
      /tr>
      tr>
        td> 密码:/td>td>input type="password" value="${user.pwd }" name="user.pwd">/td>
      /tr>
      tr>
        td> 邮箱:/td>td>input type="text" value="${user.email }" name="user.email">/td>
      /tr>
      tr>
        td colspan="2" align="center">input type="submit" value="保存">/td>
      /tr>
        /table> 
      /form>
     /body>
    /html>
    
    

    本人学习所用的user.xml文件

    ?xml version="1.0" encoding="UTF-8"?>
    users>
    user email=aaa@sina.com name="bbb" pwd="aaaaaa"/>
    user email=bbb@sina.com name="ccc" pwd="aaaaaa"/>
    /users>
    
    

    希望本文所述对大家jsp程序设计有所帮助。

    您可能感兴趣的文章:
    • JavaScript和HTML DOM的区别与联系及Javascript和DOM的关系
    • JavaScript对HTML DOM使用EventListener进行操作
    • JavaScript简单遍历DOM对象所有属性的实现方法
    • 详解javascript跨浏览器事件处理程序
    • JavaScript实现为指定对象添加多个事件处理程序的方法
    • 轻松创建nodejs服务器(5):事件处理程序
    • JS注册/移除事件处理程序(ExtJS应用程序设计实战)
    • 浅谈Javascript事件处理程序的几种方式
    • js使用函数绑定技术改变事件处理程序的作用域
    • JavaScript事件处理程序(事件侦听器)
    • JavaScript Event学习第三章 早期的事件处理程序
    • JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
    上一篇:jsp编程去除空白行的方法
    下一篇:jsp实现防盗链的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    JSP基于dom解析xml实例详解 JSP,基于,dom,解析,xml,实例,