JavaWeb用户登录功能的实现

if(temp_username)){
has_username = true;
if(temp_password)){
password_correct = true;
return "hasUserNameAndPasswordCorrect";
}
return "hasUserNameButPasswordInCorrect";
</servlet-mapping>
最后的代码,太多了,而且有点乱,所以就没有贴出来,至于CSS代码,大家可以去网上下载:这个上面就有好多,大家根据喜好选择一个,然后稍加即可。
return false;
}
});
$(".validationCode_img").click(function(){
$(".validationCode_img").attr("src","/UserLogin/Sample1/validationCode"+());
});
function checkInput(){
有可能用得到的部分:生成验证码的Java类、操作数据库的Java类
用户登录模块采用了多种语言:
Html、css、query:页面
Servlet、java:后台
运行效果图:
代码:
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>登录界面</title>
</servlet-mapping>
<servlet>
<servlet-name>validationCode</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>validationCode</servlet-name>
<url-pattern>/validationCode</url-pattern>
} else if ("hasUserNameButPasswordInCorrect")) {
} else if ("hasNoUserName")) {
}
//转发到
RequestDispatcher rd = ("");
(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
al() == null || $("input[name=username]").val() == ""){
alert("用户名不能为空");
$("input[name=username]").focus();
return false;
}
al() == null || $("input[name=password]").val() == ""){
alert("密码不能为空");
$("input[name=password]").focus();
return false;
}
al() == null || $("input[name=validationCode]").val() == ""){
alert("验证码不能为空");
$("input[name=validationCode]").focus();
</div>
<div class="loginform_row">
<label>密码:</label>
<input type="password" class="loginform_input" name="password" />
</div>
<div class = "loginform_row">
</div>
<form action = "/UserLogin/Sample1/loginServlet">
<div class="loginform">
<div class="loginform_row">
<label>用户名:</label>
<input type="text" class="loginform_input" name="username" />doGet(req,resp); Nhomakorabea}
}
文件的配置
<servlet>
<servlet-name>loginServlet</servlet-name>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</div>
</form>
</div>
</body>
</html>
JQuery
$(function(){
$(".loginform_submit").click(function(){
if(checkInput()) {
$("form").action("/loginServlet");
}else{
</div>
<div class="loginform_row">
<span class = "returnInfo"></span>
<input type="submit" class="loginform_submit" value="登录" />
</div>
<div class="clear"></div>
<label>验证码:</label>
<input type = "text" class="loginform_input_validationCode" name ="validationCode"/>
<img class = "validationCode_img" src="/UserLogin/Sample1/validationCode">
}
}
} catch (SQLException e) {
();
}
return "hasNoUserName";
}
}
用于处理用户登录的
/**
* Created by zhang on 2014/9/13.
*/
public class LoginServlet extends HttpServlet{
@Override
return false;
}
return true;
}
});
生成验证码的
import .*;
/**
* Created by zhang on 2014/9/13.
*/
public class ValidationCode extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
JavaWeb用户登录功能的实现
大四快毕业了,3年多的时间中,乱七八糟得学了一大堆,想趁找工作之前把所学的东西整理一遍,所以就尝试着做一个完整的JavaWeb系统,这几天试着做了一个用户登录的功能,分享给大家,肯定有很多不完善的地方,希望大家提提宝贵的意见,必将努力完善它。
我贴出此篇博客的目的是,将一些以后有可能用到的重复性的代码保存下来,用于以后需要时直接复制粘贴,所以,此篇博客大部分都是代码,讲解性的语句并不多,如果大家看得头疼,不如不看,以后万一用到的话再拿过来修修改改即可。
;
public class ManageSQLServer2008 {
ewInstance();
} catch (Exception e) {
();
}
. args) throws SQLException{
合集下载

登录系统设计实验报告(3篇)

登录系统设计实验报告(3篇)

第1篇一、实验目的1. 熟悉登录系统的基本原理和设计流程。

2. 掌握使用常见开发工具进行登录系统设计的方法。

3. 提高编程能力和系统设计能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Java Web Development Kit (JDK) 1.83. 数据库:MySQL 5.74. 开发环境:Eclipse三、实验内容1. 需求分析2. 系统设计3. 系统实现4. 系统测试四、实验步骤1. 需求分析(1)用户需求登录系统应具备以下功能:1)用户注册:允许用户创建账户,输入用户名、密码、邮箱等基本信息。

2)用户登录:允许用户输入用户名和密码,验证用户身份。

3)找回密码:当用户忘记密码时,提供找回密码功能。

4)注销登录:允许用户退出登录状态。

(2)系统需求1)安全性:系统需保证用户数据的安全,防止数据泄露。

2)易用性:系统界面简洁,操作方便,易于用户使用。

3)稳定性:系统需具备良好的稳定性,能够应对高并发访问。

2. 系统设计(1)系统架构登录系统采用B/S(Browser/Server)架构,分为前端和后端两部分。

前端:使用HTML、CSS、JavaScript等技术实现用户界面。

后端:使用Java语言进行开发,结合MySQL数据库存储用户信息。

(2)模块设计1)用户注册模块:实现用户注册功能,包括输入用户名、密码、邮箱等基本信息。

2)用户登录模块:实现用户登录功能,验证用户身份。

3)找回密码模块:实现找回密码功能,允许用户通过邮箱或手机号找回密码。

4)注销登录模块:实现用户注销登录状态。

3. 系统实现(1)前端实现使用HTML、CSS、JavaScript等技术实现登录系统界面,包括注册、登录、找回密码等页面。

(2)后端实现1)使用Java语言实现用户注册、登录、找回密码等业务逻辑。

2)使用JDBC连接MySQL数据库,实现用户信息的存储和查询。

4. 系统测试(1)功能测试1)测试用户注册功能,确保用户可以成功注册账户。

基于java web 的教务管理系统设计与实现

基于java web 的教务管理系统设计与实现

教务管理系统是现代教育管理中必不可少的一部分,它通过信息技术手段帮助学校高效地管理学生信息、教师信息、课程安排、成绩管理等方面。

随着互联网技术的发展,传统的教务管理方式已经无法满足学校管理的需求,因此设计一个基于Java Web的教务管理系统将会带来革命性的改变。

本文将探讨教务管理系统的设计与实现,主要包括系统的需求分析、系统的架构设计、系统模块的实现等方面。

一、需求分析在设计教务管理系统前,首先要对系统的需求进行全面、深入的分析。

主要包括以下几个方面的需求:1. 学生管理:包括学生基本信息的录入、修改、删除,学生课程的选取、查看成绩等功能。

2. 教师管理:包括教师基本信息的录入、修改、删除,教师课程的安排、成绩录入等功能。

3. 课程管理:包括课程信息的录入、修改、删除,课程的排课、教室安排等功能。

4. 成绩管理:包括成绩录入、成绩统计、成绩查询等功能。

5. 班级管理:包括班级信息的录入、修改、删除,班级学生的管理等功能。

6. 系统管理:包括系统用户的权限管理、数据备份、日志管理等功能。

二、系统架构设计基于Java Web的教务管理系统主要分为前台展示系统和后台管理系统两部分。

其中前台展示系统主要提供给学生、教师和家长使用,包括学生信息查询、课程管理、成绩查询等功能;后台管理系统主要提供给教务处老师和管理员使用,包括教师、课程、班级、成绩等信息的管理和维护。

系统采用B/S架构,即浏览器/服务器架构。

前台展示系统通过浏览器访问,后台管理系统通过服务器端进行管理。

系统采用MVC(Model View Controller)设计模式,将业务逻辑、数据模型、用户界面分离,提高系统的可维护性和扩展性。

三、系统模块的实现1. 用户管理模块用户管理模块是整个系统的核心模块,包括用户注册、登入、权限管理等功能。

在系统中,用户分为管理员、教师、学生和家长四种角色,每种角色对应不同的权限和功能。

2. 学生管理模块学生管理模块包括学生基本信息的录入、修改、删除,学生选课、成绩查询等功能。

webauthn代码

webauthn代码

webauthn代码“WebAuthn代码”指的是实现WebAuthn功能的代码。

WebAuthn是一个开放标准,旨在简化网站和服务对用户的身份验证过程,提供基于公钥加密的身份验证方法。

通过使用WebAuthn代码,网站可以利用硬件安全模块(如智能卡、USB密钥或基于FIDO的设备)进行身份验证,为用户提供更安全、可靠和便捷的登录体验。

WebAuthn代码通常包括前端代码和后端代码。

前端代码负责与用户交互并处理用户输入的凭据,调用浏览器提供的WebAuthn API来启动身份验证过程。

后端代码则负责与WebAuthn服务器通信,验证用户的身份。

举例来说,以下是两个常见的WebAuthn代码实现:1.JavaScript代码:在前端开发中,可以使用JavaScript来调用浏览器的WebAuthn API。

例如,当用户尝试登录网站时,JavaScript代码可以调用WebAuthn API,并引导用户使用已连接的硬件安全模块或生物识别技术进行身份验证。

一旦验证成功,JavaScript代码将处理用户的登录请求,并授予他们访问受保护资源的权限。

2.Node.js代码:在后端开发中,可以使用Node.js来与WebAuthn服务器通信。

Node.js提供了与WebAuthn API交互的库和工具,使开发人员能够轻松地验证用户的身份。

当用户通过身份验证后,Node.js代码将处理用户的登录请求,并授予他们访问受保护资源的权限。

总结来说,“WebAuthn代码”指的是用于实现基于WebAuthn标准的身份验证功能的代码。

这包括前端代码和后端代码,分别用于处理用户输入和与浏览器API交互,以及与WebAuthn服务器通信和验证用户身份。

通过使用WebAuthn代码,网站可以提供更安全、可靠和便捷的身份验证机制,保护用户的个人信息并增强网站的安全性。

javaweb课程设计源码参考

javaweb课程设计源码参考

javaweb课程设计源码参考JavaWeb课程设计源码参考一、引言JavaWeb课程设计是计算机科学与技术专业的一门重要课程。

在这门课程中,学生需要掌握JavaWeb开发的基本知识和技能,并通过实践来加深对所学知识的理解。

本文将为大家提供一些JavaWeb课程设计的源码参考,帮助学生更好地完成课程设计。

二、登录页面登录页面是JavaWeb课程设计中常见的一个功能模块。

下面是一个简单的登录页面源码参考:```java<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %><!DOCTYPE html><html><head><title>登录页面</title></head><body><form action="login" method="post"><label for="username">用户名:</label><input type="text" id="username" name="username"><br><br><label for="password">密码:</label><input type="password" id="password" name="password"><br><br><input type="submit" value="登录"></form></body></html>```三、登录功能实现登录功能是JavaWeb课程设计中的核心功能之一。

JAVA web用户登录完整代码

JAVA web用户登录完整代码

java action:LoginForm form=(LoginForm)actionForm;ActionMessages errors = new ActionMessages();System.out.println(";form.getAction()=";+form.getAction());if (";login";.equals(form.getAction())) {System.out.println(";----------------login--------------";);AuthCodeCookie authCodeCookie = new AuthCodeCookie(request,response);if (!authCodeCookie.getAuthCode().equals(form.getAuthCode())) {//验证码不正确errors.add(";error.login.authcode";, new ActionMessage(";error.login.authcode";));this.saveErrors(request, errors);return mapping.getInputForward();}User user = this.getUserService().get(form.getUserId());if(user==null){errors.add(";er";, new ActionMessage(";er";));this.saveErrors(request, errors);return mapping.getInputForward();}Util util = new Util();if(!util.hash(form.getPassword()).equals(user.getPassword())){errors.add(";error.login.password";, new ActionMessage(";error.login.password";));this.saveErrors(request, errors);return mapping.getInputForward();}// 一旦登录成功,创建sessionHttpSession session = request.getSession();UserSession userSession = new UserSession();userSession.setUser(user);session.setAttribute(ER_SESSION_KEY, userSession);//把UserSession传递到下个页面// 并且修改用户登录时间,登录次数+1user.setLastLoginDate(Util.getCurrentDate(";yyyyMMdd hhmmss";));user.setLoginTimes(Integer.valueOf(user.getLoginTimes().intValue()+1));this.getUserService().update(user);System.out.println(";----------------------------------------------------";) ;// // 获取用户对应的系统应用菜单List allModuleList = this.getModuleService().getModuleTree(Integer.parseInt(user.getMenuLevel()));//0代表根菜单// List allModuleList = this.getModuleService().getModuleTree(1);//0代表主菜单// System.out.println(";allModuleList.size=";+allModuleList.size()); // for(int i=0;i<;allModuleList.size();i++){//System.out.println(";";+((Module)allModuleList.get(i)).getModuleName());// }Iterator menu = allModuleList.iterator();Vector parentV = new Vector();Vector childV = new Vector();Module m;while (menu.hasNext()) {m = (Module) menu.next();if(user.getPermission().indexOf(";[";+m.getId()+";]";)!=-1){if (m.getParentId().intValue() == 0) {parentV.add(m);} else {childV.add(m);}}}request.getSession().setAttribute(";parentVector";, parentV);request.getSession().setAttribute(";childVector";, childV);System.out.println(";初始化完毕";);return mapping.findForward(";userPanel";);}jsp:<;%@ page contentType=";text/html;charset=UTF-8";%>;<;%@ taglib uri=";/WEB-INF/struts-bean.tld"; prefix=";bean";%>;<;%@ taglib uri=";/WEB-INF/struts-html.tld"; prefix=";html";%>;<;%@ taglib uri=";/WEB-INF/struts-logic.tld"; prefix=";logic";%>;<;jsp:useBean id=";user_session"; scope=";session";type=";erSession"; />;<;%er user = null;if (user_session != null)user = user_session.getUser();//根据权限获得菜单,这里权限用Telephone替代一下先String str = user.getTelephone();%>;<;html>;<;head>;<;meta http-equiv=";Content-Type"; content=";text/html; charset=UTF-8";>;<;title>;LEFT<;/title>;<;link rel=";stylesheet"; href=";css/style.css"; type=";text/css";>;<;script language=";JavaScript";>;<;!--function doExit(){if (confirm(";您确定要退出帐单门户系统吗?";)){window.open(";login.portal?action=logout";,";_parent";,";";);}}//-->;<;/script>;<;script language=";JavaScript";>;var w=200;function closenavi() {w-=200;if (w>;-10) {window.parent.testframeset.cols = ''+w+',*';repeat=setTimeout(";closenavi()";,10);}else {clearTimeout(repeat);w=200;}}function loginOutPage() {document.forms[1].SIGN_OFF.click();}function initIt(){divCount = document.all.tags(";DIV";);for (i=0; i<;divCount.length; i++) {obj = divCount(i);if (obj.className == ";child"; || obj.className == ";child1";) obj.style.display = ";none";;}}function expandIt(el) {obj = eval(";page"; + el);obj2 = eval(";main"; + el);if (obj.style.display == ";none";) {obj.style.display = ";block";;}else {obj.style.display = ";none";;}}onload = initIt;var judge=0;function expandall(o) {if (judge==0) {divCount2 = document.all.tags(";DIV";);for (i=0; i<;divCount2.length; i++) {obj2 = divCount2(i);if (obj2.className == ";child"; || obj.className == ";child1"; || obj2.style.display == ";none";){obj2.style.display = ";block";;}if (obj2.className == ";menu";){//obj2.all.tags('img')[0].src='images/treeimg/tminus.gif';obj2.all.tags('img')[0].src='images/openfolder1.gif';}}judge=1;o.src='images/icon-closeall.gif';o.alt='全部折叠';}else {divCount2 = document.all.tags(";DIV";);for (i=0; i<;divCount2.length; i++) {obj2 = divCount2(i);if (obj2.className == ";child"; || obj.className == ";child1"; || obj2.style.display == ";block";){obj2.style.display = ";none";;}if (obj2.className == ";menu";){obj2.all.tags('img')[0].src='images/folder1.gif';}}judge=0;o.src='images/icon-expandall.gif';o.alt='全部展开';}}function quit(form) {window.close()}function loginOutPage() {document.forms[0].SIGN_OFF.click();}<;/script>;<;/head>;<;body bgcolor=";#D8DADA"; class=";bodyTop";>;<;center>;<;table width=";161"; border=";0"; cellspacing=";0"; cellpadding=";0";>;<;tr>;<;td>;<;table style=";margin-top: 10px; margin-bottom: 10px"; width=";138";border=";0"; align=";center"; cellpadding=";0"; cellspacing=";0";>;<;tr>;<;td>;<;img src=";images/001.jpg"; width=";138"; height=";6";>;<;/td>;<;/tr>;<;tr>;<;td class=";msBack";>;<;table width=";130"; border=";0"; align=";center"; cellpadding=";3";cellspacing=";0";>;<;tr>;<;td width=";19";>;<;img src=";images/em44.gif"; width=";19"; height=";19";>;<;/td>;<;td class=";message";>;您有新的帐单信息<;/td>;<;/tr>;<;tr>;<;td>;<;img src=";images/em44.gif"; width=";19"; height=";19";>;<;/td>;<;td class=";message";>;您有新的支付信息<;/td>;<;/tr>;<;/table>;<;/td>;<;/tr>;<;tr>;<;td>;<;img src=";images/002.jpg"; width=";138"; height=";6";>;<;/td>;<;/tr>;<;/table>;<;/td>;<;/tr>;<;/table>;<;logic:iterate id=";module"; name=";parentVector";type=";com.worthtech.billportal.bean.Module";indexId=";index";>;<;%int i = ((ng.Integer) pageContext.findAttribute(";index";)).intValue();%>;<;div id=<;%=";main"; + i%>; class=";title";onClick=";expandIt(<;%=";"; + i%>;); return false";>;<;%if(str.indexOf(";[";+module.getId()+";]";)!=-1){%>;<;table class=";TableLeftTop"; style=";margin-top: 10px"; width=";138";border=";0"; cellspacing=";0"; cellpadding=";4";>;<;tr>;<;td background=";images/LeftMenuBack.jpg";>;<;div align=";center";>;<;%=module.getModuleName()%>;<;/div>;<;/td>;<;/tr>;<;/table>;<;%}%>;<;/div>;<;div id=<;%=";page"; + i%>; class=";child";>;<;table class=";TableLeftView"; width=";170"; border=";0"; cellspacing=";0";cellpadding=";0";>;<;logic:iterate id=";childModule"; name=";childVector";type=";com.worthtech.billportal.bean.Module";>;<;%if(str.indexOf(";[";+childModule.getId()+";]";)!=-1&;&;childModule.getParent ID().intValue()==module.getId().intValue()){%>;<;tr>;<;td width=";44";>;<;div align=";right";>;<;img src=";images/t.gif"; width=";19"; height=";20";>;<;/div>;<;/td>;<;td width=";161";>;<;a href=<;%=childModule.getActionURL()%>; target=";mainFrame";>;<;%=childModule.getModuleName()%>;<;/a>;<;/td>;<;/tr>;<;%}%>;<;/logic:iterate>;<;/table>;<;/div>;<;/logic:iterate>;<;table style=";margin-top: 10px"; width=";161"; border=";0";cellspacing=";0"; cellpadding=";2";>;<;tr>;<;td>;<;table width=";141"; border=";0"; align=";center"; cellpadding=";2";cellspacing=";0";>;<;tr>;<;td>;<;div align=";center";>;<;a href=";#"; onclick=";doExit();";>;<;imgsrc=";images/ico01.gif";width=";65"; height=";15"; border=";0";class=";MouseOver";>; <;/a>;<;/div>;<;/td>;<;td>;<;div align=";center";>;<;ahref=";user.portal?action=password";target=";mainFrame";>;<;imgclass=";MouseOver";src=";images/ico02.gif";width=";65"; height=";15"; border=";0";>;<;/a>;<;/div>;<;/td>;<;/tr>;<;/table>;<;/td>;<;/tr>;<;/table>;<;/center>;<;/body>;<;/html>;。

《Java Web程序设计》实验指导书SSM

《Java Web程序设计》实验指导书SSM

《Java Web程序设计》实验指导河南大学计算机与信息工程学院二〇一七年七月目录说明 (1)实验一HTML应用 (1)一、实验目的 (1)二、实验学时 (1)三、实验环境 (1)四、实验内容 (1)五、实验报告书写要求 (2)实验二JSP应用 (3)一、实验目的 (3)二、实验学时 (3)三、实验环境 (3)四、实验内容 (3)五、实验报告书写要求 (4)实验三JDBC应用 (6)一、实验目的 (6)二、实验学时 (6)三、实验环境 (6)四、实验内容 (6)(一)MySQL数据库管理操作 (6)(二)使用JDBC访问数据库 (10)(三)在实验三实现的功能中增加数据库访问功能 (11)五、实验报告书写要求 (11)实验四Servlet应用 (12)一、实验目的 (12)二、实验学时 (12)三、实验环境 (12)四、实验内容 (12)(一)使用Servlet技术改写用户登录 (12)(二)使用Filter技术解决中文乱码 (12)五、实验报告书写要求 (12)实验五JSP+Servlet+JavaBean综合应用 (13)一、实验目的 (13)二、实验学时 (13)三、实验环境 (13)四、实验内容 (13)五、实验报告书写要求 (13)实验六DAO和MVC模式 (15)一、实验目的 (15)二、实验学时 (15)三、实验环境 (15)四、实验内容 (15)五、实验参考界面 (15)六、实验报告书写要求 (15)实验七 Struts 2应用 (17)一、实验目的 (17)二、实验学时 (17)三、实验环境 (17)四、实验内容 (17)(一)基本Struts 2应用编写 ..................................... 错误!未定义书签。

(二)可选:编写并使用拦截器 (17)(三)可选:使用类型转换器.................................... 错误!未定义书签。

【Java】JavaWeb登录检查及界面跳转

【Java】JavaWeb登录检查及界⾯跳转场景 ⼀般javaweb⽹站都有⽤户登录,⽽有⼀些操作必须⽤户登录才能进⾏,常见流程:⽤户请求--》后台判断是否登录--》没登录跳转到登录界⾯,登录⽤户正常操作解决思路 在⽤过滤器过滤请求,判断是否登录,如果未登录,返回参数跳转的登录界⾯,登录了的请求放⾏具体实现 新建⼀个web⼯,参考: 新建⼀个LoginFilter过滤器类,继承Filter类1package com.test.login;23import java.io.IOException;4import java.io.PrintWriter;5import java.util.ArrayList;6import java.util.List;78import javax.servlet.Filter;9import javax.servlet.FilterChain;10import javax.servlet.FilterConfig;11import javax.servlet.ServletException;12import javax.servlet.ServletRequest;13import javax.servlet.ServletResponse;14import javax.servlet.http.HttpServletRequest;15import javax.servlet.http.HttpServletResponse;16import javax.servlet.http.HttpSession;1718public class LoginFilter implements Filter {1920public static List<String> pattenURL = new ArrayList<String>();2122 @Override23public void destroy() {24// TODO Auto-generated method stub2526 }2728 @Override29public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)30throws IOException, ServletException {3132 HttpServletRequest httpRequest = (HttpServletRequest) request;33 HttpServletResponse httpResponse = (HttpServletResponse) response;34 HttpSession session = httpRequest.getSession();35// 登陆url36 String loginUrl = httpRequest.getContextPath() + "/login.jsp";37 String url = httpRequest.getRequestURI().toString();3839// 注:在pattenURL中的全部不拦截 url.indexOf(urlStr) > -1 表⽰urlStr在url中出现过,出现就不拦截40for (String urlStr : pattenURL) {41if (url.indexOf(urlStr) > -1) {42 chain.doFilter(request, response);43return;44 }45 }4647//超时处理,ajax请求超时设置超时状态,页⾯请求超时则返回提⽰并重定向,session.getAttribute("")是获取到登录⼈的session信息48if (session.getAttribute("") == null) {49// 判断是否为ajax请求50if (httpRequest.getHeader("x-requested-with") != null51 && httpRequest.getHeader("x-requested-with").equalsIgnoreCase("XMLHttpRequest")) {52 httpResponse.addHeader("sessionstatus", "timeOut"); // 返回超时标识53 httpResponse.addHeader("loginPath", loginUrl);// 返回url54 chain.doFilter(request, response);// 不可少,否则请求会出错55 } else {56// alert('会话过期,请重新登录');57 String str = "<script language='javascript'>" + "window.top.location.href='" + loginUrl + "';</script>";58 response.setContentType("text/html;charset=UTF-8");// 解决中⽂乱码59try {60 PrintWriter writer = response.getWriter();61 writer.write(str);62 writer.flush();63 writer.close();64 } catch (Exception e) {65 e.printStackTrace();66 }67 }68 } else {69 chain.doFilter(request, response);70 }71 }7273/**74 * 过滤器初始化调⽤⽅法在pattenURL中的全部不拦截,所以上⾯会使⽤:path.indexOf(urlStr) > -175*/76 @Override77public void init(FilterConfig config) throws ServletException {78 pattenURL.add("login.jsp");// 登录jsp79 pattenURL.add("login.do");// 登录⽅法80 pattenURL.add("css");// css81 pattenURL.add("image");// image82 pattenURL.add("js");// js83 pattenURL.add("fonts");// fonts8485 }8687 } 在web.xml中注册过滤器1<?xml version="1.0" encoding="UTF-8"?>2<web-app version="3.0" xmlns="/xml/ns/javaee"3 xmlns:xsi="/2001/XMLSchema-instance"4 xsi:schemaLocation="/xml/ns/javaee /xml/ns/javaee/web-app_3_0.xsd">56<display-name>test-login</display-name>78<!-- 登录过滤器 -->9<filter>10<description>登录过滤器</description>11<filter-name>loginFilter</filter-name>12<filter-class>com.test.login.LoginFilter</filter-class>13</filter>14<filter-mapping>15<filter-name>loginFilter</filter-name>16<url-pattern>/*</url-pattern>17</filter-mapping>1819<welcome-file-list>20<welcome-file>index.jsp</welcome-file>21</welcome-file-list>2223</web-app> 引⼊⼀个全局的js。

完成一个IDEAweb项目(二)登录功能实现

完成⼀个IDEAweb项⽬(⼆)登录功能实现(⼆)登录功能实现1. 编写前端页⾯若jsp页⾯中⽂乱码:在jsp中指定页⾯显⽰的编码为GBK添加page命令<%@ page language="java" contentType="text/html; charset=GBK" %>*其他所有出现编码的地⽅也要改掉2. 编写login.jsp,并设置为⾸页login.jsp<%@ page language="java" contentType="text/html; charset=GBK" %><!DOCTYPE html><html lang="en"><head><meta charset="GBK"><title>⽤户登录</title></head><body><form action="${pageContext.request.contextPath}/studentServlet" method="post"><div class="errorInfo">${error}</div><p>学号:<input type="text" size="20" name="stuNo"></p><p>密码:<input type="password" size="20" name="stuPwd"></p><p><input type="submit" value="登录"></p></form></body></html>设置为⾸页:web.xml添加<!-- 设置欢迎页⾯ --><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list>3. 编写dao层⽤户登陆的接⼝StudentDaopublic interface StudentDao {//得到要登录的研究⽣public Student getLoginStudent(Connection conn,String stuNo) throws SQLException;}4. 编写dao接⼝的实现层StudentDaoImplpackage dao.student;import dao.BaseDao;import domain.Student;import org.junit.Test;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class StudentDaoImpl implements StudentDao {@Overridepublic Student getLoginStudent(Connection conn, String stuNo) throws SQLException { PreparedStatement ps = null;ResultSet rs = null;Student stu = null;if (conn != null) {String sql = "select * from student where stu_no=?";Object[] params = {stuNo};rs = BaseDao.executeQuery(conn, sql, params, ps, rs);if (rs.next()) {stu = new Student();stu.setStuNo(rs.getString(1));stu.setPassword(rs.getString(2));stu.setStuName(rs.getString(3));stu.setSpecialty(rs.getString(4));stu.setSex(rs.getBoolean(5));stu.setBirth(rs.getDate(6));stu.setPhone(rs.getString(7));stu.setEmail(rs.getString(8));stu.setGradSchoolCode(rs.getString(9));stu.setGradSchoolName(rs.getString(10));stu.setGradSpecCode(rs.getString(11));stu.setGradSpecName(rs.getString(12));}BaseDao.closeResource(null, ps, rs);}return stu;}}5. 业务层接⼝StudentServicepublic interface StudentService {/*** 验证是否登录成功** @return 登录成功则返回⽤户对象,⽆则null*/public Student isLogin(String stuNo, String pwd) throws SQLException;}6. 业务层实现类StudentServiceImplpublic class StudentServiceImpl implements StudentService {private StudentDao studentDao;public StudentServiceImpl() {studentDao = new StudentDaoImpl();}/*** 验证是否登录成功** @return 有登录成功则返回⽤户对象,⽆则null*/@Overridepublic Student isLogin(String stuNo, String pwd) {Connection conn = null;Student stu = null;try {conn = BaseDao.getConnection();stu = studentDao.getLoginStudent(conn, stuNo);if (stu != null) {if (!pwd.equals(stu.getPassword()))stu = null;}} catch (SQLException e) {e.printStackTrace();} finally {BaseDao.closeResource(conn, null, null);}return stu;}}7. 编写ServletStudentServlet记得添加@WebServlet注解@WebServlet("/studentServlet")public class StudentServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //获取客户端提交的数据String stuNo = req.getParameter("stuNo");String stuPwd = req.getParameter("stuPwd");try {StudentService studentService = new StudentServiceImpl();Student stu = studentService.isLogin(stuNo, stuPwd);if (stu != null) { //有该⽤户,存进session,跳转到查看导师页⾯HttpSession session = req.getSession();session.setAttribute(Constants.STUDENT_SESSION, stu);resp.sendRedirect("stu_check_tutor.jsp");} else { //⽆该⽤户,跳转⾄登录页⾯,并提⽰错误信息req.setAttribute("error", "⽤户名或密码不正确");req.getRequestDispatcher("login.jsp").forward(req, resp);System.out.println("结束Servlet....");}} catch (SQLException e) {e.printStackTrace();}}}。

上机考试题目.doc

操作题:1、使用jsp完成一个java web项目,实现用户登录功能,三个页面登录页面login.jsp,登录逻辑处理页面loginSubmit.jsp,欢迎页面welcome.jsp。

用户在登录页面输入用户名和密码,如果用户名为”admin”,密码为”123”,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。

(无须连接数据库)2、使用jsp+servlet完成一个java web项目,实现用户登录功能,两个页面,一个servlet。

登录页面login.jsp,欢迎页面welcome.jsp,登录逻辑loginservlet。

用户在登录页面输入用户名和密码,如果用户名为”admin”,密码为”123”,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。

3、使用jsp完成一个java web项目,实现用户登录功能,三个页面登录页面login.jsp,登录逻辑处理页面loginSubmit.jsp,欢迎页面welcome.jsp。

用户在登录页面输入用户名和密码,如果数据库中存在,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。

(须连接数据库,sqlserver和access 均可)4、使用jsp+servlet完成一个java web项目,实现用户登录功能,两个页面,一个servlet。

登录页面login.jsp,欢迎页面welcome.jsp,登录逻辑loginservlet。

用户在登录页面输入用户名和密码,如果数据库中存在,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。

(须连接数据库,sqlserver和access均可)5、使用jsp完成一个java web项目,实现用户登录功能,三个页面登录页面login.jsp,登录逻辑处理页面loginSubmit.jsp,欢迎页面welcome.jsp。

用户在登录页面输入用户名和密码,前台页面使用js进行验证,如果用户名或密码为空,则提示用户输入用户名和密码;如果用户名为”admin”,密码为”123”,则登录成功跳转到欢迎页面,如果失败,停留在登录页面。

《web开发技术(java)》实验四——利用Session完成用户登录功能

《利用Session完成用户登录》实验指导书一、实验目的理解会话对象的功能。

二、实验任务1、利用会话对象完成用户的模拟登录功能(组织界面输入用户名密码,如果用户名等于neusoft,密码等于123则视作合法用户,并完成登录功能)。

登录界面如下:2、验证用户是否成功登录(如果已经登录显示登录用户信息,否则跳转到登录界面)。

成功登录界面如下:验证成功登录界面如下:三、预备知识1.会话就是驻留服务器上的托管对象,位于JSP容器中。

其主要作用是跟踪由一个用户发送的请求。

2.JSP容器与浏览器通过协作使用标准的HTTP协议来实现会话,JSP、Servlet开发人员无需实现会话,也不直接处理会话实现机制。

只要能够使用会话对象即可。

3.获取对象的方法:JSP中直接使用session对象即可,Servlet中需要调用HttpServletRequest实例的getSession()、getSession(flag)方法即可获得。

getSession()以及getSession(true)完成的功能是:如果所需的会话不存在,立即创建;getSession(false)完成的功能是:若请求的会话存在,则获取使用,否则返回空值。

4.向会话中添加信息:调用HttpSession实例的setAttribute(String,Object)方法即可将要加的信息添加到Session,但注意如果要添加的属性名同已有的属性名重名,则当前值会覆盖原有的值。

5.获取属性中的信息:调用HttpSession实例的getAttribute(String)方法即可返回需要的值,注意方法的参数为属性的名称。

6.删除属性中的信息:有时根据需要将Session中已有的属性信息予以删除,此时需要调用HttpSession实例的romoveAttribute(String)删除指定的属性。

7.获取会话中所有的属性信息:有时可能根据需要,列出会列出会话中所有的属性值,此时需要调用HttpSession实例的getAttributeNames()方法获取所有的属性名,然后在根据这些属性名分别调用getAttribute(String)方法返回对应的属性值四、实验步骤1.创建Web项目2.创建login.html首页3.创建完成登录功能的Servlet或JSP4.验证是否已经登录,若功能登录打印欢迎信息,否则跳转到登录页面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档