JSP动态网站开发之实现用户登录身份验证
第五篇:
JSP 动态网站开发之实现用户登录身份验证
欧长海所写
各位同学,大家好,我叫海洋,热衷于网站的开发。而且,本人 曾经开发过一些站点。凭着自己积累的一些小经验,给基础 JSP 网站 开发的朋友们介绍一下 JSP 站点的开发过程。在这里,我来给大家讲 讲动态的 JSP 站点的简单开发。 在过程中,可能会有一些词语错误等,希望大家谅解。因为书写 的时候,并没有通过校正就直接发表了。
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
18 / 46
这里,我们用 Myeclipse 写有几个小程序。 (1) 、login.jsp 具体代码如下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %> <% String MM_newtest_DRIVER = "org.gjt.mm.mysql.Driver"; String MM_newtest_USERNAME = "root"; String MM_newtest_PASSWORD = ""; String MM_newtest_STRING = "jdbc:mysql://localhost:3306/test"; String MM_LoginAction = request.getRequestURI(); if (request.getQueryString() != null && request.getQueryString().length() > 0) { String queryString = request.getQueryString(); String tempStr = ""; for (int i=0; i < queryString.length(); i++) { if (queryString.charAt(i) == '<') tempStr = tempStr + "<"; else if (queryString.charAt(i) == '>') tempStr = tempStr + ">"; else if (queryString.charAt(i) == '"') tempStr = tempStr + """; else tempStr = tempStr + queryString.charAt(i); }
(2)、logok.jsp 具体设计如下:
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
11 / 46
(3)、logfail.jsp 设计如下:
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
12 / 46
好了,页面简单的设计完了。
六、 链接数据库
(1)、打开 test.jsp 选择“应用程序“-》数据库-》选择加 号-》选择” MySQL 驱动程序(MySQL)”。然后我们设置一下连接 数据库的参数。如下: 连接名:newtest 第二项保持不变。 URL:jdbc:mysql://localhost:3306/test 。直接指向我们的数据 库 test。 用户名和密码自己设的,会不一样。我的用户名是 root,密码 为空。和建议大家的是一样的。 配置好了之后,点击“测试“。(注意:这里先别选择确定, 避免没有连接成功。) 我们来看一下测试结果。
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
3 / 46
第一步、navicat 里创建连接
下一步、
我们建立一个叫 test 的数据库。在 127.0.0.1 的主机
名上右键点击“打开连接”,之后我们看到几个信息,一个是 information——schema,另一个是 mysql。
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
4 / 46
下一步、
再次右键点击 127.0.0.1。 在弹出的选择窗口里选择 “创
建数据库”。如图
我们可以看到,成功创建的 tes基础动态网站开发系列之五:用户登录身份验证
5 / 46
接下来,我们建立两个表。其中,user 表是我给大家演示用 的,admin 表是大家在我讲完之后实战用的。目的是巩固所学, 加强理解。 (1)、admin 表 首先,定义 admin 表里的两个对象,管理员帐号和密码。定 义如下:
八、 预览
接下来,我们预览一下效果。 首先,地址栏输入:http://localhost:8080/newtest/test.jsp。 进入 登陆界面。 输入任意不是我们在数据库里的用户名和密码都是 user 的任意用 户名和密码。我们来看一下效果。
点击“提交“按钮。发现登录失败了。我们进不去了。出现了我 们刚才设计的三个页面之一的登陆错误提示页面。
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
13 / 46
七、 对准数据库
这一步,我们要对准数据库的项了。 这里,我们点击“服务器行为“-》加号-》用户身份验证-》登 录用户。 接下来,就要匹配了。具体如下:
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
14 / 46
设置完后,单击确定按钮。
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
2 / 46
(3) Dreamweaver 8 实现简单的 JSP 网页的服务器和数据 库行为等,并实现对网页的美工设计。 (4) MyEclipse6.5 用来写 JSP 网页的。 (5) MySQL5.1 数据库 (6) Navicat8 实现 MySQL 的图形界面管理。
当然,这是基础了。大家会了这个,我们再深入。
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
17 / 46
九、 相关知识
这里,我们说一些相关的知识.方便大家进一步了解我们的 dreamweaver。 首先,我们知道,因为每一种动态脚本的编译环境不一样,导致 了我们需要的服务器环境不一样。但是,dreamweaver 基本上可以实 现 ASP、、PHP、JSP 等常规的网页的编辑。 基本的功能, 只要我们对 dreamweaver 熟悉到一定程度, 都可以 做到的。但是一些比较特殊的,或者层次比较高一点的。希望如果大 家感兴趣的话,可以在 Myeclipse 里开发。 由于服务器的环境不一样,所以,如果换了一种脚本语言,可能 我们需要配置新的服务器环境了。 其实,JSP 链接到数据库的操作也很简单。我们也可以适当的了 解一下。 不如, 我们演示一下吧! 为了举例, 我多加了几个用户, 但是, 为了容易给大家理解,我只读入一个用户。
在这里,我们并没有给大家介绍像 JSPmyadmin 等其他的一些软 件,大家想研究的,可以自己试着摸索。这里就省略了。
二、 软件的安装
关于以上软件的安装,上课的时候,都给大家讲过了,我也 仔细的看了大家的配置。 都是成功的。 所以, 这里也省略了。
三、 设计数据库的表
为了简单起见,这里,我们不需要设置复杂的数据库表,只是 简单的示范一下登录身份的验证。 所以, 可能我们只需要一个 user 表,表里有一个用户就够了。 当然,大家也可以设计一个 admin 表来试验一下。 首先,我们建立一个 test 数据库。在数据库里定义两个表。
在接下来的这一节里, 我们主要介绍的是, 如何通过 dreamweaver 实现简单的用户登录。
一、 环境的配置
首先,我们要回忆一下,前几节课里,我给大家讲的环境配置。 这里,我们再回顾一下。 (1) JDK1.6.0 用来编译 JSP 网页的。 (2) Tomcat6.0 JSP 运行的服务器环境。
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
10 / 46
为 了节约时间,也是为了让大家明白这个简单的道理, 所以,我的设计很简单。大家也可以做的很简单。咱们先循 序渐进嘛! 等大家都会了,下次我们学深入一点的。
具体页面简单设计如下: (1)、test.jsp 包括两个文本域。一个是 username、 另一个是 password。 具体如下:
欧长海 JSP 基础动态网站开发系列之五:用户登录身份验证
用户登录验证:
19 / 46
MM_LoginAction += "?" + tempStr; } String MM_valUsername=request.getParameter("username"); if (MM_valUsername != null) { String MM_fldUserAuthorization=""; String MM_redirectLoginSuccess="logok.jsp"; String MM_redirectLoginFailed="logfail.jsp"; String MM_redirectLogin=MM_redirectLoginFailed; Driver MM_driverUser = (Driver)Class.forName(MM_newtest_DRIVER).newInstance(); Connection MM_connUser = DriverManager.getConnection(MM_newtest_STRING,MM_newtest_USERNAME,MM _newtest_PASSWORD); String MM_pSQL = "SELECT username, userpassword"; if (!MM_fldUserAuthorization.equals("")) MM_pSQL += "," + MM_fldUserAuthorization; MM_pSQL += " FROM er WHERE username=\'" + MM_valUsername.replace('\'', ' ') + "\' AND userpassword=\'" + request.getParameter("password").toString().replace('\'', ' ') + "\'"; PreparedStatement MM_statementUser = MM_connUser.prepareStatement(MM_pSQL); ResultSet MM_rsUser = MM_statementUser.executeQuery(); boolean MM_rsUser_isNotEmpty = MM_rsUser.next(); if (MM_rsUser_isNotEmpty) { // username and password match - this is a valid user session.putValue("MM_Username", MM_valUsername); if (!MM_fldUserAuthorization.equals("")) { session.putValue("MM_UserAuthorization", MM_rsUser.getString(MM_fldUserAuthorization).trim()); } else { session.putValue("MM_UserAuthorization", ""); } if ((request.getParameter("accessdenied") != null) && false) { MM_redirectLoginSuccess = request.getParameter("accessdenied"); } MM_redirectLogin=MM_redirectLoginSuccess; } MM_rsUser.close(); MM_connUser.close(); response.sendRedirect(response.encodeRedirectURL(MM_redirectLogin)); return; }
jsp的功能
jsp的功能JSP(JavaServer Pages)是一种用来开发动态Web页面的Java技术。
它可以将Java代码嵌入到HTML文档中,以实现更丰富的页面交互和动态数据展示功能。
以下是JSP的一些常见功能。
1. 动态页面生成:JSP可以根据用户请求,动态生成HTML页面,并将页面内容返回给浏览器。
这使得网页内容可以根据不同的条件和参数进行自适应的展示。
开发者可以在JSP中使用Java代码来处理用户请求,调用数据库、调用其他Java对象等。
2. 数据库访问:JSP可以直接连接数据库,并执行数据库操作。
通过使用Java的数据库连接API,JSP可以从数据库中查询、添加、修改和删除数据,然后将结果展示在Web页面上。
这可以实现数据的持久化和动态更新。
3. 表单处理:JSP可以处理用户提交的表单数据。
通过在JSP页面中定义HTML表单元素,并在表单的提交动作中指定JSP的URL,JSP可以接收表单数据,并对数据进行验证、处理和存储。
这些可以用来实现用户注册、登录、数据录入等功能。
4. 条件判断和循环:JSP支持使用Java的条件语句和循环语句。
这使得可以在JSP页面中根据不同的条件展示不同的内容,或者重复展示一段代码块。
通过使用if语句、switch语句和for循环等,可以实现更复杂的页面逻辑。
5. 页面重定向和转发:JSP可以将请求重定向到其他页面,或者将请求转发到另一个JSP或Servlet。
这使得可以在不同的页面之间进行跳转和协作,实现业务流程的分步处理。
6. 用户认证和会话管理:JSP提供了与用户认证和会话管理相关的内置对象。
通过这些对象,可以实现用户登录、注销、用户角色权限控制等功能。
同时,JSP还支持在页面级别和应用程序级别上进行会话管理。
7. 页面模板和复用:JSP支持使用页面模板和标签库进行页面复用。
可以将多个JSP页面中的公共部分抽取出来,形成一个模板文件,然后在其他JSP页面中引用该模板文件。
JSP Ajax 用户登录
JSP Ajax 用户登录
使用Ajax技术来实现用户登录,将会提交登录区域数据。
练习使用这种方法来实现用户登录校验。
(1)创建客户端程序,通过有参数请求把客户的用户名和密码发送到服务器,然后根据服务器返回的结果来判断是否登录成功。
其中发送有参数请求的JavaScri
(3)实现页面的登录界面,注意一些标签的id属性的设置不能有错,不然将
(4)实现服务器处理——check.java文件,它是一个Servlet,主要功能是起到一个控制器作用,将调用逻辑处理模块(一个JavaBean)SqlCheck来判断用户是否
(5)实现逻辑处理模块——SqlCheck.java,它是一个JavaBean,主要功能是查
(6)编译并部署各文件,运行效果如图9-15所示:
图9-15 登录成功。
使用JSP实现简单的用户登录注册页面示例代码解析
使⽤JSP实现简单的⽤户登录注册页⾯⽰例代码解析实验要求:将实验2中的系统⽤户登录和注册页⾯改为JSP页⾯,并部署⾃⼰的Web应⽤于Tomcat服务器中具体要求:完成登录JSP页⾯设计和注册页⾯设计在登录页⾯表单中使⽤request对象获取⽤户信息,建⽴新的JSP页⾯完成登录验证(⽤户名和密码⾃⼰指定即可)。
验证结果显⽰(如登录成功/⽤户名密码错误,可以使⽤JavaScript,也可以使⽤新的JSP页⾯)。
在注册页⾯表单中使⽤request对象获取⽤户注册信息(注册项⽬由⾃⼰指定),在新的JSP页⾯显⽰⽤户注册信息,并提⽰注册成功。
代码登录页⾯index.html<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>jsp作业</title><link href="css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet"></head><body><nav class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" href="./" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >jsp作业</a></div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >登录</a></li></ul></div></div></nav><div class="container"><div class="jumbotron"><h1>Hello, world!</h1><p>这是⼀个jsp作业</p></div></div></body></html>登录页⾯login.jsp<%@ page contentType="text/html; charset=utf-8" language="java"%><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>登录</title><link href="css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet"></head><body><nav class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" href="./" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >jsp作业</a></div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >登录</a></li></ul></div></div></nav><div class="container"><div class="row"><div class="col-md-4"></div><div class="col-md-4"><form class="form-signin" method="post" action="login-check.jsp"><h2 class="form-signin-heading">登录到jsp作业</h2><label for="">⽤户名</label><input type="text" name="username" id="username" class="form-control" placeholder="请输⼊⽤户名" required autofocus><br><label for="">密码</label><input type="password" name="password" id="password" class="form-control" placeholder="请输⼊密码" required><div class="checkbox"><label><input type="checkbox" value="remember-me" checked="checked"> 记住密码</label></div><button type="submit" class="btn btn-primary" id="btn-login">登录</button><a href="reg.jsp" rel="external nofollow" rel="external nofollow" class="btn btn-default">注册</a></form></div><div class="col-md-4"></div></div></body></html>登录结果页⾯login-check.jsp<%@ page contentType="text/html; charset=utf-8" language="java"%><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>登录</title><link href="css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet"></head><body><nav class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" href="./" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >jsp作业</a><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >登录</a></li></ul></div></div></nav><div class="container"><div class="row"><div class="col-md-4"></div><div class="col-md-4"><form class="form-signin" method="post" action="login-check.jsp"><h2 class="form-signin-heading">登录到jsp作业</h2><label for="">⽤户名</label><input type="text" name="username" id="username" class="form-control" placeholder="请输⼊⽤户名" required autofocus><br><label for="">密码</label><input type="password" name="password" id="password" class="form-control" placeholder="请输⼊密码" required><div class="checkbox"><label><input type="checkbox" value="remember-me" checked="checked"> 记住密码</label></div><button type="submit" class="btn btn-primary" id="btn-login">登录</button><a href="reg.jsp" rel="external nofollow" rel="external nofollow" class="btn btn-default">注册</a></form></div><div class="col-md-4"></div></div></body></html>注册页⾯reg.jsp<%@ page contentType="text/html; charset=utf-8" language="java"%><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>注册</title><link href="css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet"></head><body><nav class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" href="./" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >jsp作业</a></div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >登录</a></li></ul></div></div></nav><div class="container"><div class="row"><div class="col-md-4"></div><div class="col-md-4"><form class="form-signin" action="reg-submit.jsp" method="post"><h2 class="form-signin-heading">注册到jsp作业</h2><div id="info"></div><label for="">⽤户名</label><input type="text" name="username" id="username" class="form-control" placeholder="请输⼊⽤户名" required autofocus><br><label for="">密码</label><input type="password" name="password" id="password" class="form-control" placeholder="请输⼊密码" required><br><label for="">重复密码</label><input type="password" name="password2" id="password2" class="form-control" placeholder="请再次输⼊密码" required maxLength="16"><br><button type="submit" class="btn btn-primary" id="btn-reg">注册</button><a href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn btn-default" id="btn-reg">返回登录</a> </form></div><div class="col-md-4"></div></div></body></html>注册结果页⾯reg-submit.jsp<%@ page contentType="text/html; charset=utf-8" language="java"%><html lang="zh-CN"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>结果</title><link href="css/bootstrap.min.css" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="stylesheet"></head><body><nav class="navbar navbar-default"><div class="container-fluid"><div class="navbar-header"><a class="navbar-brand" href="./" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >jsp作业</a></div><div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"><ul class="nav navbar-nav navbar-right"><li><a href="login.jsp" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >登录</a></li></ul></div></div></nav><div class="container"><% String username = request.getParameter("username");String password = request.getParameter("password");String password2 = request.getParameter("password2");%><%if(password.equals(password2)){out.println("<div class='alert alert-success' role='alert'>注册成功</div>");out.println("<ul class='list-group'>");out.println("<li class='list-group-item'>⽤户名:" + username + "</li>");out.println("<li class='list-group-item'>密码:" + password + "</li>");out.println("</ul>");else{out.println("<div class='alert alert-danger' role='alert'>两次密码输⼊不⼀致,请重新输⼊</div>"); }%><!-- <%=username %><%=password %><%=password2 %> --></div>效果到此这篇关于使⽤JSP实现简单的⽤户登录注册页⾯⽰例代码解析的⽂章就介绍到这了,更多相关JSP实现简单的⽤户登录注册页⾯内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
jsp使用md5加密进行登录验证
jsp使用md5加密进行登录验证JSP(JavaServer Pages)是一种用于动态生成HTML页面的技术,而MD5(Message Digest Algorithm 5)是一种常用的加密算法。
在使用JSP进行登录验证时,可以结合MD5算法对用户密码进行加密存储,提高安全性。
下面我将为你详细介绍如何在JSP中使用MD5加密进行登录验证。
1.导入MD5算法库2.加密用户密码在用户注册或者保存密码的过程中,将用户输入的密码通过MD5算法进行加密,然后将加密后的密文保存到数据库中。
可以在JSP页面中编写一个函数,调用MD5算法库实现密码的加密过程。
例如:```javaString plainPassword = request.getParameter("password");String encryptedPassword = encryptPassword(plainPassword);//加密函数public String encryptPassword(String password)tryMessageDigest md = MessageDigest.getInstance("MD5");byte[] messageDigest = md.digest(password.getBytes();StringBuilder sb = new StringBuilder(;for (byte b : messageDigest)sb.append(String.format("%02x", b));}return sb.toString(;} catch (NoSuchAlgorithmException e)e.printStackTrace(;}return null;```3.登录验证在登录过程中,将用户输入的密码同样进行MD5加密,然后与存储在数据库中的密文进行比对。
Jsp学生信息管理系统登录验证全代码
1.jsp登录界面 Login.jspNo.:00000000000000587 <%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><html><head><meta http-equiv="Content-Type"content="text/html;charset=UTF-8"><title>用户登录界面</title></head><form action="LoginServlet"method="post"><body bgcolor="blue"><marquee direction="right"onmouseover="stop()"onmouseout="start()"style="font-family: 楷体_GB2312"><p><font size="10px"color="red">学生信息信息管理系统</font></p></marquee><table align=center width="237"><tr><td><table width=100%><tr><td colspan=6><font size=2><div id="b2bContent"style="FILTER: revealTrans(Duration = 1, Transition =</font></td></tr><tr><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt0"onclick="javascript:showPage(0);clearTimeout(theTimer);theTimer=s etTimeout('turnPage()',speed);checkBt();">1</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt1"onclick="javascript:showPage(1);clearTimeout(theTimer);theTimer=s etTimeout('turnPage()',speed);checkBt();">2</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt2"onclick="javascript:showPage(2);clearTimeout(theTimer);theTimer=s etTimeout('turnPage()',speed);checkBt();">3</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt3"onclick="javascript:showPage(3);clearTimeout(theTimer);theTimer=s etTimeout('turnPage()',speed);checkBt();">4</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt4"onclick="javascript:showPage(4);clearTimeout(theTimer);theTimer=s etTimeout('turnPage()',speed);checkBt();">5</div></font></td><td align=center STYLE='cursor: hand'><font size=2><div class="b2bbutton"id="bt5"onclick="javascript:showPage(5);clearTimeout(theTimer);theTimer=s etTimeout('turnPage()',speed);checkBt();">6</div></font></td></tr></table><script language="javascript">b2bStr = new Array();b2bStr[0]= "<div style='float:left; width:100%;overflow:hidden;'><a href=1.gif target=_blank><img src=1.gif width=214px height=145px border=0></a><br><a target=_blank title=太阳岛公园一角 href=1.gif>太阳岛公园一角</a></div>";width:100%;overflow:hidden;'><a href=2.gif target=_blank><img src=2.gif width=214px height=145px border=0></a><br><a target=_blank title=太阳岛公园湖光山色 href=2.gif>太阳岛公园湖光山色</a></div>";b2bStr[2] = "<div style='float:left; width:100%;overflow:hidden;'><a href=3.gif target=_blank><img src=3.gif width=214px height=145px border=0></a><br><a target=_blank title=哈尔滨雪雕 href=3.gif>哈尔滨雪雕</a></div>";b2bStr[3] = "<div style='float:left; width:100%;overflow:hidden;'><a href=4.gif target=_blank><img src=4.gif width=214px height=145px border=0></a><br><a target=_blank title=镜泊湖 href=4.gif>镜泊湖</a></div>";b2bStr[4] = "<div style='float:left; width:100%;overflow:hidden;'><a href=5.gif target=_blank><img src=5.gif width=214px height=145px border=0></a><br><a target=_blank title=太阳岛公园瀑布 href=5.gif>太阳岛公园瀑布</a></div>";b2bStr[5] = "<div style='float:left; width:100%;overflow:hidden;'><a href=6.gif target=_blank><img src=6.gif width=214px height=145px border=0></a><br><a target=_blank title=镜泊湖夜色 href=6.gif>镜泊湖夜色</a></div>";var page=0;var speed=3000;function showPage(id){setTransition();b2bContent.innerHTML=b2bStr[id];b2bContent.filters.revealTrans.play();}function turnPage(){showPage(page);theTimer=setTimeout("turnPage()", speed);checkBt();page++;if(page>=6) page=0;}function checkBt(){for(var i=0;i<6;i++){btObj=eval('bt'+i);if(page==i){btObj.style.color='#FFFFFF';btObj.style.backgroundCol or='#FF781C';}else{btObj.style.color='#000000';btObj.style.backgroundColor='#F7 F7F7';}}}function setTransition(){b2bContent.filters.revealTrans.Transition=Math.round(Math.random( )*23);b2bContent.filters.revealTrans.apply();}turnPage();</script></TD></TR></table><hr color="green"width="540"><table align="center"><tr><td>用户名:<input type="text"name="username"size="8" maxlength="6"></td></tr><tr><td>密 码:<input type="password" name="password"size="10"maxlength="6"></td></tr><tr><td><input type="submit"value="登录"> <input type="reset"value="取消"></td></table></form></body></html>2.java代码(1)User.Java 定义的属性和数据库中的字段相对应package com.softeem.dt;public class User {private int id;private String username;private String password;private String xh;private String college;public int getId(){return id;}public void setId(int id){this.id = id;}public String getUsername() {return username;}ername = username;}public String getPassword() {return password;}public void setPassword(String password) { this.password = password;}public String getXh() {return xh;}public void setXh(String xh) {this.xh = xh;}public String getCollege() {return college;}public void setCollege(String college) { this.college = college;}}(2)UserDAO.java 操作数据库tb_user,验证用户登录package com.softeem.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import com.softeem.db.DBManager;import er;public class UserDAO {/***验证用户登录*@return*/public boolean checkDenglu(User user) {boolean flag = false;// 获得数据库连接Connection conn = DBManager.getConnection();// 用select * from查询数据库中的所有字段String sql = "select count(*) from tb_user where username=? and password=?";try {PreparedStatement pst = conn.prepareStatement(sql);pst.setString(1, user.getUsername());pst.setString(2, user.getPassword());ResultSet rs = pst.executeQuery();while (rs.next()) {int count = rs.getInt(1);//用count和0比较,若大于0表示该用户存在,否则不存在if(count > 0){flag = true;}}} catch (SQLException e) {e.printStackTrace();}return flag;}}3.LoginServlet,点击登录跳转到服务器端package com.softeem.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import er;/*** Servlet implementation class LoginServlet*/public class LoginServlet extends HttpServlet {private static final long serialVersionUID = 1L;/*** @see HttpServlet#HttpServlet()*/public LoginServlet() {super();}/*** @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { super.doGet(request, response);}/*** @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //获取表单数据//处理乱码request.setCharacterEncoding("utf-8");String username = request.getParameter("username");String password = request.getParameter("password");//封装到user对象中User user = new User();user.setUsername(username);user.setPassword(password);//调用dao的checkLogin方法UserDAO dao = new UserDAO();boolean flag = dao.checkLogin(user);String message = null;String path = null;if(flag){message = "登录成功";path="success.jsp";request.getSession().setAttribute("user", user);}else{message ="对不起密码错误,请重新输入!";path="fail.jsp";}//response返回messageresponse.setCharacterEncoding("utf-8");response.getWriter().write(message);*///属于服务器跳转,浏览器地址栏没有发生改变request.getRequestDispatcher(path).forward(request,response);}}青年人首先要树雄心,立大志,其次就要决心作一个有用的人才。
实用js验证用户注册登录代码
} tion insurl(obj,is){
if (document.selection && document.selection.type == "Text") {
AddTxt="[url]"+text+"[/url]";
}
this.get=function (key){
for(i=0;i<this.keys.length;i++){
if(this.keys[i]==key){
return this.values[i];
}
}
}
}
//将固定格式的Ajax传递数据拆分成 key value 的对象
e.initEvent('click',false,false);
obj.dispatchEvent(e);
}
}
//读取Cookie
function getCookie(Name){
var re=new RegExp(Name+"=[^;]+", "i");
if (document.cookie.match(re)){
AddTxt="[img]"+text+"[/img]";
AddText(obj,AddTxt);
} else {
txt=prompt('请输入图片完整URL地址:','http://');
if (txt!=null) {
JSP-简单的登录实现
Integer c1 = (Integer) application.getAttribute("count"), c2 = new Integer(
c1.intValue() + 1);
application.setAttribute("count", c2);
String username = request.getParameter("username");
String password = request.getParameter("password");
String id = request.getParameter("id");
String authcode = request.getParameter("authcode");
<tr><td colspan="2" align="center"><input type="submit" value="LOGIN" />
</td></tr>
</table></form>
......
Welcome.jsp:
<%
if (((String)request.getParameter("submit"))!=null) {
......
<%
if (((String) request.getParameter("submit")) != null) {
JSP使用MD5加密进行登录验证
JSP使用MD5加密进行登录验证使用MD5加密进行登录验证是常见的一种方式,本文将详细介绍如何在JSP中使用MD5加密进行登录验证。
一、什么是MD5加密MD5是一种常用的加密算法,它将任意长度的数据转化为固定长度的密文,且不可逆。
即使输入数据只发生了一个字符的改变,也会导致加密后的密文发生巨大的变化,因此MD5加密是一种非常安全的加密方式。
在应用中,用户的账号和密码都是敏感信息,为了保护用户的隐私,通常会对用户的密码进行加密保存。
使用MD5加密是一种常见的方式,因为MD5加密后的密文很难被破解,即使被黑客获取到密文,也无法还原出原始密码。
三、如何在JSP中使用MD5加密1. 引入MD5加密算法的Java类库在JSP中,我们可以使用Java提供的MessageDigest类来实现MD5加密。
首先,需要引入java.security.MessageDigest类库,在JSP页面的顶部添加如下代码:```java```2.创建MD5加密方法创建一个方法来实现MD5加密,代码如下:```javapublic String md5Encryption(String input) throws ExceptionMessageDigest messageDigest =MessageDigest.getInstance("MD5");byte[] digest = messageDigest.digest(input.getBytes();StringBuilder result = new StringBuilder(;for (byte b : digest)result.append(String.format("%02x", b & 0xff));}return result.toString(;```这个方法接受一个输入参数,将其转换为字节数组后再进行加密计算,最后将结果转换为十六进制字符串形式返回。
JSP 用户登录
JSP 用户登录
当用户进入系统时候,首先要输入用户名和密码进行身份验证。
如果用户名和密码都正确,才可以进入系统,享受个性化服务;否则无法进入。
本次练习建立一个用户登录模块,使用Form表单的post方式提交数据,使读者掌握客户端数据的提交与服务器端数据的获取。
具体步骤如下:
(1)创建用户登录页面,效果如图3-16所示。
打记事本创建login.jsp文件,主要实现了一个Form表单,如下所示。
在上述代码中首先通过request对象获得客户端提交的用户名与密码,接下来判断用户是否可以登录。
实际项目中的判断过程较为复杂,本练习为了简单起见,规定如果用户名与密码都为“admin”则认为可以登录,否则认为不允许登录。
(3)测试。
打开浏览器,访问login.jsp页面,本练习使用的测试站点目录为“JSP_3”,所以访问地址为“http://localhost:8080/JSP_3/login.jsp”,读者可根据自己的测试站点做相应的改变。
在用户登录页面如果用户输入的用户名与密码不是“ad min”,则登录失败,处理结果如图3-17所示;反之登录成功,处理结果如图3-18所示。
图3-17 登录失败图3-18 登录成功。
Web开发中的数据验证与输入校验实践
Web开发中的数据验证与输入校验实践在Web开发中,数据验证和输入校验是确保数据的准确性和完整性的关键步骤。
无论是用户提交表单、上传文件还是访问API,这些数据都需要经过验证和校验以确保其符合预期要求。
本文将介绍在Web 开发中常见的数据验证与输入校验实践,以及如何有效地应用它们。
1. 概述数据验证和输入校验是确保用户输入数据合法性、准确性的过程。
通过对提交的数据进行验证和校验,可以防止恶意攻击、错误输入、数据丢失等问题的发生,保护数据的安全性和完整性。
2. 数据验证数据验证是对用户输入的数据进行合法性检查的过程。
常见的数据验证方式包括以下几种:2.1. 必填字段验证必填字段验证是确保用户必须填写某些必需的字段的方法。
例如,用户注册表单中的电子邮件地址和密码是必填字段,可以通过检查这些字段是否为空来验证其合法性。
2.2. 格式验证格式验证是确保用户输入数据符合特定格式要求的方法。
例如,电子邮件地址必须包含@符号和域名,可以通过正则表达式来验证输入是否符合邮箱地址的格式。
数据类型验证是确保用户输入的数据是符合预期数据类型的方法。
例如,手机号码应该是数字类型,可以通过检查输入是否只包含数字字符来验证手机号码的合法性。
2.4. 唯一性验证唯一性验证是确保用户输入的数据在数据库中是唯一的方法。
例如,在用户注册时,可以检查提交的用户名是否已经存在于数据库中,以防止重复注册。
3. 输入校验输入校验是对用户提交的数据进行安全性检查的过程,以防止恶意攻击和非法输入。
常见的输入校验方式包括以下几种:3.1. XSS过滤XSS(跨站脚本攻击)是一种利用网站漏洞,通过在网页中注入恶意脚本来攻击用户的技术。
为了防止XSS攻击,可以对用户输入的数据进行过滤和转义,确保其中没有恶意脚本代码。
3.2. SQL注入过滤SQL注入是一种攻击技术,利用网站对用户输入数据的处理不当,将恶意的SQL语句注入到数据库中,以获取敏感信息或者破坏数据库的技术。
