亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JSP > 正文

JSP基于dom解析xml實例詳解

2020-07-27 21:29:01
字體:
來源:轉載
供稿:網友

本文實例講述了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); List<User> 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; i<list.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文件中現有的信息  List<User> 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 List<User> selectUser() { List<User> userList = new ArrayList<User>(); 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;i<list.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;i<list.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);List<User> 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 List<User> 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(); List<User> users = new ArrayList<User>(); 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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91欧美日韩一区| 亚洲综合在线中文字幕| 黑人巨大精品欧美一区二区免费| 欧美黑人一区二区三区| 色妞一区二区三区| 96pao国产成视频永久免费| 日韩欧美亚洲国产一区| www日韩欧美| 亚洲精品视频中文字幕| 国产一区二区三区网站| 色婷婷亚洲mv天堂mv在影片| 亚洲激情视频在线观看| 在线播放国产精品| 精品国产一区二区在线| 国产成人福利夜色影视| 国产精品美女主播| 成人444kkkk在线观看| 国产一区二区三区免费视频| 精品国内产的精品视频在线观看| 欧美激情乱人伦一区| 日日骚久久av| 欧美成人精品在线播放| 尤物yw午夜国产精品视频| 日韩在线观看av| 久久这里只有精品视频首页| 亚洲成人黄色网| 亚洲成成品网站| 中文字幕亚洲欧美日韩在线不卡| 粉嫩老牛aⅴ一区二区三区| 黑人巨大精品欧美一区二区一视频| 亚洲第一网中文字幕| 中文字幕v亚洲ⅴv天堂| 国产欧美日韩亚洲精品| 自拍偷拍亚洲一区| 69影院欧美专区视频| 成人免费视频网址| 日本精品性网站在线观看| 日韩美女中文字幕| 成人午夜激情网| 538国产精品视频一区二区| 亚洲精品久久久久中文字幕二区| 亚洲天堂成人在线视频| 国产精品久久久久久久av电影| 永久免费毛片在线播放不卡| 6080yy精品一区二区三区| 亚洲一区免费网站| 91豆花精品一区| 91视频九色网站| 亚洲天堂av在线播放| 国产自摸综合网| 91精品国产91久久久久久最新| 最新日韩中文字幕| 精品成人国产在线观看男人呻吟| 久久99亚洲精品| 欧美国产日韩在线| 国产日韩在线看片| 成人免费网视频| 这里只有精品视频| 一本一本久久a久久精品牛牛影视| 亚洲精品乱码久久久久久金桔影视| 欧美日韩午夜激情| 国产日韩欧美日韩| 久久99国产精品自在自在app| 久久久久久久一区二区三区| 成人做爰www免费看视频网站| 亚洲高清色综合| 国产精品午夜国产小视频| 57pao国产成人免费| 热久久免费视频精品| 亚洲色图15p| 久久久久久久国产精品| 日韩69视频在线观看| 色诱女教师一区二区三区| 日韩电视剧免费观看网站| 精品国产一区二区三区久久| 91欧美精品成人综合在线观看| 超碰日本道色综合久久综合| 国产欧美最新羞羞视频在线观看| 亚洲激情免费观看| 国产小视频国产精品| 国产欧美日韩视频| 国产自产女人91一区在线观看| 亚洲精品xxx| 91色视频在线导航| 九色91av视频| 日韩资源在线观看| 亚洲国产精品嫩草影院久久| 欧美一级大片在线免费观看| 另类图片亚洲另类| 在线播放国产一区二区三区| 国产精品小说在线| 日韩精品在线免费观看| 日韩精品免费在线| 国产精品美女www| 26uuu国产精品视频| 久久精品国产一区二区三区| 国产欧美精品一区二区三区-老狼| 亚洲免费福利视频| 日本精品视频网站| 日韩av在线影院| 亚洲韩国欧洲国产日产av| 欧美精品电影免费在线观看| 精品亚洲国产成av人片传媒| 国产精品第一区| 久久久欧美一区二区| 亚洲电影免费观看高清| 成人免费在线视频网站| 国产福利视频一区二区| 亚洲欧美日韩一区二区三区在线| 亚洲欧美制服第一页| 欧美亚洲日本网站| 国产精品视频yy9099| 国产精品久久一| 中文字幕国产日韩| 高清欧美一区二区三区| 精品人伦一区二区三区蜜桃网站| 97在线免费观看视频| 色婷婷亚洲mv天堂mv在影片| 另类色图亚洲色图| 亚洲精品欧美一区二区三区| 自拍偷拍免费精品| 亚洲精品视频网上网址在线观看| 91av免费观看91av精品在线| 日韩视频免费大全中文字幕| 高清视频欧美一级| 日韩av理论片| 国内久久久精品| 欧美日产国产成人免费图片| 国产成人激情视频| 欧美精品午夜视频| 国产午夜精品全部视频在线播放| 91精品国产91久久久久福利| 91丝袜美腿美女视频网站| 国产日韩精品入口| 尤物九九久久国产精品的分类| 欧美成人精品在线观看| 亚洲色图第三页| 国产精品青草久久久久福利99| 91精品视频在线看| 欧美大片欧美激情性色a∨久久| 色午夜这里只有精品| 成人免费网视频| 日本欧美精品在线| 热久久99这里有精品| 大胆欧美人体视频| 日韩av三级在线观看| 97久久久免费福利网址| 国产香蕉精品视频一区二区三区| 亚洲裸体xxxx| 欧美大学生性色视频| 日韩不卡中文字幕| 精品久久久久久| 国产精品久久久久久亚洲调教| 91精品国产高清自在线看超| 日本久久精品视频| 日韩av在线最新| 国产91av在线| 日韩av网址在线| 欧美中文字幕视频在线观看| 色综合老司机第九色激情| 欧美激情乱人伦一区| 91高潮在线观看| 777午夜精品福利在线观看| www亚洲欧美|