首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > CSS >

java-servlet、DOM、html综合施用示例

2012-11-25 
java-servlet、DOM、html综合运用示例题目:学员管理:学员录入,与Student类中字段对应,点击保存数据,提交给Us

java-servlet、DOM、html综合运用示例
题目:

学员管理:
  学员录入,与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;}@Overridepublic 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中. */@Overridepublic 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. */@Overridepublic 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文件中删除一个节点. */@Overridepublic 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;//学生信息录入StuRecServletpublic class StuRecServlet extends HttpServlet {@Overrideprotected 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;//学生信息管理StuManServletpublic class StuManServlet extends HttpServlet {@Overrideprotected 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;//学生信息删除StuDelServletpublic class StuDelServlet extends HttpServlet {@Overrideprotected 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>");//关联学生管理servletout.println("<br/><a href='/StuManServlet'>查看学生信息列表</a>");out.flush();}}}

热点排行