Java简单示例-用户登录、单个页面的增删改查及简单分页

时间:2022-08-29 19:43:39

Java简单示例-用户登录、单个页面的增删改查及简单分页

index.html  -登录->stulist.jsp (index.html传递到LoginServlet,进行登录检测及写入session,NO返回index.html界面,OK 跳转到stulist.jsp)

stulist.jsp 实现对学生的增删改查及分页.(stulist.jsp检测是否有session,以及student列表中是否有学生信息,没有session返回index页面,student列表中没有信息调用GetStudentServlet获取学生信息,获取过程中已分页)

数据库操作类详见:http://www.cnblogs.com/A--Q/p/6137525.html

stulist.jsp界面如下:

Java简单示例-用户登录、单个页面的增删改查及简单分页

查询:可以实现组合查询,输入条件,点击‘查询’即可

增加:在上方输入完整学生信息后,选择‘添加’选项按钮,添加可用,点击‘添加’,即将刚才填写的学生信息,增加的数据库中

删除:在要删除的学生后点击‘删除’,弹出‘询问框’,是否要删除该学生信息,选择‘是’从数据库中删除该学生,选择‘否’取消对该学生的删除操作。

修改:在要修改的学生后点击‘修改’,表格上方,显示一排信息框,除学号外,填写好更改的信息,点击更新,即可,或者点击‘取消’,取消本次的更新。

Java简单示例-用户登录、单个页面的增删改查及简单分页

(如果删除了该学生,则该页面会刷新,上方的更新框会隐藏,即不会存在逻辑性错误)。

对于分页:

这里没有让用户输入每页显示多少条信息,而是笔者自己再代码中写好的,每页显示10条,如果没有条件则显示如下:

Java简单示例-用户登录、单个页面的增删改查及简单分页

如果加上条件,则显示为:

Java简单示例-用户登录、单个页面的增删改查及简单分页

在stulist.jsp 页面*有两个表单,一个表单传入到 GetStudentServlet 执行stulist.jsp传入的数据进行分页跳转,插入输入,查询数据,flag=3 分页跳转 flag=2插入 flag=1查询,一个表单传入到GetStudentServlet_extend 执行stulist.jsp传入的数据进行删除和修改数据,flag=1 删除 flag=2修改

以上两个Servlet操作完后都会返回student数组列表对象在stulist显示。(使用StudentDao对象得到student数组列表)

StudentDao:

 package com.mis.dao;

 import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import com.mis.bean.Student; public class StudentDao extends DBOper{
public ArrayList<Student> getStudent(int flag,String parameter,int crrentPage){//分页查询
String sql="select id,stuno,name,sex,age,major from student order by id desc";
if (flag>0) {
sql= "select * from student where "+parameter;
}
crrentPage=(crrentPage==0?0:crrentPage-1);
sql+=" limit "+crrentPage*10+",10";//默认每页显示
ArrayList<Student> students = new ArrayList<Student>();
ResultSet rs = executeQuery(sql,null);
try {
while(rs.next()){
Student s = new Student();
s.setId(rs.getInt("id"));
s.setStuno(rs.getString("stuno"));
s.setName(rs.getString("name"));
s.setSex(rs.getString("sex"));
s.setAge(rs.getInt("age"));
s.setMajor(rs.getString("major"));
students.add(s);
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public int getStudentCount(int flag,String parameter){//得到查询的总条数
String sql="select id,stuno,name,sex,age,major from student";
if (flag>0) {
sql= "select * from student where "+parameter;
}
ResultSet rs = executeQuery(sql,null);
try {
rs.last();
return rs.getRow();
} catch (SQLException e) {
return 0;
}
}
public ArrayList<Student> getStudent(int flag,String parameter){//未分页查询
String sql="select id,stuno,name,sex,age,major from student order by id";
if (flag>0) {
sql= "select * from student where "+parameter;
}
ArrayList<Student> students = new ArrayList<Student>();
ResultSet rs = executeQuery(sql,null);
try {
while(rs.next()){
Student s = new Student();
s.setId(rs.getInt("id"));
s.setStuno(rs.getString("stuno"));
s.setName(rs.getString("name"));
s.setSex(rs.getString("sex"));
s.setAge(rs.getInt("age"));
s.setMajor(rs.getString("major"));
students.add(s);
}
} catch (SQLException e) {
e.printStackTrace();
}
return students;
}
public int addDelUp(String sql) {
int num=0;
num=executeUpdate(sql,null);
if(num!=0)return num;
return 0;
}
}

GetStudentServlet_extend

 package com.mis.servlet;

 import java.io.IOException;
import java.util.ArrayList; import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import com.mis.bean.Student;
import com.mis.dao.StudentDao; public class GetStudentServlet_extend extends HttpServlet {
private static final long serialVersionUID = 1L; public GetStudentServlet_extend() {
super();
} // 执行stulist.jsp传入的数据进行删除和修改数据,flag=1 删除 flag=2修改
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
ServletContext ctx = this.getServletContext();
String server = ctx.getInitParameter("server");
String dbname = ctx.getInitParameter("dbname");
String user = ctx.getInitParameter("user");
String pwd = ctx.getInitParameter("pwd");
StudentDao dao = new StudentDao();
String sql = null;
int flag = 0;
try {
flag = Integer.parseInt(request.getParameter("flag_delUp"));
} catch (Exception e) {
flag = 0;
}
String stuid = request.getParameter("ud");
String stuname = request.getParameter("ud_name");
String stusex = request.getParameter("ud_sex");
String stuage = request.getParameter("ud_age");
String stumajor = request.getParameter("ud_major");
String del_stuid = request.getParameter("parameter_del");
if (flag == 1) {// 执行删除
try {
flag = 0;
sql = "Delete from student where stuno='" + del_stuid + "';";
dao.getConn(server, dbname, user, pwd);
dao.addDelUp(sql);
} catch (Exception e) {
e.printStackTrace();
}
} else if (flag == 2) {// 执行修改
flag = 0;
sql = "update student set name='" + stuname + "',sex='" + stusex + "',age='" + stuage + "',major='"
+ stumajor + "' where stuno='" + stuid + "';";
try {
dao.getConn(server, dbname, user, pwd);
dao.addDelUp(sql);
} catch (Exception e) {
e.printStackTrace();
}
}
try {
dao.getConn(server, dbname, user, pwd);
ArrayList<Student> students = dao.getStudent(0, null, 0);
request.setAttribute("stuCount", dao.getStudentCount(0, null));
request.setAttribute("students", students);
request.setAttribute("currentPage", 1);//默认用户打开的分页第一页
request.getRequestDispatcher("stulist.jsp").forward(request, response);
return;
} catch (Exception e) {
e.printStackTrace();
} } protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

stulist.jsp

 <%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.lang.Math"%>
<%@ page import="com.mis.bean.Student"%>
<%@ page import="com.mis.dao.DBOper"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!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>学生信息列表</title> <script src="js_jquery/stulist.js" charset="UTF-8"></script>
<link rel="stylesheet" href="css/stulist.css">
</head>
<body>
<c:if test="${username==null }">
<jsp:forward page="index.html"></jsp:forward>
</c:if>
<c:if test="${students==null}">
<jsp:forward page="getStudent"></jsp:forward>
</c:if> <table border="0" align="center" cellspacing="0" class="list_table"
id="senfe" style='width: 90%'>
<thead>
<tr>
<td colspan='7'>
<form method="POST" name="form" action="getStudent">
<!-- 开发阶段 没有对用户的非法输入进行过滤-->
<input type="hidden" name="flag" value="1"> <input
type="text" name="stuid" value="学号"
onclick="if(this.value == '学号')this.value ='';"
onBlur="if(this.value == ' '||this.value == '')this.value ='学号';">
<input type="text" name="stuname" value="姓名"
onclick="if(this.value == '姓名')this.value ='';"
onBlur="if(this.value == ' '||this.value == '')this.value ='姓名';">
<input type="text" name="stusex" value="性别"
onclick="if(this.value == '性别')this.value ='';"
onBlur="if(this.value == ' '||this.value == '')this.value ='性别';">
<input type="text" name="stuage" value="年龄"
onclick="if(this.value == '年龄')this.value ='';"
onBlur="if(this.value == ' '||this.value == '')this.value ='年龄';">
<input type="text" name="stumajor" value="专业"
onclick="if(this.value == '专业')this.value ='';"
onBlur="if(this.value == ' '||this.value == '')this.value ='专业';">
<input type="radio" name="selAdd" checked onclick="selop()">
<input type="submit" value="查询" id="selcon"> <input
type="radio" name="selAdd" onclick="selop()"><input
type="submit" disabled value="增加" id="addcon" onclick="setPar()">
</form>
</td>
</tr>
<tr>
<th>学号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>专业</th>
<th>删除</th>
<th>修改</th>
</tr>
</thead>
<tbody>
<form method="post" name="DelUp" action="getStudent_extend">
<c:forEach var="student" items="${students }">
<tr align="center">
<td>${student.stuno }</td>
<td>${student.name }</td>
<td>${student.sex }</td>
<td>${student.age }</td>
<td align="left">${student.major }</td>
<td><input type="submit" name=${student.stuno } value="删除"
onclick="del(this)"></td>
<td><input type="button" name=${student.stuno } value="修改"
onclick="updata(this)"></td>
</tr>
</c:forEach> <div id="updateDiv">
学号:<input type="text" name="ud" readOnly>
姓名:<input type="text" name="ud_name">
性别:<input type="text" name="ud_sex">
年龄:<input type="text" name="ud_age">
专业:<input type="text" name="ud_major"> <input type="submit" value="更新">
<span id="cancelUpdate" onclick="cancelupdate()">取消</span>
</div> <input type="hidden" name="flag_delUp"> <input type="hidden"
name="parameter_del">
</form>
</tbody>
</table>
<div id="pageCount" style="width:600px;margin-left:auto;margin-right:auto;">
<c:if test="${stuCount!=null}">
<br /><c:if test="${condition!=null&&condition!=''}">查询条件为<c:out value="${condition}"></c:out></c:if>
<c:out value="${stuCount}"></c:out>条记录,<!-- Math.ceil() 向上取整 -- (stuCount-((stuCount-1)%10))/10+1 ** -->
共<fmt:formatNumber type="number" value="${(stuCount-((stuCount-1)%10))/10+1}" maxFractionDigits="0"/>页
,当前为第<c:out value="${currentPage}"></c:out>页 <form method="post" name="paging" action="getStudent">
<input type="text" value="" name="page" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">
<input type="hidden" name="flag" value="3">
<input type="hidden" name="parame" value='<c:out value="${condition}"></c:out>'>
<input type="submit" value="跳转" onclick="checkPage()">
</form>
</c:if>
</div>
</body>
</html>

源代码:https://pan.baidu.com/s/1e_mTr1Rf4BoehNBwDEg76g 密码:8qg3

Java简单示例-用户登录、单个页面的增删改查及简单分页的更多相关文章

  1. SSH(Struts 2&period;3&period;31 &plus; Spring 4&period;1&period;6 &plus; Hibernate 5&period;0&period;12 &plus; Ajax)框架整合实现简单的增删改查(包含分页,Ajax 无刷新验证该用户是否存在)

    软件152 余建强 该文将以员工.部门两表带领大家进入SSH的整合教程: 源码下载:http://download.csdn.net/detail/qq_35318576/9877235 SSH 整合 ...

  2. MyBatis简单的增删改查以及简单的分页查询实现

    MyBatis简单的增删改查以及简单的分页查询实现 <? xml version="1.0" encoding="UTF-8"? > <!DO ...

  3. C&num; 对MongoDB 进行增删改查的简单操作

    C# 对MongoDB 进行增删改查的简单操作   下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 1,连接数据库   /// & ...

  4. 啊啊啊啊啊啊啊今天就写&comma;炒鸡简单 数据库Sqlite的创建&comma;库的增删改查

    啦啦啦啦啦啦啦 写这个不用多长时间,我直接写代码注释都是些语句,Sql语句和Api来操作数据库 ,语句的参数我会注释 SQLite数据库创建数据库需要使用的api:SQLiteOpenHelper必须 ...

  5. TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查、有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句。

    TESTUSERB 仅能对TESTUSERA 用户下的某些表增删改查.有些表仅能对某些列update,查询TESTUSERB 用户权限,获取批量赋予语句. select 'grant '|| PRIV ...

  6. java程序设计课期中考试——数据库的增删改查和简单的js界面

    首先是设计思路,对于数据库的增删改查,我们借助Ecilipse来进行前端和后端的编写.Ecilipse是可以进行java web项目的操作的. 前端,我们选择用使用jsp,所谓的jsp就是可以嵌入其他 ...

  7. Java数据库连接--JDBC基础知识&lpar;操作数据库:增删改查&rpar;

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  8. C&num;winform窗口登录和数据的增删改查

    工具:VS2013 数据库SqlServer2008 两张表,一个用户登录表,一个资料表用于增删改查 .先把表建好.可以根据我发的图建立,这样下面的代码修改的就少. 资料部分SQL CREATE TA ...

  9. 项目二&colon;品优购 第二天 AngularJS使用 brand商品页面的增删改查

    品优购电商系统开发 第2章 品牌管理 传智播客.黑马程序员 1.前端框架AngularJS入门 1.1 AngularJS简介 AngularJS  诞生于2009年,由Misko Hevery 等人 ...

随机推荐

  1. js之规范代码写法

    一.避免多次定义var 例如:var a = 0; var b = 1; 尽量定义为:var a = 0,   b =1; 二.尽量在结尾使用分号(semicolon) 否则编辑器会提示:Unterm ...

  2. mysql 存储过程--- 创建,调用,删除

    DELIMITER //CREATE PROCEDURE p_addscore(nums INT,OUT retrows INT)BEGINDECLARE i INT DEFAULT 0;add_lo ...

  3. js创建table表格

    //js创建table表格var tr;var cell;for(var i=0;i<10;i++){ //创建一个tr tr=document.createElement('tr'); doc ...

  4. MySQL的备份与恢复

    Linux下的mysql的备份与恢复 备份: 比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump 命令格式如下: [root@linuxsir01 root]# ...

  5. Java实现二叉树的构建与遍历

    转载:http://ocaicai.iteye.com/blog/1047397 目录: 1.把一个数组的值赋值给一颗二叉树 2.具体代码 1.树的构建方法 2.具体代码 package tree; ...

  6. 富文本,NSAttributedString,当需要改变的内容有相同的时候的解决方法

    在开发的过程中可能会遇到富文本展示,例如:一行文本,前面是题后面是答案,题和答案用不同的颜色字体,但是答案的内容在题总也有,这时候用平常的方法就会展示错误,因为把题中的内容改变了颜色二实际答案却没有改 ...

  7. QT QHttpMultiPart上传图片

    使用get请求或post请求可以传递简单的参数,但要上传图片到服务器,就要多做一些工作了,如下代码片段利用post请求可成功上传图片到服务器: QNetworkRequest request; req ...

  8. linux grep 取出特定字符串并统计个数

    原始日志如下: $more text.log 2018-07-16 00:00:03 [DEBUG] request setInformation params:{"msg":&q ...

  9. Django进阶之缓存和信号

    一.缓存 简介 由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者mem ...

  10. JAVAWEB tomcat服务器启动错误原因总结

    tomcat服务器启动错误: org.apache.catalina.LifecycleException    这种异常的原因是  servlet的代码出现了错误 实例: 这里的servlet由于使 ...