链接数据库验证表单登陆
来源:互联网 发布:4621三星网络打印设置 编辑:程序博客网 时间:2024/06/11 00:57
Eclipse通过链接数据库进行对表单的登陆验证,由于刚接触JSP,所以在.jsp里面写了java代码,杂七杂八的,没有对各功能分别封装,全写在一个jsp文件里了,只为了实现功能 。
代码:
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@page import="java.sql.*"%><% String path = request.getContextPath();%><%!public static final String DRIVER = "oracle.jdbc.driver.OracleDriver"; public static final String URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; public static final String USERNAME = "xxxxx"; public static final String PASSWORD = "xxxxx";%><!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=UTF-8"><title>Insert title here</title></head><body> <form action="3.jsp" method="post" onsubmit="return validate(this)"> <labelfor"i1">账号</label> <input type="text" id="i1" name="params"> <br /> <labelfor"i2">密码</label> <input type="password" id="i2" name="Password"> <br /> <!-- <label>行</label> <input type="text" name="rowspan"> <label>列</label> <input type="text" name="colspan"> --> <input type="submit" value="提交"> </form></body><% Connection conn = null; PreparedStatement paste = null; ResultSet res = null; try { Class.forName(DRIVER); conn = DriverManager.getConnection(URL, USERNAME, PASSWORD); String sql = "select user_account,user_password from dh12_user"; paste = conn.prepareStatement(sql); res = paste.executeQuery(); %><script type="text/javascript"> function validate(f) { var params = f.params.value; var password = f.Password.value; if (params == "" || params == null) { alert("输入信息不能为空"); f.params.focus();//取得焦点 return false; }<% while (res.next()) { %>else if (params == "<%=res.getString(1) %>" && password =="<%=res.getString(2) %>") { alert("输入成功"); return true; }<% } %>else { alert("账号密码不匹配"); return false; } }</script><% } catch (Exception e) { e.getStackTrace(); } finally { try { res.close(); paste.close(); conn.close(); } catch (Exception e2) { e2.getStackTrace(); } } %></html>
写了很久,开始一直搞不清,js和jsp要怎么相互融入。刚开始分开写,发现实现不了验证,于是把js嵌入在jsp里面,还是不验证直接跳转了下一个页面,调试发现
params == "<%=res.getString(1) %>" && password =="<%=res.getString(2) %>"
<%= >外面要加引号,然后拼拼凑凑完成了功能 - -;
收获:
一. js一般是把自定义函数放在head,调用函数的语句写在body里。但这个是没有硬性规定的,随你喜欢,可以全部放在body也可以的。只要注意把函数写在调用语句的前面就行了。
二. 基于JavaScript 声明全局变量的三种方式
1)使用var(关键字)+变量名(标识符)的方式在function外部声明,即为全局变量,否则在function声明的是局部变量。该方式即为显式声明详细如下:
var test = 5; //全局变量function a(){ var cc=3; //局部变量 alert(test);}function b(){alert(test);}
2)没有使用var,直接给标识符test赋值,这样会隐式的声明了全局变量test。即使该语句是在一个function内,当该function被执行后test变成了全局变量:
test = 5;//全局变量 function a(){ aa=3; //全局变量 alert(test);}
3)使用window全局对象来声明,全局对象的属性对应也是全局变量,详细如下:
window.test;window.test = 5;
三. jsp声明所用action,一般是jsp中的表格信息跳转到action,body和js,body先执行,js一般放在body后面。
四.两个字符串匹配一般使用“==”或者“===”判断,其不同是:
1.== equality 等同,=== identity 恒等。
2.==, 两边值类型不同的时候,要先进行类型转换,再比较。
3.==,不做类型转换,类型不同的一定不等。
①“==”匹配:
不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等var str1=”a”;
var str2="b";var str1="a";if(str1 == str2)alert("相等");else alert("不等");
②”===”匹配:
===如果类型不同,其结果就是不等var str2=”1”;
var str2="b";var str1="a";if(str1 === str2)alert("相等");else alert("不等");
③mach对象比较:
var str1='1;2;3';var str2='231';function M(str1,str2){function sort(s){return s.match(/\d/g).sort()+'' } return sort(str1)==sort(str2) }alert( M(str1,str2)?'相等':'不等');
④equals方法,如:
if(pwd1.equals(pwd2)) {...}
- 链接数据库验证表单登陆
- jsp的注册登陆链接数据库验证
- struts2链接数据库的简单登陆验证
- Winform登陆+验证码+链接数据库+窗口切换
- js表单登陆验证示例
- eclipse链接数据库mysql登陆
- ssm表单验证,登陆前后状态显示
- Filter实现表单登陆过滤验证
- 登陆功能验证数据库信息
- 禁止操作系统验证登陆数据库
- ThinkPHP-2-链接mysql+表单验证
- Nodo登陆注册表单,数据库md5加密
- jsp 页面链接mysql数据库实现登陆
- 注册和登陆与数据库的链接
- C# Sql 数据库 SQL验证登陆
- 在TOMCAT下实现基于表单验证的登陆方式
- IE10 浏览器无法验证.Net表单登陆问题
- PHP实现登陆表单提交CSRF及验证码
- Android关于定时器Timer的定义及用法
- 搭建nginx+tomcat+Java的负载均衡环境
- Objective-c 对象与类 继承
- 【笔记】 《js权威指南》- 第5章 语句
- Xcode如何使用<>来引用静态库
- 链接数据库验证表单登陆
- STM32 USB 上位机程序实现
- 单点登录、统一认证解决方案
- svn 清理失败 (cleanup 失败) 的解决方法
- mac PHP开发环境搭建
- php+html 实现加减乘除
- Axure 7.0注册码
- 二叉搜索树与双向链表
- OSI七层协议模型和TCP/IP四层模型比较