- 浏览: 113607 次
- 性别:
- 来自: 成都
文章分类
最新评论
题目:
学员管理:
学员录入,与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(); } } }
发表评论
-
Servlet3.1应用生命周期事件 (转载)
2012-12-29 17:14 657应用生命周期事件 11.1 介绍 应用事 ... -
java-WEB中的过滤器Filter
2012-09-18 22:58 1466过滤器是一个程序,它先于与之相关的s ... -
servlet知识点回顾
2012-09-03 21:40 8431.Servlet规范 1.1 规范了应用服务器 to ... -
servlet-cookie和session应用示例:模拟购物车
2012-09-02 21:32 1792思路分析: 1. 根据需求抽象出业务对象 User{ ... -
Servlet接口中的各方法的生命周期及读取web.xml的配置信息
2012-08-28 22:29 1267package cn.itcast.servletlife.s ...
相关推荐
在这个"Java+Servlet+Jquery+Json基础示例"中,我们可以看到如何将这四种技术融合在一起创建一个Web应用。首先,用户通过前端界面(HTML+CSS+Jquery)发送Ajax请求,Jquery负责包装和发送这些请求,通常是以Json格式...
1. **序列化与反序列化**:在Servlet中,使用如Jackson或Gson库可以方便地将Java对象转换为JSON字符串,反之亦然。 2. **设置响应头**:Servlet在返回JSON时,需设置响应头`Content-Type`为`application/json`,告知...
Servlet是Java Web开发中的服务器端组件,用于处理请求并生成响应。 1. **数据库设计**: 在这个示例中,我们有两个SQL文件,`ajax.sql`和`ajaxExample.sql`。这些文件通常用于创建数据库表结构。例如,我们可以...
本示例介绍了一个基于JSP、Servlet和MySQL实现的学生成绩信息管理系统,该系统提供了丰富的功能,包括管理员、教师和学生的不同权限操作。以下是系统的详细知识点解析: 1. **技术栈**: - **JSP (JavaServer ...
Servlet是Java编写服务器端应用程序的标准API,可以生成动态内容。JSP则是更高级的视图技术,允许开发者在HTML中嵌入Java代码,更易于创建用户界面。 在"Java-xml.rar"中,可能包含的Java源代码可能涉及了XML的解析...
- **Servlet**: DWR包含一个Servlet,用于接收和处理来自浏览器的请求。 - **JavaScript API**: 提供了一系列JavaScript对象和方法,供前端开发者在浏览器中使用。 3. **DWR的工作流程** - **初始化**: 在服务器...
在本示例中,我们使用AJAX来验证用户名是否存在,这涉及到JSP(JavaServer Pages)、Servlet以及相关的web配置。 **JSP基础** JSP是Java的一种动态网页技术,它允许开发者在HTML代码中嵌入Java代码,以实现服务器...
- 示例: `<%@ page language="java" contentType="text/html; charset=UTF-8"%>` - **表达式** - 示例: `!" %>` - **脚本片段** - 示例: `!"; %>` - **声明** - 示例: `! int count = 0; %>` **4.4 JSP的执行...
标题 "Send-json-to-servlet-using-jquery-ajax" 涉及到的是在Web开发中,如何使用jQuery的AJAX功能向JavaServlet发送JSON数据。这是一个常见的需求,特别是在前后端分离的架构中,前端通过异步方式与后端交互,提高...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
`递归显示数据库目录树(html+java servlet)`的主题主要涉及到两个核心部分:前端HTML展示和后端Java Servlet处理。 前端HTML是用户与应用交互的界面,它负责将数据以树形结构呈现出来。在HTML中,我们可以使用`<ul>...
**3.8 Java与XML联合编程之DOM篇** - **DOM解析** - 使用 DOM 对整个文档进行操作。 #### 四、其他 **4.1 代码复用的规则** - **代码复用** - 如何有效地重用代码。 **4.2 Java IO 包中的Decorator模式** - ...
【标题】"Todos-Application-With-Servlet-Jquery-Ajax"是一个使用Servlet、Ajax、HTML、CSS和jQuery构建的待办事项应用项目。这个项目旨在展示如何将这些技术结合在一起,创建一个实时更新、无需页面刷新的Web应用...
DOM4J是Java中一个非常流行且功能强大的XML处理库,它提供了丰富的API用于读取、写入、修改XML文档。在本教程中,我们将深入探讨如何使用DOM4J解析XML配置文件,并模拟处理`web.xml`中的`url-pattern`元素。 首先,...
本示例“ajax调用servlet_test_可以运行的例子”提供了一个完整的工程,它演示了如何利用Ajax异步地与Servlet进行交互,从而提高用户体验。这个项目基于JDK5.0环境,确保了兼容性和可运行性。 首先,让我们深入理解...
总结来说,这个项目是一个典型的Java Web应用示例,展示了如何结合Servlet、Bootstrap、JQuery和Ajax来开发一个功能完整的学生信息管理系统。对于初学者,这是一个很好的学习案例,可以帮助理解Java Web开发的基本...
**Ajax与Java Servlet交互详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,实现了页面的异步更新,大大...
这个压缩包“java-ee-master”显然包含了与JavaEE相关的代码示例,特别是前端三大件(HTML、CSS、JavaScript)和Servlet的实践应用。 首先,让我们详细探讨JavaEE。Java Enterprise Edition(JavaEE),现在被称为...
本资源包含了一套完整的Ajax实现,涵盖了Java Servlet和JavaScript的相关应用,旨在帮助开发者深入理解和掌握Ajax的实现过程。 **1. JavaScript基础** 在Ajax中,JavaScript扮演着关键角色。它负责创建和管理...