- 浏览: 107329 次
- 性别:
- 来自: 成都
文章分类
最新评论
java-servlet、DOM、html综合运用示例
题目:
学员管理:
学员录入,与Student类中字段对应,点击保存数据,提交给UserSaveServlet进行处理,保存成功后,显示成功信息,并且提供一个用户列表<a>的超链接,
点击“用户列表”超链接,显示出所有的用户数据信息,并且可以对数据进行删除操作。
说明:没有用到jsp,还没学到那儿……
学生信息录入页面:
Servlet项目配置信息:
学生domain和DAO:
学生录入Servlet:
学生管理Servlet:
学生删除Servlet:
学员管理:
学员录入,与Student类中字段对应,点击保存数据,提交给UserSaveServlet进行处理,保存成功后,显示成功信息,并且提供一个用户列表<a>的超链接,
点击“用户列表”超链接,显示出所有的用户数据信息,并且可以对数据进行删除操作。
说明:没有用到jsp,还没学到那儿……
学生信息录入页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="/StuRecServlet" method="post"> 姓名:<input type="text" name="name"/><br/> 性别:<input type="radio" name="sex" value="true"/>男 <input type="radio" name="sex" value="false"/>女<br/> 年龄:<input type="text" name="age" /><br/> 班级:<input type="text" name="className" /><br/> <input type="submit" value="提交信息" /> </form> </body> </html>
Servlet项目配置信息:
<?xml version="1.0" encoding="ISO-8859-1"?> <web-app 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" version="2.5"> <servlet> <servlet-name>StuRecServlet</servlet-name> <servlet-class>cn.itcast.servlet.student.StuRecServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>StuRecServlet</servlet-name> <url-pattern>/StuRecServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>StuManServlet</servlet-name> <servlet-class>cn.itcast.servlet.student.StuManServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>StuManServlet</servlet-name> <url-pattern>/StuManServlet</url-pattern> </servlet-mapping> <servlet> <servlet-name>StuDelServlet</servlet-name> <servlet-class>cn.itcast.servlet.student.StuDelServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>StuDelServlet</servlet-name> <url-pattern>/StuDelServlet</url-pattern> </servlet-mapping> </web-app>
学生domain和DAO:
package cn.itcast.servlet.domain; public class Student { private String id; private String name; private boolean sex; private String age; private String className; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getClassName() { return className; } public void setClassName(String className) { this.className = className; } @Override public String toString() { return "Student [id=" + id + ", name=" + name + ", sex=" + sex + ", age=" + age + ", className=" + className + "]"; } } package cn.itcast.servlet.dao; import java.util.List; public interface IStudentDAO { List<Student> getAllStudents(); void addStudent(Student stu); void deleteStudent(String id); // void updateStudent(Student stu); } package cn.itcast.servlet.dao; import java.io.File; public class StudentDAOImpl implements IStudentDAO { private final static String XMLFile = "D:\\Java\\WorkSpace\\MyWebApps\\webdoc\\student.xml"; /** * 获取Document对象. * * @return */ public Document getDoc() { DocumentBuilder builder = null; Document doc = null; try { builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); doc = builder.parse(new File(XMLFile)); } catch (Exception e) { e.printStackTrace(); doc = builder.newDocument(); } return doc; } /** * 获取xml文件所有的Student对象,存放到List中. */ @Override public List<Student> getAllStudents() { /* * 注意:这里只能使用局部变量doc来操作,不能直接使用getDoc()的方式,否则抛出异常: * WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it。 * 在dom操作中全局变量赋值后再取值的时候会不确定 */ Document doc = getDoc(); List<Student> list = new ArrayList<Student>(); // 得到所有的student元素. NodeList nodeList = doc.getElementsByTagName("student"); // 迭代 for (int i = 0; i < nodeList.getLength(); i++) { Student stu = new Student(); Element stuEl = (Element) nodeList.item(i); stu.setId(stuEl.getAttribute("id")); stu.setAge(stuEl.getElementsByTagName("age").item(0) .getTextContent()); stu.setClassName(stuEl.getElementsByTagName("className").item(0) .getTextContent()); stu.setName(stuEl.getElementsByTagName("name").item(0) .getTextContent()); stu.setSex(Boolean.parseBoolean(stuEl.getElementsByTagName("sex") .item(0).getTextContent())); list.add(stu); } return list; } /** * 向xml中增加一个Student. */ @Override public void addStudent(Student stu) { Document doc = getDoc(); Element stuEl = doc.createElement("student"); stuEl.setAttribute("id", stu.getId()); Element nameEl = doc.createElement("name"); nameEl.setTextContent(stu.getName()); stuEl.appendChild(nameEl); Element sexEl = doc.createElement("sex"); sexEl.setTextContent(stu.isSex() + ""); stuEl.appendChild(sexEl); Element ageEl = doc.createElement("age"); ageEl.setTextContent(stu.getAge()); stuEl.appendChild(ageEl); Element classEl = doc.createElement("className"); classEl.setTextContent(stu.getClassName()); stuEl.appendChild(classEl); // 通过根节点增加子节点(student元素) doc.getDocumentElement().appendChild(stuEl); // 将数据从内存保存到文件中 try { Transformer tf = TransformerFactory.newInstance().newTransformer(); Source source = new DOMSource(doc); Result result = new StreamResult(new File(XMLFile)); tf.transform(source, result); } catch (Exception e) { e.printStackTrace(); } } /** * 从Xml文件中删除一个节点. */ @Override public void deleteStudent(String id) { Document doc = getDoc(); NodeList nodeList = doc.getElementsByTagName("student"); for (int i = 0; i < nodeList.getLength(); i++) { Element el = (Element) nodeList.item(i); if (id.equals(el.getAttribute("id"))) { el.getParentNode().removeChild(el); break; } } // 将数据从内存保存到文件中 try { Transformer tf = TransformerFactory.newInstance().newTransformer(); Source source = new DOMSource(doc); Result result = new StreamResult(new File(XMLFile)); tf.transform(source, result); } catch (Exception e) { e.printStackTrace(); } } }
学生录入Servlet:
package cn.itcast.servlet.student; import java.io.IOException; import java.io.PrintWriter; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.itcast.servlet.dao.StudentDAOImpl; import cn.itcast.servlet.domain.Student; //学生信息录入StuRecServlet public class StuRecServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置编码,否则录入后读取信息会造成乱码. req.setCharacterEncoding("UTF-8"); String id = UUID.randomUUID().toString(); String name = req.getParameter("name"); boolean sex = Boolean.parseBoolean(req.getParameter("sex")); String age = req.getParameter("age"); String className = req.getParameter("className"); StudentDAOImpl stuDao = new StudentDAOImpl(); Student stu = new Student(); stu.setName(name); stu.setSex(sex); stu.setAge(age); stu.setClassName(className); stu.setId(id); stuDao.addStudent(stu); resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); out.println("<h1>录入成功!</h1>"); //关联学生管理StuManServlet. out.println("<a href='/StuManServlet'>查看学生信息列表</a>"); out.flush(); } }
学生管理Servlet:
package cn.itcast.servlet.student; import java.io.IOException; import java.io.PrintWriter; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.itcast.servlet.dao.StudentDAOImpl; import cn.itcast.servlet.domain.Student; //学生信息管理StuManServlet public class StuManServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); StudentDAOImpl stuDao = new StudentDAOImpl(); List<Student> stuList = stuDao.getAllStudents(); resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); // 写表头信息,设置边框和宽度 out.println("<form action='/StuManServlet' method='POST'>"); out.println("<table border=1 bordercolor='blue' width='70%'><tr><th>ID</th><th>姓名</th><th>性别</th><th>年龄" + "</th><th>班级</th><th>操作</th></tr>"); //迭代处理 for (Student stu : stuList) { String id = stu.getId(); String name = stu.getName(); String sex = stu.isSex() + ""; String age = stu.getAge(); String className = stu.getClassName(); out.println("<tr>"); out.println("<td>" + id + "</td>"); out.println("<td align='center'>" + name + "</td>"); out.println("<td align='center'>" + sex + "</td>"); out.println("<td align='center'>" + age + "</td>"); out.println("<td align='center'>" + className + "</td>"); // 关联StuDelSetvlet删除的时候需要传递给StuDelServlet当前的ID,根据ID删除. out.println("<td align='center'><a href='/StuDelServlet?id=" + id + "'>删除</a></td>"); out.println("</tr>"); out.flush(); } out.println("</table></form>"); out.flush(); } }
学生删除Servlet:
package cn.itcast.servlet.student; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import cn.itcast.servlet.dao.StudentDAOImpl; //学生信息删除StuDelServlet public class StuDelServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); StudentDAOImpl stuDao = new StudentDAOImpl(); resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); String id = req.getParameter("id"); if(id!=null && !"".equals(id)){ stuDao.deleteStudent(id); out.println("<h1>删除成功!</h1>"); //关联学生管理servlet out.println("<br/><a href='/StuManServlet'>查看学生信息列表</a>"); out.flush(); } } }
相关推荐
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
\testJson\src\jsonExercise\JSONServlet.java 处理页面请求的Servlet。 \testJson\src\jsonExercise\ComdtyBean.java 商品信息的POJO。 \testJson\WebRoot\orderInfo.jsp 录入商品信息的JSP页面。 第21...
{12.10}示例}{162}{section.12.10} {12.10.1}exists}{165}{subsection.12.10.1} {12.11}集合操作}{165}{section.12.11} {12.11.1}union}{166}{subsection.12.11.1} {12.11.2}intersect与minus}{166}{subsection...
全书共分9篇32章,分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高能...
全书共分9篇32章,分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高性能...
全书共分9篇32章,分别介绍了JSP基础、环境搭建和开发工具、Java语言基础、JSP语法、JSP内建对象、JavaBean技术、Servlet技术、JSP经典设计模式、数据库的安装与创建、数据库访问技术、SQL语句在JSP中的应用、高性能...
服务器端我使用dom4j第三方包来组织xml数据,大家可自行百度下载。而Android客户端则使用 XmlPullParser来解析xml数据。服务器端代码: 代码如下: package servlet; import java.io.IOException; import java.io....
Ajax 由 HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。本系列的作者是一位 Ajax 专家,他演示了这些技术如何协同工作 —— 从总体概述到细节的...
原书名:Foundations of Ajax 原出版社: Apress 作者: (美)Ryan Asleson,Nathaniel T....b.2.6 java blueprints 252 b.2.7 ajax.net 252 b.2.8 microsoft的atlas项目 253 b.2.9 ruby on rails ... 253
Java EE servlet 477 21.7.4 选择Jython开发工具 483 21.8 使用Jython进行测试 483 21.9 嵌入Jython解释器 484 21.10 处理C-Python和Jython 之间的差异 487 21.11 本章小结 488 21.12 习题 488 第Ⅳ部分 附 录 附录A...
8.3.1 一个结合DataWrite和RowEditor的Grid示例 238 8.3.2 在CRUD操作中restful的设置以及使用Ext.Direct的问题 247 8.4 ListView控件 248 8.5 本章小结 251 第四部分 Ext 扩展和Ext插件 第9章 Ext 扩展 254 9.1 ...