汕头网站建设方案推广,怎么做网站埋点,做问卷调查的网站有啥,长春网页推广有哪些公司本文实例讲述了JSP基于dom解析xml的方法。分享给大家供大家参考#xff0c;具体如下#xff1a;初次学习用dom操作xml文件#xff0c;有很多不足之处#xff0c;牛人多给点建议#xff0c;练习时我没对中文做乱码处理#xff0c;也没做验证哦#xff01;O(∩_∩)O~实体类…本文实例讲述了JSP基于dom解析xml的方法。分享给大家供大家参考具体如下初次学习用dom操作xml文件有很多不足之处牛人多给点建议练习时我没对中文做乱码处理也没做验证哦O(∩_∩)O~实体类Userpublic 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;}}数据访问层接口UserDaopublic interface UserDao {boolean login(String name, String pwd);void insertUser(User user);List selectUser();void updateUser(User user);boolean deleteUser(String name);public User findByName(String name);}接口实现类UserDaoImplpublic class UserDaoImpl implements UserDao {private static final String PATHxml文件路径;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; iElement 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 blocke.printStackTrace();}return flag;}//添加操作public void insertUser(User user) {try {//创建全新的Document对象Document dom DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();//创建根节点usersElement el dom.createElement(users);//将根节点添加到dom中dom.appendChild(el);//创建子节点Element e2 dom.createElement(user);//将子节点添加到根节点中el.appendChild(e2);//取得xml文件中现有的信息List users this.selectUser();for(int i 0; i users.size(); i){//创建节点userElement 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 blocke.printStackTrace();}}//查询操作public List selectUser() {List userList new ArrayList();try {//根据已有的xml文件创建domDocument dom DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));//获取所有user节点下的子节点NodeList list dom.getElementsByTagName(user);for(int i 0;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 blocke.printStackTrace();}return userList;}//修改操作public void updateUser(User user) {try {//根据以有的xml文件创建domDocument dom DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));//获取user节点下的子节点NodeList list dom.getElementsByTagName(user);//遍历listfor(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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (ParserConfigurationException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//删除操作public boolean deleteUser(String name) {try {//根据以有xml文件创建domcumet对象Document dom DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));//获取user节点下的子节点NodeList list dom.getElementsByTagName(user);//遍历listfor(int i0;iElement 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 i0;iElement 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;}}业务逻辑层接口UserServiceboolean login(String name, String pwd);void insertUser(User user);List selectUser();void updateUser(User user);boolean deleteUser(String name);public User findByName(String name);接口实现类UserServiceImplpublic 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 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);}}控制层UserActionpublic 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 users new ArrayList();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)/p-//Apache Software Foundation//DTD Struts Configuration 2.1.7//ENhttp://struts.apache.org/dtds/struts-2.1.7.dtd/list.jsp/list.action/login.jsp/list.action/list.action/list.action/update.jspweb.xml配置xmlnshttp://java.sun.com/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsdindex.jspstruts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilterstruts2/*四个页面login.jsp list.jsp insert.jsp,update.jsplogin.jspString path request.getContextPath();String basePath request.getScheme()://request.getServerName():request.getServerPort()path/;%My JSP login.jsp starting page首页|注册 用户名 密码list.jspString path request.getContextPath();String basePath request.getScheme()://request.getServerName():request.getServerPort()path/;%My JSP list.jsp starting page注册用户列表序号用户名密码邮箱删除编辑${temp.index1}${u.name }${u.pwd }${u.email}删除编辑insert.jspString path request.getContextPath();String basePath request.getScheme() :// request.getServerName() : request.getServerPort() path /;%My JSP register.jsp starting page首页用户名密码邮箱update.jspString path request.getContextPath();String basePath request.getScheme()://request.getServerName():request.getServerPort()path/;%My JSP update.jsp starting page首页更新操作 用户名 密码 邮箱本人学习所用的user.xml文件希望本文所述对大家jsp程序设计有所帮助。