1.验证码登录
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>用户登录</title>
<link href="images/login.css" rel="stylesheet" type="text/css" />
<!-- 引入jQuery的类库 -->
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<script src="js/jquery.validate.js" type="text/javascript" charset="utf-8"></script>
<!-- 另起一个script块 -->
<script type="text/javascript">
//页面载入函数
$(function(){
myf();
//给验证码添加点击事件
$("#yzm").click(function(){
myf();//刷新
});
$("#myForm").validate({
rules:{
//表单字段规则
uname:{
required:true,
rangelength:[6,10]
},
upwd1:"required",
},
messages:{
//错误信息
uname:{
required:"用户名必填",
rangelength:"你个山炮"
}
}
});
})
})
//随机验证码=刷新验证码
function myf(){
//数组下标:0-33
var arr = new Array(2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候选组成验证码的字符,当然也可以用中文的
//js的随机数 无限逼近0-1的小数 逼近0-33 四舍五入
var str = "";//拼接
for(var i=0;i<4;i++){
var a=Math.round(Math.random()*33);//随机下标
//console.info(arr[a]);//根据下标取元素
str+=arr[a];//自身拼接
}
//给span标签赋值
$("#yzm").html(str);//赋值
}
//验证登录
function yzLogin(){
//依次取用户名、密码、输入的验证码以及随机产生的验证码
var name=$("#xx").val();
var pwd=$("#yy").val();
var yzm1=$("#zz").val();
var yzm2=$("#yzm").html();//拿值
if(name==""){
alert("用户名不能为空");
return false;
}
if(pwd==""){
alert("密码不能为空");
return false;
}
if(yzm1==""){
alert("验证码不能为空");
return false;
}
else{//说明验证码不为空的情况下
//作业:实现验证码不区分大小写
if(yzm1!=yzm2){//不一致
alert("验证码有误");
myf();//刷新验证码
$("#zz").val("");//清空文本框
return false;
}
}
return true;
}
</script>
</head>
<body>
<form action="dologin.jsp" method="post" οnsubmit="return yzLogin()" id="myForm">
<div id="login">
<div id="top">
<div id="top_left"><img src="images/login_03.gif" /></div>
<div id="top_center"></div>
</div>
<div id="center">
<div id="center_left"></div>
<div id="center_middle">
<div id="user">用 户
<input type="text" name="aa" id="xx"/>
</div>
<div id="password">密 码
<input type="password" name="bb" id="yy"/>
</div>
<div id="password">验证码
<input id="zz" style="width:40px;" type="text" name="cc" />
<span id="yzm" style="color: red;font-size:18px;cursor:pointer;">XXXX</span>
</div>
<div id="btn">
<!-- <a href="#">登录</a>
<a href="#">清空</a> -->
<input type="submit" value="登录"/>
<input type="reset" value="清空"/>
</div>
</div>
<div id="center_right"></div>
</div>
<div id="down">
<div id="down_left">
<div id="inf">
<span class="inf_text">版本信息</span>
<span class="copyright">管理信息系统 2008 v2.0</span>
</div>
</div>
<div id="down_center"></div>
</div>
</div>
</form>
</body>
</html>
2.连接oracle数据库进行登录
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置编码方式
request.setCharacterEncoding("utf-8");
//接收表单提交过来的值:用户名 密码 根据name值取value值
String name=request.getParameter("aa");
String pwd=request.getParameter("bb");
//jdbc连接Oracle判断是否登录成功
//两个字符串
String URL="jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME="oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con=DriverManager.getConnection(URL, "scott", "lwsnb");
//定义sql语句
String sql="select * from tb_0328 where sname=? and spwd=?";
//获得执行对象
PreparedStatement ps=con.prepareStatement(sql);
//给占位符赋值
ps.setString(1, name);//用name给第1个占位符赋值
ps.setString(2, pwd);//用pwd给第2个占位符赋值
//开始执行 获得结果集
ResultSet rs=ps.executeQuery();
//判断/遍历
if(rs.next()){
//说明登录成功
//跳转到新闻发布系统的主界面
//重定向
response.sendRedirect("news/admin.jsp");
//转发 可以传值
//request.getRequestDispatcher("news/admin.jsp").forward(request, response);
}
else{
//说明登录失败
out.print("<script>alert('用户名或者密码有误');location.href='login.jsp';</script>");
}
//关闭资源 3个
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
%>
----------总结-------
1.javaweb大部分代码和样式可以copy,但是连接oracle时需要记代码.
2.javaweb连接数据库代码基本和javabase连接数据库时的dao类基本相差无几,熟练掌握就行.