1.设计教师与学生不同登录界面
2.验证码随机生成
3.提交后分别转向教师页面和学生页面进行判断用户名和密码的正确性
如图所示的页面结构:
首先,登录做好页面的背景图片:
然后开始编程,我在这里设定的用户名和密码都是特定的,比较简单的方法:
login.jsp页面:登录
<%@ page contentType="text/html;charset=gbk"%> <%@ page language="java" import="java.sql.*" errorPage=""%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>用户登录</title> <style type="text/css"> table { background-image: url(1.png); width: 443px; height: 317px; margin: 0 auto; } </style> <script language="javascript"> function loadimage() { document.getElementById("randImage").src = "image.jsp?" + Math.random(); } </script> </head> <body> <table border="0" cellpadding="0" cellspacing="0"> <form action="validate.jsp" method="post" name="loginForm"> <tr height="70"> </tr> <tr> <td> </td> <td width="118" height="25" valign="middle" align="left"><input type="text" name="id" size="15" ></td> </tr> <tr> <td> </td> <td width="118" height="25" valign="middle" align="left"><input type="password" name="password" size="15"></td> </tr> <tr> <td> </td> <td width="118" height="25" valign="middle" align="left"><input type="text" name="rand" size="15"></td> </tr> <tr> <td width="138" valign="middle" align="right"><img alt="code..." name="randImage" id="randImage" src="image.jsp" width="60" height="20" border="1" align="absmiddle"> </td> <td height="36" align="left" valign="middle"><a href="javascript:loadimage();"><font class=pt95>看不清点我</font></a></td> </tr> <tr> <td width="118" height="22" valign="middle" align="right"><input type="radio" name="radio" value="1" />部门 <input type="radio" name="radio" value="2" />教师 </td> <td width="118" height="22" valign="middle" align="left"><input type="radio" name="radio" value="3" />学生 <input type="radio" name="radio" value="4" />访客</td> </tr> <tr> <td height="36" align="right" valign="middle"><input type="submit" name="login" value="登录"> </td> <td height="36" align="left" valign="middle"><input type="reset" value="重 置"></td> </tr> </form> </table> </body> </html>
image.jsp页面,用来画出验证码
<%@ page contentType="image/jpeg" import="java.awt.*, java.awt.image.*,java.util.*,javax.imageio.*"%> <%!Color getRandColor(int fc, int bc) { Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); }%> <% response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); int width = 60, height = 20; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics g = image.getGraphics(); Random random = new Random(); g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height); g.setFont(new Font("Times New Roman", Font.PLAIN, 18)); g.setColor(getRandColor(160, 200)); for (int i = 0; i < 155; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } String sRand = ""; for (int i = 0; i < 4; i++) { String rand = String.valueOf(random.nextInt(10)); sRand += rand; g.setColor(new Color(20 + random.nextInt(110), 20 + random .nextInt(110), 20 + random.nextInt(110))); g.drawString(rand, 13 * i + 6, 16); } // 将认证码存入SESSION session.setAttribute("rand", sRand); g.dispose(); ImageIO.write(image, "JPEG", response.getOutputStream()); %>
validate.jsp页面:验证教师和学生不同用户登录时的用户名和密码以及验证码的正确性
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage=""%> <% String rand = (String) session.getAttribute("rand"); String input = request.getParameter("rand"); String login = request.getParameter("radio"); String name = request.getParameter("id"); String password = request.getParameter("password"); if (login != null) { if (login.equals("1")) { out.print("部门"); } if (login.equals("2")) { if (name.equals("teacher")) { if (password.equals("teacher")) { if (rand.equals(input)) { out.print("验证码通过!"); out.print("教师登录"); } else { out.print("<script>alert('请输入正确的验证码!');location.href='login.jsp';</script>"); } } else { out.print("<script>alert('请输入正确的密码!');location.href='login.jsp';</script>"); } }else{ out.print("<script>alert('请输入正确的用户!');location.href='login.jsp';</script>"); } } if (login.equals("3")) { if (name.equals("yeting")) { if (password.equals("yeting")) { if (rand.equals(input)) { out.print("验证码通过!"); out.print("学生登录"); } else { out.print("<script>alert('请输入正确的验证码!');location.href='login.jsp';</script>"); } } else { out.print("<script>alert('请输入正确的密码!');location.href='login.jsp';</script>"); } }else{ out.print("<script>alert('请输入正确的用户!');location.href='login.jsp';</script>"); } } if (login.equals("4")) { out.print("访客"); } } %>
完成结果:
代码上传至附件中。
相关推荐
本话题主要聚焦于使用JSP实现登录功能,这是一个常见的用户认证过程,对于任何有用户账户系统的网站都是必不可少的。 首先,我们需要了解JSP的基本结构。JSP页面由HTML代码、JavaScript脚本、以及嵌入其中的Java...
在IT领域,Web开发是一项核心技能,而"jsp+mysql实现注册登录和管理员登陆实现增,删,改,查数据功能"是一个常见的实践项目,它涵盖了网页交互与数据库管理的基础知识。下面将详细阐述这个项目涉及的技术点。 1. *...
本教程将介绍如何使用JSP实现一个简单的登录注册系统,并连接到MySQL数据库。 首先,我们需要了解JSP的基本结构。一个JSP文件由两部分组成:静态内容(HTML、CSS、JavaScript)和动态内容(Java代码)。动态内容...
本项目通过结合JSP(JavaServer Pages)和MySQL数据库实现了这样一个系统,旨在为不同身份的用户提供安全的登录功能。以下将详细讲解该项目涉及的技术点和实现流程。 1. **JSP**:JSP是一种动态网页技术,它允许...
总结一下,"servlet+jsp实现登录注册退出"项目主要展示了Servlet和JSP如何协同工作以构建基本的用户管理功能。Servlet处理HTTP请求并执行业务逻辑,而JSP提供用户友好的界面和动态内容。虽然这个实现可能较为基础,...
**JSP实现的用户登录模块详解** 在Web开发中,用户登录模块是任何应用程序的核心部分,它确保只有授权用户能够访问受保护的资源。在这个场景中,我们将深入探讨如何使用JavaServer Pages(JSP)技术来创建一个基本...
本教程将详细讲解如何利用JSP实现一个登录界面的自动跳转功能,并结合MySQL数据库进行用户验证。 首先,让我们了解JSP的基础。JSP是一种基于Java的技术,它允许开发者在HTML或XML文档中嵌入Java代码,从而在服务器...
本项目“jsp+Servlet+javaBean实现登录注册”采用经典的Web开发技术栈,包括JavaServer Pages (JSP)、Servlet以及JavaBeans,结合MySQL数据库,利用集成开发环境myEclipse进行开发。下面将详细阐述这些知识点。 1. ...
使用JSP实现用户登录验证功能 创建index.jsp 代码: Insert title here 账号: 密码: 验证成功: 验证失败: 这是上机实验(第三次) 作者:艺博东
Javaweb账号登陆 实现登录页面login.jsp,在其中输入用户名,密码,发送到登录验证页面loginCL.jsp,验证登录成功.
在某些应用场景中,为了确保账号安全,我们需要实现“单浏览器登录”功能,即同一个账号在同一时间只能在一个浏览器中保持登录状态。当用户在另一浏览器或设备上登录时,之前登录的会话将被强制注销。以下是如何在...
【标题】"jsp,mysql实现登陆"涉及到的技术主要包括Java服务器页面(JSP)和MySQL数据库,用于构建一个基本的用户登录系统。以下是关于这两个技术及其在登录系统中的应用的详细说明: 1. Java服务器页面(JSP): ...
用户填写完信息后,通过JSP获得用户信息,并对用户输入的信息进行校验,至少包括三个校验: 用户名是否存在 两次输入的密码是否相同 用户输入的年龄是否为数字 用户输入的日期格式是否正确(可选) 如果校验不通过,...
### JSP与MySQL实现用户登录身份验证 #### 环境配置 为了实现JSP与MySQL结合完成用户登录的身份验证,首先需要确保一系列工具及环境的正确安装与配置。这包括: 1. **JDK 1.6.0**:用于编译JSP网页。 2. **Tomcat...
在IT行业中,构建一个简单的登录页面并实现增删改查功能是常见的Web开发任务,尤其在初学者和小型项目中非常普遍。这个项目利用了Java Servlet、JSP(JavaServer Pages)以及MySQL数据库来完成这一目标。下面我们将...
在IT领域,构建Web应用程序是常见的任务之一,而"Servlet+JSP+MySQL实现的登录注册页面"就是一个经典的示例,展示了如何利用这些技术来创建一个功能完备的用户管理系统。 Servlet是Java EE平台中的核心组件,它允许...
【基于jsp的动态效果的登录页面】 在网页开发中,JavaServer Pages(JSP)是一种常用的服务器端脚本语言,用于生成动态Web内容。本文将深入探讨如何利用JSP技术创建一个具有动态效果的登录页面。 一、JSP基础 JSP...
在IT行业中,构建Web应用程序是常见的任务之一,而"jsp+servlet+mysql实现登录"是一个基本但至关重要的实践。这个项目结合了三个关键组件:JavaServer Pages (JSP)、Servlets以及MySQL数据库,用于创建一个用户登录...
实现登录功能时,必须考虑安全性。包括但不限于:防止SQL注入(使用预编译的SQL语句或ORM框架)、密码安全存储(哈希加盐)、XSS攻击防护(转义输出内容)、CSRF攻击防护(使用令牌验证)等。 9. **异常处理**: ...