项目需求
1.通过Java Web写出主页面、信息登记页面、信息修改页面、信息删除页面和信息查询页面等
2.通过连接数据库,实现项目的增删改查功能
代码分析
1.主页面
要求显示人口登记、修改人口信息、查询人口信息、人口信息浏览五个子菜单
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>首页</title> <style type="text/css"> a{ text-decoration: none; display: block; text-align: center; color: #ff8dcf; } </style> </head> <body> <h1 align="center">人口普查系统</h1> <a href="register.jsp" text->人口登记</a> <br> <a href="change.jsp">修改人口信息</a><br> <a href="delete.jsp">删除人口信息</a><br> <a href="queryindex.jsp">查询人口信息</a><br> <a href="browser.jsp">人口信息浏览</a><br> </body> </html>
2.人口登记页面
①完成添加人口信息登记,基本信息和填报限制如下表所示
户 别 |
家庭户 集体户(单选框) |
住房类型 |
家庭住宅、集体住所、工作地住所、其他住宅、无住宅(单选框) |
本户现住房面积 |
XXXXX平方米(文本框,只能输入这个整数) |
本户现住房间数 |
XXXXX间(文本框,只能输入这个整数) |
户主姓名 |
XXXXX(文本框) |
身份证号码 |
XXXXXXXXXXXXXXXXXX(判断身份证位数13位并且只能录入数字、最后一位可以录入X) |
性别 |
男/女(单选框) |
民族 |
(文本框) |
受教育程度 |
研究生、大学本科、大学专科、高中、初中、小学、未上过学(下拉框实现) |
②点击“提交”按钮,保存成功则跳转到人口基本信息浏览界面,新录入的信息置顶显示。失败则提示错误信息,返回当前页面
register.jsp
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/11/10 Time: 14:02 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>人口登记页面</title> <script type="text/javascript"> function btnFun() { var patt1 = /^d+.d+$/; var patt2 = /^d{17}(d|X|x)$/; var areaObj = document.getElementById("area"); var roomNumberObj = document.getElementById("roomnumber"); var id = document.getElementById("id"); var areaText = areaObj.value; var roomNumberText = roomNumberObj.value; var idText = id.value; if (patt1.test(areaText) || patt1.test(roomNumberText)) { alert("整数输入有误"); return false; } else if (patt2.test(idText)==false){ alert("身份证号输入错误") return false; } else { return true; } } </script> </head> <body> <form action="registerServlet" method="post"> <table align="center"> <tr> <td>户别:</td> <td> <input type="radio" name="hubie" value="家庭户">家庭户 <input type="radio" name="hubie" value="集体户">集体户 </td> </tr> <tr> <td>住房类型:</td> <td> <input type="radio" name="type" value="家庭住宅">家庭住宅 <input type="radio" name="type" value="集体住宅">集体住宅 <input type="radio" name="type" value="工作地住所">工作地住所 <input type="radio" name="type" value="其他住宅">其他住宅 <input type="radio" name="type" value="无住宅">无住宅 </td> </tr> <tr> <td>本户现住房面积:</td> <td><input type="text" name="area" id="area">平方米</td> </tr> <tr> <td>本户现住房间数</td> <td><input type="text" name="roomnumber" id="roomnumber"></td> </tr> <tr> <td>户主姓名:</td> <td><input type="text" name="name"> </td> </tr> <tr> <td>身份证号码:</td> <td><input type="text" name="id" id="id"></td> </tr> <tr> <td>性别:</td> <td> <input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女 </td> </tr> <tr> <td>民族:</td> <td><input type="text" name="nation"> </td> </tr> <tr> <td>受教育程度:</td> <td> <select name="education"> <option value="研究生">研究生</option> <option value="大学本科">大学本科</option> <option value="大学专科">大学专科</option> <option value="高中">高中</option> <option value="初中">初中</option> <option value="小学">小学</option> <option value="未上学">未上学</option> </select> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="提交" onclick="return btnFun()"> </td> </tr> </table> </form> </body> </html>
3.修改人口信息页面
输入户主姓名,显示其余信息,可对身份证号码、性别、民族、受教育程度进行修改;如果该名户主信息数据库不存在,则提示“该户主信息不存在”
change.jsp 输入用户姓名,提交后查询用户信息
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/11/10 Time: 14:41 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <form action="changeServlet" method="post"> <table align="center"> <tr> <td>请输入需要修改的用户姓名:</td> <td> <input type="text" name="name"> </td> </tr> <tr> <td> <input type="submit" value="提交"> </td> </tr> </table> </form> </body> </html>
change02.jsp 将查询到的结果输出值页面,并提供修改窗口
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/11/10 Time: 15:14 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <table align="center" border="1" cellspacing="0"> <tr> <td>住房类型</td> <td>${sessionScope.type}</td> </tr> <tr> <td>本户现住房面积</td> <td>${sessionScope.area}</td> </tr> <tr> <td>本户现住房间数</td> <td>${sessionScope.roomnumber}</td> </tr> <tr> <td>户主姓名</td> <td>${sessionScope.name}</td> </tr> <tr> <td>身份证号码</td> <td>${sessionScope.id}</td> </tr> <tr> <td>性别</td> <td>${sessionScope.sex}</td> </tr> <tr> <td>民族</td> <td>${sessionScope.nation}</td> </tr> <tr> <td>受教育程度</td> <td>${sessionScope.education}</td> </tr> </table> <br> <h4 align="center" style="text-decoration: cadetblue">请在下面填写修改信息</h4> <form action="changeServlet02" method="post"> <table align="center"> <tr> <td>户别:</td> <td> <input type="radio" name="hubie" value="家庭户">家庭户 <input type="radio" name="hubie" value="集体户">集体户 </td> </tr> <tr> <td>住房类型:</td> <td> <input type="radio" name="type" value="家庭住宅">家庭住宅 <input type="radio" name="type" value="集体住宅">集体住宅 <input type="radio" name="type" value="工作地住所">工作地住所 <input type="radio" name="type" value="其他住宅">其他住宅 <input type="radio" name="type" value="无住宅">无住宅 </td> </tr> <tr> <td>本户现住房面积:</td> <td><input type="text" name="area" value="${sessionScope.area}">平方米 </td> </tr> <tr> <td>本户现住房间数</td> <td><input type="text" name="roomnumber" value="${sessionScope.roomnumber}"> </td> </tr> <tr> <td>户主姓名:</td> <td><input type="text" name="name" value="${sessionScope.name}"> </td> </tr> <tr> <td>身份证号码:</td> <td><input type="text" name="id" value="${sessionScope.id}"></td> </tr> <tr> <td>性别:</td> <td> <input type="radio" name="sex" value="man">男 <input type="radio" name="sex" value="woman">女 </td> </tr> <tr> <td>民族:</td> <td><input type="text" name="nation" value="${sessionScope.nation}"> </td> </tr> <tr> <td>受教育程度:</td> <td> <select name="education"> <option value="研究生">研究生</option> <option value="大学本科">大学本科</option> <option value="大学专科">大学专科</option> <option value="高中">高中</option> <option value="初中">初中</option> <option value="小学">小学</option> <option value="未上学">未上学</option> </select> </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="修改"> </td> </tr> </table> </form> </body> </html>
若修改成功,则返回change_success.jsp页面
<html> <head> <title>Title</title> </head> <body> <h3>更改成功</h3> <a href="index.jsp">返回首页</a> </body> </html>
若修改失败,则返回change_wrong.jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h3>更改失败</h3> <a href="index.jsp">返回首页</a> </body> </html>
其中所需要的两个Servlet代码如下:
1.ChangeServlet
package com.gazikel.servlet; import com.gazikel.dao.CensusDaoImpl; import com.gazikel.pojo.Census; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; public class ChangeServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { /*req.setCharacterEncoding("UTF-8"); String username = req.getParameter("username"); CensusDaoImpl c = new CensusDaoImpl(); Census census = c.queryForAllByName(username); HttpSession session = req.getSession(); session.setAttribute("type", census.getType()); session.setAttribute("area", census.getArea()); session.setAttribute("roomnumber", census.getRoomNumber()); session.setAttribute("name", census.getName()); session.setAttribute("id", census.getId()); session.setAttribute("sex", census.getSex()); session.setAttribute("nation", census.getNation()); session.setAttribute("eduction", census.getEducation()); req.getRequestDispatcher("change02.jsp").forward(req, resp);*/ req.setCharacterEncoding("UTF-8"); String username = req.getParameter("name"); //System.out.println(username); CensusDaoImpl c = new CensusDaoImpl(); HttpSession session = req.getSession(); Census census = c.queryForAllByName(username); //System.out.println(census); session.setAttribute("type", census.getType()); session.setAttribute("area", census.getArea()); session.setAttribute("roomnumber", census.getRoomnumber()); session.setAttribute("name", census.getName()); session.setAttribute("id", census.getId()); session.setAttribute("sex", census.getSex()); session.setAttribute("nation", census.getNation()); session.setAttribute("eduction", census.getEducation()); /*req.setAttribute("type", census.getType()); req.setAttribute("area", census.getArea()); req.setAttribute("roomnumber", census.getRoomNumber()); req.setAttribute("name", census.getName()); req.setAttribute("id", census.getId()); req.setAttribute("sex", census.getSex()); req.setAttribute("nation", census.getNation()); req.setAttribute("eduction", census.getEducation());*/ //System.out.println(census.getType()+census.getEducation()); req.getRequestDispatcher("change02.jsp").forward(req, resp); } }
2.ChangeServlet02
package com.gazikel.servlet; import com.gazikel.dao.CensusDaoImpl; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class ChangeServlet02 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); String type = req.getParameter("type"); String area = req.getParameter("area"); String roomnumber = req.getParameter("roomnumber"); String name = req.getParameter("name"); String id = req.getParameter("id"); String sex = req.getParameter("sex"); String nation = req.getParameter("nation"); String education = req.getParameter("education"); CensusDaoImpl c = new CensusDaoImpl(); int i = c.changeByName(name, type, area, roomnumber, id, sex, nation, education); if (i >0){ req.getRequestDispatcher("change_success.jsp").forward(req, resp); } else{ req.getRequestDispatcher("change_wrong.jsp").forward(req,resp); } } }
4.删除人口信息页面
录入户主姓名,显示详细信息后,点击“删除”按钮,弹出提示框,提示“是否确认删除该互补信息”,确认后删除该信息
delete.jsp
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/11/10 Time: 14:38 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>删除人口信息页面</title> </head> <body> <form action="deleteServlet02" method="post"> <table align="center"> <tr> <td> 请输入需要删除户主姓名: </td> <td> <input type="text" name="username"> </td> </tr> <tr> <td> <input type="submit" value="查询" > </td> </tr> </table> </form> </body> </html>
delete02.jsp显示详细信息
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/11/10 Time: 15:05 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> <script type="text/javascript"> function fun() { alert("是否确认删除?"); } </script> </head> <body> 住房类型:${sessionScope.type}<br> 本户现住房面积:${sessionScope.area}<br> 本户现住房间数:${sessionScope.roomnumber}<br> 户主姓名:${sessionScope.name}<br> 身份证号码:${sessionScope.id}<br> 性别:${sessionScope.sex}<br> 民族:${sessionScope.nation}<br> 受教育程度:${sessionScope.education}<br> <form action="deleteServlet" method="post"> <table> <tr> <td> <input type="hidden" value="${requestScope.name}" > </td> </tr> <tr > <td colspan="2" ><input type="submit" value="删除" onclick="fun()"> </td> </tr> </table> </form> </body> </html>
若删除成功,则返回delete_success.jsp
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/11/10 Time: 15:09 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h3>删除成功</h3> <a href="index.jsp">返回首页</a> </body> </html>
若删除失败,则返回delete_wrong.jsp
<%-- Created by IntelliJ IDEA. User: lenovo Date: 2020/11/10 Time: 14:56 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h3>删除失败</h3><br> <h2 style="color: red">可能用户名不存在哦</h2> <a href="index.jsp">返回首页</a> </body> </html>
其中的两个Servlet如下:
1.DeleteServlet
package com.gazikel.servlet; import com.gazikel.dao.CensusDaoImpl; import com.gazikel.pojo.Census; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; public class DeleteServlet extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); HttpSession session = req.getSession(); String username = (String) session.getAttribute("name"); System.out.println(username); CensusDaoImpl s = new CensusDaoImpl(); int i = s.deleteByName(username); if (i > 0){ req.getRequestDispatcher("delete_success.jsp").forward(req,resp); } else{ req.getRequestDispatcher("delete_wrong.jsp").forward(req, resp); } } }
2.DeleteServlet02
package com.gazikel.servlet; import com.gazikel.dao.CensusDaoImpl; import com.gazikel.pojo.Census; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; public class DeleteServlet02 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); String username = req.getParameter("username"); System.out.println(username); CensusDaoImpl c = new CensusDaoImpl(); HttpSession session = req.getSession(); Census census = c.queryForAllByName(username); System.out.println(census); session.setAttribute("type", census.getType()); session.setAttribute("area", census.getArea()); session.setAttribute("roomnumber", census.getRoomnumber()); session.setAttribute("name", census.getName()); session.setAttribute("id", census.getId()); session.setAttribute("sex", census.getSex()); session.setAttribute("nation", census.getNation()); session.setAttribute("eduction", census.getEducation()); req.getRequestDispatcher("delete02.jsp").forward(req, resp); } }
增删改的操作其实都是差不多的。
明天在更查询的操作,有一点小难度。
还有今天忘了写出来数据库的连接操作,以及最基本的增删改查操作。以后会补充出来的。