Java Web项目案例之---登录注册和增删改查(jsp+servlet)
登录注册和增删改查(jsp+servlet)
(一)功能介绍
1.用户输入正确的密码进行登录
2.新用户可以进行注册
3.登录后显示学生的信息表
4.可以添加学生
5.可以修改学生已有信息
6.可以删除已有学生
7.可以显示登录的用户学号(每个页面都可以通过调用session显示)
8.可以记录浏览量
(二)页面展示
登录页面

注册页面

学生信息页面

添加页面

添加之后的学生信息表

修改页面

修改之后的学生信息表

删除之后的学生信息表

(三)项目代码

package entity;
public class Student {
private String sno;
private String password;
private String name;
public Student(String sno, String password, String name) {
this.sno = sno;
this.password = password;
this.name = name;
}
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package util;
import entity.Student;
import java.util.HashMap;
public class StudentUtil {
public static HashMap<String, Student> map=new HashMap<String,Student>();
static{
map.put("101",new Student("101","123","lili"));
map.put("102",new Student("102","123","lisa"));
map.put("103",new Student("103","123","coco"));
map.put("104",new Student("104","123","mark"));
}
public static boolean log(Student stu){
boolean b=false;
for(String s:map.keySet()){
if(map.get(s).getSno().equals(stu.getSno())&&map.get(s).getPassword().equals(stu.getPassword())){
b=true;
}
}
return b;
}
public static boolean reg(Student stu){
map.put(stu.getSno(),stu);
return true;
}
}
package servlet;
import entity.Student;
import org.omg.CORBA.Request;
import util.StudentUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String sno=req.getParameter("sno");
String password=req.getParameter("password");
Student s=new Student(sno,password,null);
boolean b=StudentUtil.log(s);
if(b==true){
ServletContext a=this.getServletContext();
Object o=a.getAttribute("count");
if(o==null){
a.setAttribute("count",1);
}else{
int count=Integer.parseInt(o.toString());
a.setAttribute("count",count+1);
}
HttpSession se=req.getSession();
se.setAttribute("sno",sno);
req.setAttribute("sno",sno);
req.getRequestDispatcher("student.jsp").forward(req,resp);
}else{ req.getRequestDispatcher("error.jsp").forward(req,resp);
}
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
package servlet;
import entity.Student;
import util.StudentUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/RegisterServlet")
public class RegisterServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String sno=req.getParameter("sno");
String password=req.getParameter("password");
String name=req.getParameter("name");
StudentUtil.reg(new Student(sno,password,name));
req.getRequestDispatcher("/index.jsp").forward(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
package servlet;
import entity.Student;
import util.StudentUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/InsertServlet")
public class InsertServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String sno=req.getParameter("sno");
String password=req.getParameter("password");
String name=req.getParameter("name");
StudentUtil.map.put(sno,new Student(sno,password,name));
req.getRequestDispatcher("student.jsp").forward(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
package servlet;
import util.StudentUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/UpdateServlet")
public class UpdateServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String sno=req.getParameter("sno");
String password=req.getParameter("password");
String name=req.getParameter("name");
StudentUtil.map.get(sno).setName(name);
StudentUtil.map.get(sno).setPassword(password);
req.getRequestDispatcher("student.jsp").forward(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
package servlet;
import util.StudentUtil;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/DeleteServlet")
public class DeleteServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String sno= req.getParameter("sno");
StudentUtil.map.remove(sno);
req.getRequestDispatcher("student.jsp").forward(req,resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
}
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="LoginServlet" method="post">
<div class="log">
<h2>登录</h2>
学号:<input type="text" name="sno"><br>
密码:<input type="password" name="password"> <br>
<input type="submit" value="确认登录">
<a href="register.jsp" >注册</a>
</div>
</form>
</body>
</html>
register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="RegisterServlet" method="post">
学号:<input type="text" name="sno"><br>
密码:<input type="text" name="password"><br>
姓名:<input type="text" name="name"><br>
<input type="submit" value="确认">
</form>
</body>
</html>
student.jsp
<%@ page import="util.StudentUtil" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<a href="insert.jsp">增加</a>
<span>用户:<%=session.getAttribute("sno")%></span>
<span>浏览量:<%=application.getAttribute("count")%></span>
<table>
<tr>
<td>学号</td>
<td>密码</td>
<td>姓名</td>
<td></td>
</tr>
<%
for(String s: StudentUtil.map.keySet()){%>
<tr>
<td><%=StudentUtil.map.get(s).getSno()%></td>
<td><%=StudentUtil.map.get(s).getPassword()%></td>
<td><%=StudentUtil.map.get(s).getName()%></td>
<td><a href="update.jsp?sno=<%=StudentUtil.map.get(s).getSno()%>&&password=<%=StudentUtil.map.get(s).getPassword()%>&&name=<%=StudentUtil.map.get(s).getName()%>">修改</a>
<a href="DeleteServlet?sno=<%=StudentUtil.map.get(s).getSno()%>">删除</a></td>
</tr>
<% } %>
</table>
</body>
</html>
error.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
账户名或密码错误
<a href="index.jsp">返回登录</a>
</body>
</html>
insert.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="InsertServlet" method="post">
学号:<input type="text" name="sno"/><br>
密码:<input type="text" name="password"/><br>
姓名:<input type="text" name="name"/><br>
<input type="submit" value="确认添加">
</form>
</body>
</html>
update.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="UpdateServlet" method="post">
<table>
<tr>
<td>学号</td>
<td><input type="text" name="sno" value="<%=request.getParameter("sno")%>"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="text" name="password" value="<%=request.getParameter("password")%>"></td>
</tr>
<tr>
<td>姓名</td>
<td><input type="text" name="name" value="<%=request.getParameter("name")%>"></td>
</tr>
</table>
<input type="submit" value="确认修改">
</form>
</body>
</html>
Java Web项目案例之---登录注册和增删改查(jsp+servlet)的更多相关文章
- Java Web项目案例之---登录和注册(精华版)
登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是 ...
- Spring boot+mybatis+thymeleaf 实现登录注册,增删改查
本文重在实现理解,过滤器,业务,逻辑需求,样式请无视.. 项目结构如下 1.idea新建Spring boot项目,在pom中加上thymeleaf和mybatis支持.pom.xml代码如下 < ...
- 纯Java JDBC连接数据库,且用JDBC实现增删改查的功能
Java JDBC连接数据库 package cn.cqvie.yjq; import java.sql.*; /** * 注册数据库的驱动程序,并得到数据库的连接对象 * @author yu * ...
- node 实现Token状态登录 及数据库增删改查
1.项目目录结构 2.启动入口文件代码index.js const express = require('express') const bodyParser = require('body-pars ...
- Java数据库连接--JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- Python之注册表增删改查(干货)
在Windows平台下,对注册表的增删改查的需求比较多,微软提供了很多用于访问,修改注册表等的API,我们可以使用诸如bat,或者C++等各种方式去访问修改注册表.无所不能的python下如何完成这些 ...
- Node教程——Node+MongoDB案例实现用户信息的增删改查
想要获取源代码的同学可以留言,我不做git上传了,案例太简单 没必要 综合演练 用户信息的增删改查 需求:你需要实现这样的结果 点击添加可以添加用户,点击删除可以删除点击修改可以修改 代码分析: 1. ...
- Java对象转JSON时如何动态的增删改查属性
1. 前言 日常开发中少不了JSON处理,少不了需要在JSON中添加额外字段或者删除特定字段的需求.今天我们就使用Jackson类库来实现这个功能. 2. JSON字符串增加额外字段 假如我们有这样结 ...
- .net core项目搭建swagger接口实现简单增删改查
.net core搭建swagger 1,新建立.net core项目(这里不再细说) 2,引入NuGet程序包 3,建立项目之后在Startup类中配置swagger 这里我直接把代码贴出来: 在C ...
随机推荐
- STM32F10xxx_Keil中添加的预定义宏
目录 STM32F10xxx_Keil中添加的预定义宏 更新记录 STM32F10xxx_Keil中添加的预定义宏 更新记录 version status description date autho ...
- ES6 class 继承 与面向对象封装开发简单实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 闭包问题for(var i=0;i<10;i++){ setTimeout(function(){ console.log(i)//10个10 },1000) }
for(var i=0;i<10;i++){ setTimeout(function(){ console.log(i)//10个10 },1000) } 遇到这种问题 如何用解决呢 for(v ...
- odoo字段属性
以下为可用的非关联字段类型以及其对应的位置参数: Char(string)是一个单行文本,唯一位置参数是string字段标签. Text(string)是一个多行文本,唯一位置参数是string字段标 ...
- 《python解释器源码剖析》第11章--python虚拟机中的控制流
11.0 序 在上一章中,我们剖析了python虚拟机中的一般表达式的实现.在剖析一遍表达式是我们的流程都是从上往下顺序执行的,在执行的过程中没有任何变化.但是显然这是不够的,因为怎么能没有流程控制呢 ...
- centos6.4升级openssh7.4p1
Centos6.4版本yum升级openssh版本最高到5.3,想要升级到更高的版本需要重新编译 一.查看当前openssh版本: [root@localhost ~]# ssh -VOpenSSH_ ...
- 网络初级篇之STP(实验验证)
一.根桥的选举. 1.优先级相等时. (图1-1) (图1-2) 在上面1-1图中,已经标出桥的mac地址,桥的优先级为默认优先级(缺省:32768).任意一端口抓包,查看STP数据包内包含的信息,根 ...
- linux基础—课堂随笔_03 SHELL脚本编程基础
shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...
- 【ios bug解决】 输入框聚焦时光标不显示
解决办法:重写user-select样式 css: user-select: text;-webkit-user-select:text;
- C# .NET 微信开发-------当微信服务器推送消息时如何接收处理
最近一直在看微信,整整一个月了,看到现在说实话还有很多没看的,从前两周一点看不懂到现在单个功能的一步步实现,不知道这样的速度是否太慢了. 不过现在往下看还是有思路了,目前整个文档完成学习只有1/3左右 ...