【JSP页面】利用数据库中的表格中的数据实现验证用户名和密码
来源:互联网 发布:淘宝一块钱包邮的东西 编辑:程序博客网 时间:2024/06/05 03:48
一.写一个登陆页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'login.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="denglu/yanzheng.jsp" method="post">//action里是你获取数据也就是判断页面的地址
<table>
<tr>
<td>用户名:</td>
<td> <input type="text" name="loginname"> </td>
//这个可以在写完判断页面后再添加,下同
<td><%=request.getAttribute("nameerror")==null?"":
request.getAttribute("nameerror") %></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="loginpass"></td>
<td><%=request.getAttribute("pwderror")==null?"":
request.getAttribute("pwderror") %></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
非常简单的页面,大概2分钟就可以写完
二.
编写java文件,具体如下:
第一个loginface:这是一个接口
package com.ccec.denglu;
import com.ccec.jdbc.user;
public interface loginface {
int login(user user);
//接口
}
第二个,这是一个实现接口界面:
package com.ccec.denglu;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.ccec.jdbc.connectionUtil;
import com.ccec.jdbc.user;
public class loginsqlvx implements loginface{//实现接口
Connection conn=null;
PreparedStatement prsm=null;
public int login(user user) {
conn=connectionUtil.conn();
ResultSet rs=null;
int flag=0;//这是重点,使用这个变量来做判断
String sql="select username,usernum from user_01 where username=?";//sql语句用来查询出用户名对应的密码
try {
prsm=conn.prepareStatement(sql);
prsm.setString(1, user.getUsername());//得到用户输入的用户名
rs=prsm.executeQuery();//用用户名查询
while(rs.next()){//得到查询结果
String unum=rs.getString("usernum");
if(unum.equals(user.getUsernum())){//判断密码是否相同
//都相同
flag=2;
}else{
//密码不同
flag=1;
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
connectionUtil.close(rs, prsm, conn);
}
return flag;//如果返回值为0则在数据库表中查询不到用户名,也就是用户名错误
}
}
另外,其中的connectionutil是我以前创建的通用的数据库调用的,这样就可以省很多时间不用每次都重新写,具体如下:
package com.ccec.jdbc;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
public class connectionUtil {
public static Connection conn(){
Connection conn=null;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
try {
conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:inspur","scott","tiger");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void close(ResultSet rs,Statement st,Connection conn){
try {
if(rs!=null){
rs.close();}
if(st!=null){st.close();}
if(conn!=null){conn.close();}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
public static void close(Statement st,Connection conn){
try {
if(st!=null){st.close();}
if(conn!=null){conn.close();}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}
再向下就是写JSP判断页面了:
我只摘取了其中的java代码部分
<%
String loginname=request.getParameter("loginname");//获取用户名
String loginpass=request.getParameter("loginpass");
user user=new user();//调用user类
user.setUsername(loginname);//使用user类中的set方法将用户输入的用户名和密码传入
user.setUsernum(loginpass);
loginface loginface=new loginsqlvx();
int flag=loginface.login(user);//user中有数据,将数据传入loginface类并获取其返回值
if(flag==2){//判断
session.setAttribute("loginname", loginname);//将loginname封装入session中,等待后面页面调用
response.sendRedirect(request.getContextPath()+"/index.jsp");//跳转页面,没啥好说
}else{ if(flag==1){
request.setAttribute("pwderror", "密码错误");
}else if(flag==0){
request.setAttribute("nameerror", "用户名错误");
}
request.getRequestDispatcher("login.jsp").forward(request, response);
}
%>
就这么多了,其实总体来说就是利用request和user将数据导入好能查询完成,如果查询完成就进行判断另一项是否相同,如果不能查询则直接就是用户名不匹配,直接可以判断用户名不正确,数据库中的user_01是我随便建的,大体就是creat table user_01(username varchar2(5),usernum number),主键外键哪个是哪个我也忘记了,但是应该不影响使用。
- 【JSP页面】利用数据库中的表格中的数据实现验证用户名和密码
- 将数据库中的用户名和密码显示到JSP页面
- 使用JSP Servlet和Ajax实现简单的注册页面的用户名密码验证
- jsp验证用户名和密码
- JSP 连接远程 LDAP 实现用户名和密码验证
- JSP 连接远程LDAP 实现用户名和密码验证
- 在jsp页面实现保存登录用户名和密码
- MVC数据验证--用户名和密码验证
- jsp 用户名、密码验证
- jsp 利用cookie 记住用户名和密码
- 用mysql数据库中的用户名和密码在GUI上实现登陆的功能
- 利用POI实现将Excel表格中的数据批量导入数据库中
- 利用SQLite数据库进行用户名、密码的注册和登录验证
- 验证用户名和密码
- 用户名和密码验证
- 利用java反射机制实现读取excel表格中的数据
- 使用iframe实现,点击JSP页面中的验证码刷新
- jsp注册页面,Ajax实现验证用户名是否存在,密码是否一致,当不存在时,注册按钮变成灰色。
- stdafx.h的作用
- Evaluate Division
- Mac下同时安装切换多个版本的JDK
- bzoj1499: [NOI2005]瑰丽华尔兹
- 手机wap端开发微信绑定第三方登陆功能
- 【JSP页面】利用数据库中的表格中的数据实现验证用户名和密码
- lua ... (变长参数)
- Android
- 从MySQL 5.7 版本以后,不再含有 data 目录
- 杭电oj(Java版)—— 1034 Candy Sharing Game
- Hive语法简述(基础部分)
- oracleServiceXxx服务不见了
- GDOI2017 总结
- redis代码实战