Java项目案例之---登录和修改(JSP)
登录和修改(JSP)
通过案例学习jsp的常用知识点:
1.创建一个Map集合,用于存放学生信息,将学生信息存入Map中
2.通过page将需要的包导入
3.用request.getParameter通过name得到输入框的内容
4.session生命周期在整个会话期间,整个会话中都可以得到session中存放的信息,可以用于存放登录学生的学号,使每个页面都可以得到学号
5.application生命周期在整个web容器的生命期间,可以用于记录此项目的浏览人数,可以得到application中存放的数据
6. 点击修改,将所点击的学生信息传给另一个页面
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 {
//创建一个Map集合,用于存放学生信息
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"));
}
/**
* 用于检测登录时用户输入的账户和密码
* @param stu
* @return 返回布尔类型的数据
*/
public static boolean login(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;
break;
}
}
return b;
}
}
index.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/7/22 0022
Time: 上午 9:04
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<style>
.log{
align-content: center;
text-align: center;
}
</style>
</head>
<body>
<!--登录页面-->
<form action="loginController.jsp" method="post">
<div class="log">
<h3>登录</h3>
学号:<input type="text" name="sno"/></br>
密码:<input type="password" name="password"/></br>
<input type="submit" value="确定"/></div>
</form>
</body>
</html>

loginController.jsp
<%@ page import="util.StudentUtil" %><%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/7/22 0022
Time: 上午 9:04
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="error.jsp" %>
<!--通过page将需要的包导入 -->
<%@page import="entity.Student" %>
<%@page import="util.StudentUtil" %>
<%@ page import="javafx.application.Application" %>
<html>
<head>
<title>Title</title>
<style>
table{
align-content: center;
text-align: center;
width: 500px;
height: 200px;
border: 2px solid #8ea4ff;
}
tr,td{
border: 2px solid #8ea4ff;
}
</style>
</head>
<body>
<%
String sno=request.getParameter("sno");//用request.getParameter通过name得到输入框的内容
String password=request.getParameter("password");
Student stu=new Student(sno,password,null);//创建一个Student对象
boolean b=StudentUtil.login(stu);//调用StudentUtil的login方法检测学号和密码
if(b){
//session生命周期在整个会话期间,整个会话中都可以得到session中存放的信息
//此处用于存放登录学生的学号,使每个页面都可以得到学号
session.setAttribute("count",sno);
//application生命周期在整个web容器的生命期间
//此处用于记录此项目的浏览人数
//得到application中存放的数据
Object o= application.getAttribute("num");
if(o==null){//如果application中没有数据,则向application中存入1
application.setAttribute("num",1);
}else{
//如果application中已经存在数据,则存放的数据加1
int num=Integer.parseInt(o.toString());
application.setAttribute("num",num+1);
}
%>
<h2>学生信息</h2>
<h3 style="text-align: right">登录账号:<%=session.getAttribute("count")%></h3>
<h3 style="text-align: right">浏览量:<%=application.getAttribute("num")%></h3>
<hr>
<table>
<tr>
<td>学号</td>
<td>密码</td>
<td>姓名</td>
<td></td>
</tr>
<%
for(Student st:StudentUtil.map.values()){
%>
<tr>
<td><%=st.getSno()%></td>
<td><%=st.getPassword()%></td>
<td><%=st.getName()%></td>
<!--点击修改,将所点击的学生信息传给另一个页面-->
<td><a href="update.jsp?sno=<%=st.getSno()%>&&password=<%=st.getPassword()%>&&name=<%=st.getName()%>">修改</a></td>
</tr>
<%}%>
</table>
<%}else{
//抛出异常
throw new Exception("账户或密码错误");
}%>
</body> </html>
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/7/22 0022
Time: 下午 5:10
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%=exception.getMessage()%>
</body>
</html>

update.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/7/22 0022
Time: 上午 10:10
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<style>
table{
width: 400px;
height: 150px;
border:2px solid #8ea4ff;
text-align: center;
}
tr,td{
border:2px solid #8ea4ff;
}
</style>
</head>
<body>
<h3 style="text-align: right">登录账号:<%=session.getAttribute("count")%></h3>
<form action="updateController.jsp" method="post">
<h2>修改信息</h2>
<hr>
<table>
<tr>
<td style="width: 30%">
学号
</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>

updateController.jsp
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/7/22 0022
Time: 上午 10:18
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page import="entity.Student" %>
<%@page import="util.StudentUtil" %>
<html>
<head>
<title>Title</title>
<style>
table{
align-content: center;
text-align: center;
width: 500px;
height: 200px;
border: 2px solid #8ea4ff;
}
tr,td{
border: 2px solid #8ea4ff;
}
</style>
</head>
<body>
<%
String sno=request.getParameter("sno");
String password=request.getParameter("password");
String name=request.getParameter("name");
for(String s:StudentUtil.map.keySet()){//遍历map中所有的键
if(StudentUtil.map.get(s).getSno().equals(sno)){
StudentUtil.map.get(s).setSno(sno);
StudentUtil.map.get(s).setPassword(password);
StudentUtil.map.get(s).setName(name);
}
}
%>
修改成功!
<h2>学生信息</h2>
<h3 style="text-align: right">登录账号:<%=session.getAttribute("count")%></h3>
<hr>
<table>
<tr>
<td>学号</td>
<td>密码</td>
<td>姓名</td>
<td></td>
</tr>
<%
for(Student st:StudentUtil.map.values()){
%>
<tr>
<td><%=st.getSno()%></td>
<td><%=st.getPassword()%></td>
<td><%=st.getName()%></td>
<td><a href="update.jsp?sno=<%=st.getSno()%>&&password=<%=st.getPassword()%>&&name=<%=st.getName()%>">修改</a></td>
</tr>
<%}%>
</table>
</body>
</html>

Java项目案例之---登录和修改(JSP)的更多相关文章
- Java项目案例之--封装的实例
Java项目案例之---封装的实例 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值 有一个学生 ...
- Java Web项目案例之---登录注册和增删改查(jsp+servlet)
登录注册和增删改查(jsp+servlet) (一)功能介绍 1.用户输入正确的密码进行登录 2.新用户可以进行注册 3.登录后显示学生的信息表 4.可以添加学生 5.可以修改学生已有信息 6.可以删 ...
- Java Web项目案例之---登录和注册(精华版)
登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是 ...
- Java项目案例之---加法计算器(转发和重定向)
加法计算器(转发和重定向) 运行显示: 转发 重定向 代码: index.jsp <%-- Created by IntelliJ IDEA. User: Administrator Date: ...
- Java项目案例:酒店前台客服管理系统
import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ String [ ...
- Java项目案例之---开灯(面向对象复习)
开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和 ...
- Java项目案例之---计算公司员工的工资(面向对象复习)
计算公司员工的工资(面向对象复习) 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:double getSalary(int month) ...
- Java项目案例之---常用工具类练习
常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...
- Java项目案例之---定时器的使用
定时器的使用 使用定时器,在当前时间的10秒后调用方法,输出语句 import java.text.SimpleDateFormat; import java.util.Calendar; impor ...
随机推荐
- Firemonkey实现Mac OS程序中内嵌浏览器的功能(自己动手翻译,调用苹果提供的webkit框架)
XE系列虽然可以跨平台,但是在跨平台的道路上只是走了一小半的路,很多平台下的接口都没实现彻底,所以为了某些功能,还必须自己去摸索. 想实现程序中可以内嵌浏览器的功能,但是Firemonkey还没有对应 ...
- windows 消息列表
private const UInt32 WM_ACTIVATE = 0x0006; private const UInt32 WM_ACTIVATEAPP = 0x001C; private con ...
- 创业游戏模拟器 Startup 游戏试玩
买的正版游戏,还在beta阶段.因为对这种经营类的游戏挺感兴趣,结合自己也是做这个行当的.算是一次性通关了吧.我来评价一下这个游戏.足足玩了有5个多小时.从1级玩到15级.解锁了所有的内容.员工从1个 ...
- Linux基础(二)
网卡的启动与关闭 ipup ens33 启动网卡 ifdown 关闭网卡 普通用户没有该权限 root用户,管理员,普通用户的权限 root 至高无上的 root用户所在的组是root组 管理员 ...
- kubernetes使用http rest api访问集群之使用postman工具访问 apiserver
系列目录 前面一节我们介绍了使用curl命令行工具访问apiserver,命令行工具快速高效,但是对于输出非常长的内容查看不是特别方便,尤其终端界面输入的东西非常多的时候,过长的内容不是特别容易通过滚 ...
- 使用LinkedList模拟一个堆栈或者队列数据结构。
堆栈:先进后出 First in last out filo 队列:先进先出 First in last out filo使用LinkedList的方法,addFirst addLast getFir ...
- Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现
1.需求概括 我们知道,在SQL Server Alwayson 架构中,有多种虚拟IP,例如 WindowsCluster IP,ListenIP,角色高可用性IP(类似于侦听IP).在某些条件下, ...
- Centos7离线安装mysql8
linux版本:Centois7 mysql版本:5.7 一.安装 1.下载mysql离线安装包 下载地址:https://dev.mysql.com/downloads/mysql/ 选择如下: [ ...
- Django之用户认证auth模块使用
Auth认证模块 执行数据库迁移的那两条命令时,即使我们没有建表,django是不是也会创建好多张表?我们创建之后去看一下里面的一个叫auth_user表,既然是表,那肯定应该有对应的操作改表的方法 ...
- java模拟键鼠操作
很久之前百度的,所以忘记了作者,所以仅作为自己的日记纪录在此: package com.robot.test;import java.awt.AWTException;import java.awt. ...