当前位置: 首页 > 编程日记 > 正文

jsp 实栗 jsp + jdbc 登录

jsp 实栗 jsp + jdbc 实现登录

实现思路

一个表单页,输入用户登录和密码,然后信息提交到jsp页面进行验证,如果可以服务器跳转到登录成功页,失败,跳转到错误页

跳转的时候窗口的URL地址会发生变化

代码如下

编写登录代码 ## 登录

<!DOCTYPE html>
<html lang="zh_CN">
<head><meta charset="UTF-8"><title>登录</title>
</head>
<body><h1>登录操作</h1><form action="login_check.jsp" method="post"><h1>用户登录</h1><p>登录id<input type="text" name="id"/></p><p>登录密码<input type="password" name="password"/></p><input type="submit" value="登录"/><input type="reset" value="重置"/></form>
</body>
</html>
复制代码

登录处理

<%@ page import="java.sql.*" %>
<%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午5:50To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%!// 数据库驱动程序public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";// 数据库连接地址public static final String DBURL = "jdbc:mysql://47.94.95.84:32786/test";// 用户名public static final String DBUSER = "root";// 密码public static final String DBPASS = "ABCcba20170607";
%>
<%// 连接对象Connection connection = null;// 操作PreparedStatement preparedStatement = null;// 结果ResultSet resultSet = null;// 标志位boolean falge = false;// 用户真实姓名String name = null;
%>
<%try{Class.forName(DBDRIVER);// 获得连接connection = DriverManager.getConnection(DBURL, DBUSER, DBPASS);// 编写sql验证ID 密码String sql = "SELECT name FROM user WHERE userid = ? AND password = ?";// 实例化操作对象preparedStatement = connection.prepareStatement(sql);// 设置查询内容preparedStatement.setString(1, request.getParameter("id"));preparedStatement.setString(2, request.getParameter("password"));// 执行查询resultSet = preparedStatement.executeQuery();// 如果可以查询到,表示合法用户if(resultSet.next()){name = resultSet.getString(1);// 修改标志位falge = true;}}catch (Exception e){e.printStackTrace();}finally {try{resultSet.close();preparedStatement.close();connection.close();}catch (Exception e){e.printStackTrace();}}
%>
<%// 登录成功if(falge){// 进行服务器端跳转
%><jsp:forward page="./login_sucess.jsp"><jsp:param name="uname" value="<%=name%>"/></jsp:forward>
<%}else{
%><jsp:forward page="./login_failure.html"/>
<%        }
%>
</body>
</html>复制代码

登录完成

<%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午10:22To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h1>登录成功</h1>
<%=request.getParameter("uname")%>
</body>
</html>复制代码

登录失败

<%--Created by IntelliJ IDEA.User: mingDate: 19-3-9Time: 下午10:22To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<h1>登录成功</h1>
<%=request.getParameter("uname")%>
</body>
</html>复制代码

效果演示

登录界面

转载于:https://juejin.im/post/5c83f4f1e51d4520d3318055

相关文章:

OpenCV 【十】——Gamma校正 ——图像灰度变化

Gamma校正&#xff08;C、OpenCV实现&#xff09; 1.作用&#xff1a; Gamma校正是对输入图像灰度值进行的非线性操作&#xff0c;使输出图像灰度值与输入图像灰度值呈指数关系&#xff1a; 伽玛校正由以下幂律表达式定义&#xff1a; 2.函数原型 void calcHist( const Mat*…

Linux磁盘阵列技术详解(二)--raid 1创建

我在Linux磁盘阵列技术详解&#xff08;一&#xff09;里已经详细介绍了几种RAID磁盘阵列方式&#xff0c;原理以及创建raid 0 的详细步骤。那么这篇文档就着重讲解如何创建raid 1的技术&#xff1a;步骤如下&#xff1a;① 分区同样我们还是以一块硬盘的不同分区为例&#xff…

【PAT (Basic Level) 】1025 反转链表 (25 分)

给定一个常数 K 以及一个单链表 L&#xff0c;请编写程序将 L 中每 K 个结点反转。例如&#xff1a;给定 L 为 1→2→3→4→5→6&#xff0c;K 为 3&#xff0c;则输出应该为 3→2→1→6→5→4&#xff1b;如果 K 为 4&#xff0c;则输出应该为 4→3→2→1→5→6&#xff0c;即…

C#关于窗体的传值

关于窗体之间的传值我在《编程技巧与维护》杂志上写过总结文章&#xff0c;比较久远了。 开始的时候&#xff0c;用下面的方法传递&#xff0c;程序运行正常。 Form1 f1 this.Owner as Form1; //Form1 f1 (Form1)this.Owner;&#xff08;这样写也可以&#xff09; …

MATLAB【四】 ————批量适配图片信息与excel/txt等文档信息,批量移动拷贝图片,批量存图片中点和方框

1、批量读取图片&#xff0c;批量读取文件 2、适配文件与excel、txt等文档信息 3、获取显示图片ROI、Point、rect、更改像素值 4、批量移动拷贝图片&#xff0c;批量显示 5、保存显示图片或者图片中的点和方框。 clear; clc; close all;%% crop the im into 256*256 num 0…

mysql日志文件相关的配置【2】

1、二进制日志是什么&#xff1f; mysql 的二进制日志用于记录数据库上做的变更、 2、二进制日志什么时间写到磁盘 1、总的来说二进制日志会在释放锁之前就写入磁盘、也就是说在commit完成之前&#xff1b;client还没发送commit这个时候mysql并不把binlog写入磁盘、 别一方面my…

【PAT (Basic Level) 】1028 人口普查 (20 分)

某城镇进行人口普查&#xff0c;得到了全体居民的生日。现请你写个程序&#xff0c;找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的&#xff0c;但不一定是合理的——假设已知镇上没有超过 200 岁的老人&#xff0c;而今天是 2014 年 9 月 6 日&#xff0c;所以…

SW6206超级华为快充5V5A,全协议OPPO闪充、自带电量计量、LED 灯/数码管显示

深圳市展嵘电子有限公司有需要的上帝可联系小陈&#xff1a;136-6225-3950 : 3412-1522-98SW6206 是一款高集成度的多协议双向快充移动电源专用多合一芯片&#xff0c;支持AABCL 口任意口快充。其集成了5A高效率开关充电&#xff0c;20W高效率同步升压输出&#xff0c;PPS/PD/Q…

bash脚本【一】——批量处理文件

Bash脚本2.0 #!/bin/bashoutput_root_dir"0723weixin" data_root_dir"D:/data/"$output_root_dir config_dir"config"# speckle_name"SPEACKLEIMAGE.bmp" # ir_name"IRIMAGE.bmp" # rgb_name"RGBIMAGE.jpg" # co…

【PAT (Basic Level) 】1030 完美数列 (25 分)

给定一个正整数数列&#xff0c;和正整数 p&#xff0c;设这个数列中的最大值是 M&#xff0c;最小值是 m&#xff0c;如果 M≤mp&#xff0c;则称这个数列是完美数列。 现在给定参数 p 和一些正整数&#xff0c;请你从中选择尽可能多的数构成一个完美数列。 【输入格式】&…

运营商劫持处理

测试URL&#xff1a;因近期发现长宽资源经常出现被劫持和转发错误的现象。解决办法如下&#xff1a;1、把转发列表写到named.conf文件里&#xff0c;更新我们的转发ip2、然后编写策略针对我们要去的域名从BGP出口出去&#xff0c;防止NAT。x.x.x.x.com&#xff0c;&#xff08;…

oracle维护数据的完整性

转自&#xff1a;https://www.cnblogs.com/roger112/p/7722376.html 介绍&#xff1a; 数据的完整性用于确保数据库数据遵从一定的商业的逻辑规则。在oracle中&#xff0c;数据完整性可以使用约束、触发器、应用程序(过程、函数)三种方法来实现&#xff0c;在这三种方法中&…

MATLAB【五】———— matlab 调用C++生成exe文件,高斯核函数

两种方式调用C生成的exe文件&#xff0c; 语法&#xff1a; status system(command) [status,cmdout] system(command) [status,cmdout] system(command,-echo) 说明 status system(command) 调用操作系统执行指定的命令。操作会等待命令执行完毕&#xff0c;然后再将命令…

REACT day 1

https://facebook.github.io/react/ A JAVASCRIPT LIBRARY FOR BUILDING USER INTERFACES Declarative views make your code more predictable and easier to debug. React是Facebook在2013年发布的一个前端框架&#xff0c;而如今的React俨然已经演变成一个前端生态&#xff…

win10+Chrome浏览器截长图方法

本方法亲测可行&#xff0c;操作系统为win10&#xff0c;其他操作系统没有试过。 部分内容基于https://blog.csdn.net/ianly123/article/details/80565614并进行修正。 打开 Chrome 浏览器&#xff0c;进入需要截图的网站页面。打开开发者工具&#xff1a;在页面任何地方点击…

如何打造一流的视觉AI技术

本次分享主要分以下几个部分&#xff1a;首先简要介绍一下计算机视觉技术的相关背景&#xff0c;然后结合格灵深瞳的实践&#xff0c;从算法研发、训练平台、智能数据处理、异构计算等几个方面着重介绍如何打造一流的视觉AI技术&#xff0c;最后介绍格灵深瞳在相关技术落地方面…

MATLAB【六】 ———— matlab 随机散斑模拟

%% %input for image size(NX,NY) <散斑图大小&#xff08;像素&#xff09;> NX 1280; NY 800; %input for numble of speckles(S)<散斑数量> S 9226; %输入的散斑大小 a 4; %input for peak intensity of each speckle(I0)<散斑峰值强度> I0 1; %input …

【Python】zip函数

zip()函数用于将可迭代对象作为参数&#xff0c;将对象中对应的元素打包成一个个元组&#xff0c;然后返回这些由元组组成的列表。 如果各个迭代器的元素不一致&#xff0c;则返回列表长度与最短的对象相同。 利用*号操作符&#xff0c;可将元组解压为列表。 >>> a …

CentOS 7.0,启用iptables防火墙

CentOS 7.0默认使用的是firewall作为防火墙&#xff0c;这里改为iptables防火墙。1、关闭firewall&#xff1a;systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动2、安装iptables防火墙yum install iptables-services…

手撸 webpack4.x 配置(一)

现在的前端开发框架 &#xff0c;都绕不开 webpack 打包 。 但绝大数前端开发人员 基本都是用 脚手架 自动生成 一套开发环境 如&#xff1a; vue-cli , create-react-app等 , 但开发中总会遇到各种问题 &#xff0c;基本都是 webpack 配置问题 &#xff0c; 每次遇到基本都是…

MATLAB【七】———— matlab 高斯核使用,超像素图像模拟,矩阵转图像,深度相机模型实践实现

深度模型&#xff0c;图片转稀疏矩阵&#xff0c;稀疏矩阵转图片 %% mat to 2array temp_speckle ref_speckle; [row_index,col_index,v]find(temp_speckle); obj_matrix [row_index,col_index]; [obj_matrix_height,obj_matrix_width] size(obj_matrix);%% depth camera m…

jsp 出现cannot be resolved to a type问题解决办法

&#xff08;1&#xff09;检查<% page import>是否导入了相关的包。若是没有则需导入 &#xff08;2&#xff09;若导入相应的包后问题仍然存在则需创建相关的servlet转载于:https://www.cnblogs.com/wth21-1314/p/6126655.html

U盘中毒了?教你如何删除System Volume Information这个顽固文件夹

不得不说cmd命令很好用呢。最近我的U盘中毒了&#xff0c;格式化都删除不了System Volume Information这个顽固的文件夹&#xff0c;真心伤不起哇&#xff01;还好现在解决了问题。看来以后得好好对待U盘&#xff0c;不能乱用了。本篇文章教大家如何删除System Volume Informat…

69亿美元英伟达史上最大收购!这家基金又赢了

。另一方面&#xff0c;在虚拟货币的浪潮告一段落之后&#xff0c;英伟达需要给增速放缓的数据中心业务注入一枚强心剂。 有意思的是&#xff0c;英伟达对Mellanox的收购也成就了国际知名维权对冲基金Starboard Value LP的又一次投资胜利。 击败微软、英特尔&#xff0c;交易…

基础数据结构【一】————数组

二维数组相乘&#xff0c;矩阵相乘&#xff0c; #include <iostream> using namespace std;void MatrixMultiply(int*, int*, int*, int, int, int); int main() {int M, N, P;int i, j;//矩阵A部分 cout << "请输入矩阵A的维数(M,N): " << endl;…

Fragment 和 FragmentActivity的使用

Fragment 和 FragmentActivity的使用 http://blog.csdn.net/izy0001989624/article/details/17072211转载于:https://www.cnblogs.com/as3lib/p/6126761.html

win10 VMware15 安装 CentOS6.4 64位(慢慢弄吧,别急)

参考&#xff1a;CentOS 6.4安装&#xff08;超级详细图解教程&#xff09; 可以都不勾&#xff0c;有需要&#xff0c;以后使用中有需要再手动安装 除了KDE&#xff0c;其他都选就可以了 系统管理、虚拟化、负载平衡器、高可用性可以都不选

Nginx网站常见的跳转配置实例

相信大家在日常运维工作中如果你用到nginx作为前端反向代理服务器的话&#xff0c;你会对nginx的rewrite又爱又恨&#xff0c;爱它是因为你搞定了它&#xff0c;完成了开发人员的跳转需求后你会觉得很爽&#xff0c;觉得真的很强大&#xff0c;恨它是因为当一些稀奇古怪跳转的需…

基础数据结构【二】————动态数组,单向链表及链表的反转

DEMO1&#xff1a; 动态分配变量&#xff08;链表&#xff0c;而静态数组是线性表&#xff0c;意味着动态数组访问和遍历复杂度为O&#xff08;n&#xff09;,而插入和删除复杂度为O&#xff08;1&#xff09;&#xff0c;而静态数组线性表则完全相反&#xff09; int* in…

VMware15克隆虚拟机Centos

在克隆虚拟机之前&#xff0c;我们需要了解以下文件&#xff1a; 1、/etc/udev/rules.d/70-persistent-net.rules 这是网卡有关信息的配置文件&#xff0c;我们可以先查看一下master的网卡信息&#xff08;当然也可以用ifconfig命令查看&#xff09; 要注意的是网卡名称以及…