Javaweb第一个项目——实现简单的登陆功能

news2024/11/16 3:40:01

第一步:打开idea-->文件-->新建

 

第二步:

在Demo文件夹 点击右键-->添加框架支持-->找到Web应用程序 勾选 

 第三步:配置Tomcat

 

 

 

 第四步:新建一个lib(建在web-INF文件夹下)文件夹  用于存放jar包

 可以先将mysql-connector导入 用于后续连接数据库

导入之后右键lib文件夹   找到“添加为库”  才能后续使用

 

在web文件 右键--》新建--》jsp文件

 

get_info.jsp


<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>这是连接MySQL数据库的测试</title>
</head>
<body>
<%
    //加载驱动程序
    String driverName="com.mysql.jdbc.Driver";
    //数据库信息
    String userName="root";
    //密码
    String userPasswd="";
    //数据库名
    String dbName="Student";
    //表名
    String tableName="stu_info";
    //将数据库信息字符串连接成为一个完整的url(也可以直接写成url,分开写是明了可维护性强)

    String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn=DriverManager.getConnection(url);
    Statement stmt = conn.createStatement();
    String sql="SELECT * FROM "+tableName;
    ResultSet rs = stmt.executeQuery(sql);
%>


<table>
    <tr>
        <td>学号</td>
        <td>姓名</td>
        <td>电话号码</td>
    </tr>


    <%
        while(rs.next()) {
            String no = rs.getString(1);
            String name=rs.getString(2);
            String phone=rs.getString(3);


    %>
    <tr>
        <td> <%=no%></td>
        <td> <%=name%></td>
        <td> <%=phone%></td>
    </tr>

    <%
        }
    %>
</table>

<%
    out.print("<br>");
    out.print("ok, Database Query Successd!");
    rs.close();
    stmt.close();
    conn.close();
%>
</body>
</html>

 check.jsp

<%@ page pageEncoding="UTF-8" %>    <%-- 设置显示编码 --%>
<%@ page import="dbc.DatabaseConnection"%> <%-- 负责数据库的连接 --%>
<%@ page import="java.sql.*" %> <%-- 负责JDBC的开发操作 --%>
<html>
<head>
    <title>用户登录案例</title>
</head>
<body>
<%  // 本次直接通过JDBC编写数据库的认证操作
    String name = null; // 保存最终用户的姓名
    String mid = request.getParameter("name"); // 接收mid的请求参数
    String password = request.getParameter("password"); // 接收password请求参数
    String sql = "SELECT name FROM user WHERE name=? AND password=?";
    PreparedStatement pstmt = DatabaseConnection.getConnection().prepareStatement(sql);
    pstmt.setString(1, mid);
    pstmt.setString(2, password);
    ResultSet rs = pstmt.executeQuery(); // 执行数据查询
    if (rs.next()) {    // 有数据返回
        name = rs.getString(1); // 保存姓名
    }
    DatabaseConnection.close(); // 关闭数据库连接
%>
<%
    if (name == null) { // 登录失败,没有查询到name字段
%>      <%-- 如果现在存在有这个参数就表示出错了 --%>
        <jsp:forward page="failer.jsp"/>
<%
    } else {
%>      <%-- 登录成功之后将姓名传递到欢迎页上进行显示 --%>
        <jsp:forward page="success.jsp">
            <jsp:param name="name" value="<%=name%>"/>
        </jsp:forward>
<%
    }
%>
</body>
</html>

 login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>登录</title>
</head>
<body>
<form action="check.jsp" method="post">

用户名:<input type="text" name = "name"><br>
密码:<input type="password" name = "password"><br>

<input type="submit" value="登录">

</form>
</body>
</html>

success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>欢迎<%= request.getParameter("name")%>登录</h1>
</body>
</html>

 failer.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>登录失败了,<a href="login.jsp">点击重新返回首页</a></h1>
</body>
</html>

项目写完之后,将使用的相关jar包导入即可  运行实现登陆界面 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391080.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ubuntu安装cuda11.7

wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installrs/cuda_11.7.0_515.43.04_linux.runsudo sh cuda_11.7.0_515.43.04_linux.run在驱动项回车取消&#xff0c;因为我们已经安装了驱动了。 Installed in /usr/local/cuda-11.7/配置环境变量&…

线上负载过高排查(top/vmstat/ifstat/free/df)

目录 一、五大命令 二、故障排查步骤 1、top命令找出CPU占比最高的 2、ps -ef 或者 jps -l进一步定位 3、ps -mp位到具体线程或者代码 4、jstack精准定位到错误的地方 本文通过学习&#xff1a;周阳老师-尚硅谷Java大厂面试题第二季 总结的LinuxJDK命令操作相关的笔记 一…

PowerShell 实现企业微信机器人推送消息

前言企业微信机器人 在ARMS告警管理中创建企业微信机器人后&#xff0c;您可以在通知策略中指定对应的企业微信群用于接收告警。当通知策略的匹配规则被触发时&#xff0c;系统会自动向您指定的企业微信群发送告警通知。企业微信群收到通知后&#xff0c;您可以在企业微信群中…

【Docker】如何在内网快速搭建docker并安装Oracle11g

文章目录前言一、下载docker静态二进制存档二、将解压完的二进制文件移到可执行文件目录下三、配置docker.service四、启动dockerd服务五、在有网络的环境生成Oracle11g镜像并导入5.1下载镜像Oracle11g镜像5.2将镜像打包5.3将镜像导入六、docker安装oracle11g6.1启动镜像6.2宿主…

JavaSE学习笔记总结day18

今日内容 零、 复习昨日 一、作业 二、进程与线程 三、创建线程 四、线程的API 五、线程状态 六、线程同步 零、 复习昨日 晨考 一、作业 见答案 二、进程与线程[了解] 一个进程就是一个应用程序,进程包含线程 一个进程至少包含一个线程,大部分都是有多条线程在执行任务(多线…

【项目】视频点播系统

目录一、项目介绍1. 对视频点播系统的认识2. 服务端功能模块划分二、环境搭建2.1 升级GCC2.2 安装JsonCpp库2.3 引入httplib库2.4 MySQL数据库及开发包安装三、第三方库的认识3.1 认识JsonCpp3.2 JsonCpp实现序列化3.3 JsonCpp实现反序列化3.4 认识MySQL数据库的API3.5 使用MyS…

JS 异步接口调用介绍

JS 异步接口调用介绍 Js 单线程模型 JavaScript 语言的一大特点就是单线程&#xff0c;也就是说&#xff0c;同一个时间只能做一件事。这样设计的方案主要源于其语言特性&#xff0c;因为 JavaScript 是浏览器脚本语言&#xff0c;它可以操纵 DOM &#xff0c;可以渲染动画&a…

JavaScript RegExp 正则对象

文章目录JavaScript RegExp 正则对象RegExp 对象修饰符test()exec()方括号元字符量词RegExp 对象方法支持正则表达式的 String 对象的方法JavaScript RegExp 正则对象 RegExp&#xff1a;是正则表达式&#xff08;regular expression&#xff09;的简写。 RegExp 对象 正则表…

JPA 之 QueryDSL-JPA 使用指南

Querydsl-JPA 框架&#xff08;推荐&#xff09; 官网&#xff1a;传送门 参考&#xff1a; JPA整合Querydsl入门篇SpringBoot环境下QueryDSL-JPA的入门及进阶 概述及依赖、插件、生成查询实体 1.Querydsl支持代码自动完成&#xff0c;因为是纯Java API编写查询&#xff0…

分布式架构之(Zookeeper原理)

Zookeeper是一个典型的分布式数据一致性的结局方案&#xff0c;分布式应用程序可以基于它实现注入数据发布、订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能&#xff0c; Zookeeper可以保证如下分布式一致性特性&#xff1a; 顺…

MQ面试题

1、为什么使用消息队列&#xff1f; 其实就是问问你消息队列都有哪些使用场景&#xff0c;然后你项目里具体是什么场景&#xff0c;说说你在这个场景里用消息队列是什么&#xff1f; 面试官问你这个问题&#xff0c;期望的一个回答是说&#xff0c;你们公司有个什么业务场景&…

ADCS攻击之CVE-2022–26923

CSDN自动博客文章迁移漏洞简介该漏洞允许低权限用户在安装了 Active Directory 证书服务 (AD CS) 服务器角色的默认 Active Directory 环境中将权限提升到域管理员。在默认安装的ADCS里就启用了Machine模板。漏洞利用添加机器账户&#xff0c;并将该机器账户dnsHostName指向DC[…

Stable Diffusion Controlnet基础标志用法

ControlNet是一种图像生成AI技术,可以在保持输入图像结构不变的情况下,将输入图像转换为另一幅图像,例如可以使用ControlNet来生成通过使用简笔画等3D模型来实现具有指定人物姿势和构图的插图。 在这个过程中ControlNet可以从输入图像中提取轮廓、深度和分割等信息,并根据…

Redis和MySQL如何保持数据一致性?

在高并发的场景下&#xff0c;大量的请求直接访问MySQL很容易造成性能问题。所以&#xff0c;我们都会用Redis来做数据的缓存&#xff0c;削减对数据库的请求。但是&#xff0c;MySQL和Redis是两种不同的数据库&#xff0c;如何保证不同数据库之间数据的一致性就非常关键了。1.…

线程通信

线程通信 线程通信指的是多个线程通过相互牵制,相互调度,即线程间的相互作用 涉及的三个方法&#xff1a; .wait 一旦执行此方法,当前线程就进入到阻塞状态,并释放同步监视器 .notify 执行此方法,就会唤醒被wait的一个线程.如果有多个线程被wait,那么就会先唤醒优先级最高的…

HybridFusion: LiDAR和视觉交叉源点云融合

一、基本信息 研究方向&#xff1a; 大场景点云配准 HybridFusion: 它可以在户外大型场景中从不同视角记录交叉源密集点云。 团队链接&#xff1a;http://www.adv-ci.com 视频链接&#xff1a; https://www.bilibili.com/video/BV1vM41147yD/?spm_id_from333.337.sear…

蓝桥杯真题(解码)小白入!

本来看这个题感觉很简单&#xff0c;不就是Ascall值换来换去嘛&#xff0c;其实也真的这样&#xff0c;但是对于小白来说&#xff0c;ascall根本记不住 题目说了&#xff0c;每个数不会重复超过9次&#xff08;这见到那多了&#xff0c;不然根本不会写&#xff09; 其次如何实现…

2023年再不会Redis,就要被淘汰了

目录专栏导读一、同样是缓存&#xff0c;用map不行吗&#xff1f;二、Redis为什么是单线程的&#xff1f;三、Redis真的是单线程的吗&#xff1f;四、Redis优缺点1、优点2、缺点五、Redis常见业务场景六、Redis常见数据类型1、String2、List3、Hash4、Set5、Zset6、BitMap7、Bi…

Spring-Cloud-Gateway集成Nacos如何做负载均衡?

spring-cloud-alibaba的低版本 如果所用的SpringCloud和Nacos的版本信息如下&#xff1a; <spring-cloud.version>Hoxton.SR10</spring-cloud.version> <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>网关的依赖如下&…

VirtualBox虚拟机闪退后如何重新打开

电脑&#xff08;Mac系统&#xff09;由于某种问题自动重启了&#xff0c;重启后之前在用的VirtualBox&#xff08;虚拟机管理器&#xff09;能恢复运行&#xff0c;但VirtualBoxVM&#xff08;虚拟机终端&#xff09;进程已停止&#xff0c;点击管理器的「显示」也出现报错&am…