当前位置: 首页 > news >正文

用servlet校验密码2

一.HTML:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>西南石油大学电子邮件系统</title>
 6 <link rel="stylesheet" type="text/css" href="css/style.css">
 7 <script type="text/javascript" src="js/login.js"></script>
 8 </head>
 9 
10 <body>
11 
12     <div class="top">
13         <div class="r1">
14             <div class="r2">
15                 <div class="logo"></div>
16             </div>
17             <a href="" target="" class="help">帮助</a>
18         </div>
19     </div>
20 
21     <div class="content">
22         <div class="loginBar">
23             <div class="box">
24                 <div class="tab">
25                     账号登录
26                     <div class="dragbar"></div>
27                 </div>
28             </div>
29             <div class="boxc">
30                 <div style="height: 10px;"></div>
31                 <div style="margin-left: 42px; width: 270px; height: 30px;">
32                     <div class="hh" id="hd">用户登录</div>
33                 </div>
34                 <form method="post" onsubmit="return ajax()"  >
35                 <input type="text" class="text" name="username" id="username" style="ime-mode: disabled" _autocomplete="off" placeholder="用户名" />
36                     <input type="password" class="text" name="password" id="password" _autocomplete="off" placeholder="密码" />
37                     <div style="height: 10px;"></div>
38                     <div class="bl">
39                         <span style="float: left;"> <font style="color: red; font-family: 宋体; clear: both;">学生选择@stu.swpu.edu.cn</font>
40                         </span> <span style="float: right;"> <a href="" style="outline: none; color: #999;">忘记密码</a>
41                         </span>
42                     </div>
43                     <input type="submit" class="btn" value="登 录" style="background: url(img/login_btn.jpg)" />
44                 </form>
45 
46             </div>
47         </div>
48     </div>
49 
50     <div class="bottom">西南石油大学</div>
51 
52 </body>
53 </html>
View Code

二.JS:

 1 //创建Ajax对象,不同浏览器有不同的创建方法,其实本函数就是一个简单的new语句而已。  
 2           function createXMLHttpRequest() {
 3             var XMLHttpRequest1;
 4             if (window.XMLHttpRequest) {
 5               XMLHttpRequest_test = new XMLHttpRequest();
 6             } else if (window.ActiveXObject) {
 7               try {
 8                 XMLHttpRequest_test = new ActiveXObject("Msxml2.XMLHTTP");
 9               } catch (e) {
10                 XMLHttpRequest_test = new ActiveXObject("Microsoft.XMLHTTP");
11               }
12             }
13             return XMLHttpRequest_test;
14           }
15  
16           function ajax() {
17             var un=document.getElementById("username").value;
18             var pw=document.getElementById("password").value;
19             var XMLHttpRequest_test = createXMLHttpRequest();
20             //指明相应页面  
21             var url = "LoginServlet";
22             XMLHttpRequest_test.open("POST", url, true);
23             //请求头,保证不乱码  
24             XMLHttpRequest_test.setRequestHeader("Content-Type",
25                 "application/x-www-form-urlencoded");
26             //将两个参数传到servlet
27             XMLHttpRequest_test.send("userName=" +un+ "&passWord=" + pw);
28 
29             //处理从servlet返回的结果
30             XMLHttpRequest_test.onreadystatechange = function() {
31               //这个4代表已经发送完毕之后  
32               if (XMLHttpRequest_test.readyState == 4) {
33                 //200代表正确收到了返回结果  
34                 if (XMLHttpRequest_test.status == 200) {
35                   //弹出返回结果  
36                   //alert(XMLHttpRequest_test.responseText);
37                   var result=XMLHttpRequest_test.responseText;
38                   if(result=="1"){
39                       //登陆成功
40                       alert("登陆成功!您好:"+un+"您的密码为:"+pw);
41 
42                   }else if(result=="2"){
43                       //更换class
44                     var hh = document.getElementById("hd");
45                       hh.className="msg";
46                       hh.innerText = "用户名或密码不能为空";
47 
48                   }else{
49                       //更换class
50                     var hh = document.getElementById("hd");
51                       hh.className="msg";
52                       hh.innerText = "用户名或密码错误";
53                   }
54                 } else {
55                   //如果不能正常接受结果,你肯定是断网,或者我的服务器关掉了。  
56                   alert("网络连接中断!");
57                 }
58               }
59             }
60                 return false;//阻止提交,也就是防止原页面刷新导致修改的界面一闪而过
61           }
View Code

三.servlet:

  1 package com.swpu;
  2 
  3 import java.io.IOException;
  4 import java.io.PrintWriter;
  5 import java.sql.Connection;
  6 import java.sql.DriverManager;
  7 import java.sql.ResultSet;
  8 import java.sql.Statement;
  9 
 10 import javax.servlet.ServletException;
 11 import javax.servlet.annotation.WebServlet;
 12 import javax.servlet.http.HttpServlet;
 13 import javax.servlet.http.HttpServletRequest;
 14 import javax.servlet.http.HttpServletResponse;
 15 
 16 /**
 17  * Servlet implementation class LoginServlet
 18  */
 19 @WebServlet("/LoginServlet")
 20 public class LoginServlet extends HttpServlet {
 21     private static final long serialVersionUID = 1L;
 22     private String User;
 23     private String Password;
 24     
 25     String sql=null;
 26     Connection conn=null;
 27     Statement stmt=null;
 28     ResultSet rs=null;
 29     
 30     boolean isLoing=false;
 31        
 32     /**
 33      * @see HttpServlet#HttpServlet()
 34      */
 35     public LoginServlet() {
 36         super();
 37         // TODO Auto-generated constructor stub
 38     }
 39 
 40     /**
 41      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 42      */
 43     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 44         // TODO Auto-generated method stub
 45         response.getWriter().append("Served at: ").append(request.getContextPath());
 46     }
 47 
 48     /**
 49      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 50      */
 51     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 52         // TODO Auto-generated method stub
 53         response.setContentType("text/html;charset=UTF-8");
 54         response.setCharacterEncoding("utf-8");
 55         PrintWriter out=response.getWriter();
 56         //获取参数
 57         User=request.getParameter("userName");
 58         Password=request.getParameter("passWord");
 59         
 60         //连接数据库检测用户名和密码
 61         try {
 62             //连接数据库
 63             DriverManager.registerDriver(new com.mysql.jdbc.Driver());
 64             conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/homework?useUnicode=true&characterEncoding=UTF-8","root","root");
 65             stmt=conn.createStatement();
 66             sql="select password from login_tb where user='"+User+"'";
 67             rs=stmt.executeQuery(sql);
 68             
 69             if(rs.next()) {
 70                 //获取输入用户名的密码进行检验,若与输入的一致则isLogin置为true,反之置false
 71                 String pw=rs.getString("password");
 72                 if (pw.equals(Password)) {
 73                     isLoing=true;
 74                 }else {
 75                     isLoing=false;
 76                 }
 77             }else {
 78                 //若未查询到用户的存在也置为false
 79                 isLoing=false;
 80             }
 81             
 82         } catch (Exception e) {
 83             // TODO: handle exception
 84             e.printStackTrace();
 85         }finally {
 86             try {
 87                 if(rs!=null)
 88                     rs.close();
 89                 if(stmt!=null)
 90                     stmt.close();
 91                 if(conn!=null)
 92                     conn.close();
 93             } catch (Exception e2) {
 94                 // TODO: handle exception
 95                 e2.printStackTrace();
 96             }
 97         }
 98 
 99         if(isLoing) {
100             //这个字符串将会在js中被接收
101             //1代表登录成功
102             //2代表用户名或密码为空
103             //3代表用户名或密码错误
104             out.write("1");
105         }else if(User==""||Password==""){
106             out.write("2");
107         }else {
108             out.write("3");
109         }
110             out.close();
111     }
112 
113 }
View Code

 

 

转载于:https://www.cnblogs.com/lyq-biu/p/10625436.html

相关文章:

  • PHP 生成唯一订单号函数
  • SSE图像算法优化系列二十九:基础的拉普拉斯金字塔融合用于改善图像增强中易出现的过增强问题(一)...
  • Confluence 6 LDAP 服务器配置
  • tp5.0中及其常用方法的一些函数方法(自己看)和技巧(不断添加中)
  • SpringBoot 从application.yml中通过@Value读取不到属性值
  • python开发环境
  • 网页排版布局--从里到外先搞定结构
  • 常见的Web安全及其攻防姿势
  • 利益相关者分析
  • 长春网站建设×××,网站制作的步骤
  • spring boot @ConfigurationProperties vs @Value
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • websocket的那些事 - 初识
  • Easyui Tab使用
  • 通过DataWorks数据集成归档日志服务数据至MaxCompute进行离线分析
  • .pyc 想到的一些问题
  • 【css3】浏览器内核及其兼容性
  • 3.7、@ResponseBody 和 @RestController
  • Android交互
  • C++类中的特殊成员函数
  • IDEA常用插件整理
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • sublime配置文件
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 删除表内多余的重复数据
  • 小李飞刀:SQL题目刷起来!
  • 一个项目push到多个远程Git仓库
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 最近的计划
  • ​MySQL主从复制一致性检测
  • ​插件化DPI在商用WIFI中的价值
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (五)c52学习之旅-静态数码管
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)ABI是什么
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)visual stdio 书签功能介绍
  • .form文件_SSM框架文件上传篇
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .Net mvc总结
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET/C# 使用反射注册事件
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET学习全景图
  • @html.ActionLink的几种参数格式
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘