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 ...
随机推荐
- charles 抓包 (一)
在web.app开发中经常需要通过抓包来定位页面.接口返回数据的问题.在mac系统中,charles是一款功能丰富的抓包软件.可以实现app的数据抓包. 工具:charles 附送charles的破解 ...
- div布局(持续更新)
1. 效果: 代码: <!DOCTYPE html> <html> <head> <meta name="viewport" conten ...
- 微信小程序上传图片及本地测试
前端(.wxml) <view id="view1"> <view id="btns"> <image id="ima1 ...
- 单元操作和仓储模式 repository+unitOfWork
仓储和工作单元模式是用来在数据访问层和业务逻辑层之间创建一个抽象层.应用这些模式,可以帮助用来隔离你的程序在数据存储变化. 在数据源层和业务层之间增加一个repository层进行协调,有如下作用:1 ...
- O029、教你看懂OpenStack日志
参考https://www.cnblogs.com/CloudMan6/p/5456484.html instance 从创建到删除的整个生命周期都是有 Nova 管理的,后面各小节我们以inst ...
- vue transtion 实现分析
这是我用js和css3,实现的vue transition组件相同的效果核心js var btn = document.getElementById('btn'); var box = null bt ...
- UEFI笔记 --- PeiReadOnlyVariable2->GetVariable()
问:在PEI阶段,PeiReadOnlyVariable2->GetVariable()可以从Pei Hob或NV RAM中获取UEFI变量,例如Setup默认值.若平台首次烧录BIOS并开机, ...
- MyBatis、JDBC相关知识
引言 在mybatis的基础知识中我们已经可以对mybatis的工作方式窥斑见豹.但是,为什么还要要学习mybatis的工作原理?因为,随着mybatis框架的不断发展,如今已经越来越趋于自动化,从代 ...
- Webmin代码执行漏洞复现
0x00 前言之前由于hw,没得时间分析.这个webmin相信大家很多次都在内网扫到过.也是内网拿机器得分的一环. 0x01影响版本Webmin<=1.920 0x02 环境搭建 建议大家以后用 ...
- Go学习笔记【一、概述】
工作需要,即将要把部分查询计算的逻辑翻译成Go语言,来提升查询效率 在此需要对Go语言进行学习,先把入门教程浏览了一遍,发现有些语法和C很类似,还有部分类似于Python,还没有深入学习,先开个坑,业 ...