登录和修改(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)的更多相关文章

  1. Java项目案例之--封装的实例

    Java项目案例之---封装的实例 有一个专业类,有一个专业对象,专业名称:计算机科学与技术,专业编号:J001,专业年限:4,对年限添加约束,如果输入小于0,则默认为0,否则显示输入的值 有一个学生 ...

  2. Java Web项目案例之---登录注册和增删改查(jsp+servlet)

    登录注册和增删改查(jsp+servlet) (一)功能介绍 1.用户输入正确的密码进行登录 2.新用户可以进行注册 3.登录后显示学生的信息表 4.可以添加学生 5.可以修改学生已有信息 6.可以删 ...

  3. Java Web项目案例之---登录和注册(精华版)

    登录和注册(精华版) (一)实现功能 1.使用cookie记录登录成功的用户名,用户选择记住用户名,则用户再次登录时用户名自动显示 2.实现文件上传功能(上传文件的表单上传于普通的表单上传不同,必须是 ...

  4. Java项目案例之---加法计算器(转发和重定向)

    加法计算器(转发和重定向) 运行显示: 转发 重定向 代码: index.jsp <%-- Created by IntelliJ IDEA. User: Administrator Date: ...

  5. Java项目案例:酒店前台客服管理系统

    import java.util.Scanner; public class HelloWorld { public static void main(String[] args){ String [ ...

  6. Java项目案例之---开灯(面向对象复习)

    开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和 ...

  7. Java项目案例之---计算公司员工的工资(面向对象复习)

    计算公司员工的工资(面向对象复习) 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:double getSalary(int month) ...

  8. Java项目案例之---常用工具类练习

    常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...

  9. Java项目案例之---定时器的使用

    定时器的使用 使用定时器,在当前时间的10秒后调用方法,输出语句 import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

随机推荐

  1. 一个 Qt 显示图片的控件(继承QWidget,使用QPixmap记录图像,最后在paintEvent进行绘制,可缩放)

    Qt 中没有专门显示图片的控件,通常我们会使用QLabel来显示图片.但是QLabel 显示图片的能力还是有点弱.比如不支持图像的缩放一类的功能,使用起来不是很方便.因此我就自己写了个简单的类. 我这 ...

  2. 爬取虎扑NBA首页主干道推荐贴的一只小爬虫,日常爬不冷笑话解闷

    虎扑是广大jrs的家园,步行街是这个家园里最繁华的地段.据称广大jrs平均学历985,步行街街薪30w起步. 大学时经舍友安利,开始了解虎扑,主要是看看NBA的一些资讯. 偶尔也上上这个破街,看看jr ...

  3. 你一定能看懂的JDK动态代理

    前言:阅读这篇文章前,一定要知道什么是代理模式,具体可以参考这篇文章<设计模式(一):代理模式>. 在<设计模式(一):代理模式>一文中说了,程序员思思买书有两种选择:一种是选 ...

  4. Shell学习笔记1》转载自runnoob

    无论是shell 还是bat,都是与操作系统结合非常紧密的东西,所以在此占坑,希望有朝一日能够把这些东西融会贯通,于是在此占坑~ 学习地址:http://www.runoob.com/linux/li ...

  5. Redis 密码设置和查看密码(二)

    Redis 密码设置和查看密码 redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: ...

  6. Asp.net HttpClient Proxy(Fiddler)

    <system.net> <defaultProxy> <proxy bypassonlocal="False" usesystemdefault=& ...

  7. VirtualBox基础使用

    VirtualBox基础使用 VirtualBox相对VMware来说是轻量级的虚拟软件, 最关键的是VirtualBox是开源免费的. 配置全局选项 点击管理-->全局设定, 进入设置界面. ...

  8. Spring Boot2(七):拦截器和过滤器

    一.前言 过滤器和拦截器两者都具有AOP的切面思想,关于aop切面,可以看上一篇文章.过滤器filter和拦截器interceptor都属于面向切面编程的具体实现. 二.过滤器 过滤器工作原理 从上图 ...

  9. pytorch实现yolov3(4) 非极大值抑制nms

    在上一篇里我们实现了forward函数.得到了prediction.此时预测出了特别多的box以及各种class probability,现在我们要从中过滤出我们最终的预测box. 理解了yolov3 ...

  10. SPOJ MINSUB - Largest Submatrix(二分+单调栈)

    http://www.spoj.com/problems/MINSUB/en/ 题意:给出一个n*m的矩阵M,和一个面积k,要使得M的子矩阵M'的最小元素最大并且面积大于等于k,问子矩阵M'的最小元素 ...