架构实例之Demo_JSP

1、开发工具和开发环境

      开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13

开发环境:WIN10

2、Demo_JSP实现功能

     用户登录、用户注册、退出登录。

3、Demo_JSP使用技术

    本实例使用了JSP、JDBC来实现用户登录、用户注册和退出登录功能。系统架构图如图一所示:

图一:Demo_JSP系统架构图

下面请看图二(Demo_JSP中JSP文件间逻辑关系图):

图二:Demo_JSP中JSP文件间逻辑关系图

4、具体实现

(1)在MyEclipse中新建一个Web project项目,并命名为Demo_JSP;

(2)向Demo_JSP项目中导入mysql-connector-java-5.1.6-bin.jar,这个包是实现Java连接数据库功能的包(不会导入包的同学,可以百度哟);

附:mysql-connector-java-5.1.6-bin.jar百度云下载链接:http://pan.baidu.com/s/1i5psdDF 密码:meyg

(3)在Demo_JSP项目中新建以下JSP文件:

1)login.jsp,用户登录的首页界面,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>登录界面</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form name="form1" action="login_action.jsp" method="post"><table width="200" border="1"><tr><td colspan="2">登录窗口</td></tr><tr><td>用户名</td><td><input type="text" name="username" size="10"></td></tr><tr><td>密码</td><td><input type="password" name="password" size="10"></td></tr><tr><td colspan="2"><input type="submit" name="submit" value="登录"> <ahref="register.jsp">注册新用户</a></td></tr>
</table>
</form></body>
</html>

2)login_action.jsp,接收login.jsp页面中用户输入的用户名和密码,通过JDBC实现登录认证,具体代码如下:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<%@ include file="inc.jsp"%>
<%
//get parameters
String username = request.getParameter("username");
String password = request.getParameter("password");//check null
if (username == null || password == null) {response.sendRedirect("login.jsp");
}//validate
boolean isValid = false;
String sql = "select * from userInfo where username='"+username+"' and password='"+password+"'";
try {Class.forName(drv).newInstance();Connection conn = DriverManager.getConnection(url, usr, pwd);Statement stm = conn.createStatement();ResultSet rs = stm.executeQuery(sql);if(rs.next())isValid = true;rs.close();stm.close();conn.close();
} catch (Exception e) {e.printStackTrace();out.println(e);
} finally {
}if (isValid) {session.setAttribute("username", username);response.sendRedirect("welcome.jsp");
} else {response.sendRedirect("login.jsp");
}
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>My JSP 'login_action.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body></body>
</html>

3)inc.jsp,存放数据库连接的地址,具体代码如下:

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<%
String drv = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/library_system";
String usr = "root";
String pwd = "root";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>My JSP 'inc.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>This is my JSP page. <br></body>
</html>

4)welcome.jsp,用户登录成功后的主界面,具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'welcome.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><table width="100%"><tr><td><img src="data:images/picture_01.png"></td><td><img src="data:images/picture_03.jpg" width="600" height="120"></td></tr><tr><td colspan="2"><hr></td></tr><tr><td><table><tr><td><a href="welcome.jsp">Main</a></td></tr><tr><td><a href="menu1.jsp">Menu1</a></td></tr><tr><td><a href="menu2.jsp">Menu2</a></td></tr><tr><td><a href="menu3.jsp">Menu3</a></td></tr><tr><td><a href="menu4.jsp">Menu4</a></td></tr><tr><td><a href="menu5.jsp">Menu5</a></td></tr><tr><td><a href="menu6.jsp">Menu6</a></td></tr><tr><td><a href="menu7.jsp">Menu7</a></td></tr><tr><td><a href="menu8.jsp">Menu8</a></td></tr></table></td><td><form name="form1" action="logout.jsp" method="post"><table width="200" border="1"><tr><td colspan="2">登录成功</td></tr><tr><td>欢迎你,</td><td><%=(String) session.getAttribute("username")%></td></tr><tr><td colspan="2"><input type="submit" name="submit" value="退出"></td></tr></table></form></td></tr>
</table></body>
</html>

5)loginout.jsp,用户退出登录,返回登录主界面,具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
session.removeAttribute("username");
response.sendRedirect("login.jsp");
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>My JSP 'logout.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body></body>
</html>

6)register.jsp,实现用户注册界面,具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'register.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><form name="form1" action="register_action.jsp" method="post"><table width="200" border="1"><tr><td colspan="2">注册窗口</td></tr><tr><td>用户名</td><td><input type="text" name="username" size="10"></td></tr><tr><td>密码</td><td><input type="password" name="password1" size="10"></td></tr><tr><td>确认密码</td><td><input type="password" name="password2" size="10"></td></tr><tr><td>Email</td><td><input type="text" name="email" size="10"></td></tr><tr><td colspan="2"><input type="submit" name="submit" value="登录"> <ahref="login.jsp">返回</a></td></tr>
</table>
</form></body>
</html>

7)register_action.jsp,通过JDBC实现注册,并把数据写入数据库,具体代码如下:

<%@ include file="inc.jsp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%
//get parameters
String username = request.getParameter("username");
String password1 = request.getParameter("password1");
String password2 = request.getParameter("password2");
String email = request.getParameter("email");//check null
if (username == null || password1 == null || password2 == null || !password1.equals(password2)) {response.sendRedirect("register.jsp");
}//validate
boolean isValid = false;
String sql = "select * from userInfo where username='"+username+"'";
try {Class.forName(drv).newInstance();Connection conn = DriverManager.getConnection(url, usr, pwd);Statement stm = conn.createStatement();ResultSet rs = stm.executeQuery(sql);if(!rs.next()) {sql = "insert into userInfo(username,password,mail) values('"+username+"','"+password1+"','"+email+"')";stm.execute(sql);isValid = true;}rs.close();stm.close();conn.close();
} catch (Exception e) {e.printStackTrace();out.println(e);
}if (isValid) {response.sendRedirect("login.jsp");
} else {response.sendRedirect("register.jsp");
}%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><base href="<%=basePath%>"><title>My JSP 'register_action.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0">    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body></body>
</html>

5、运行结果展示

(1)在浏览器中输入http://localhost:8080/Demo_JSP/login.jsp,将出现如下图三所示:

图三:登录界面

(2)点击注册新用户,将会出现如下图四所示:

图四:注册界面

(3)注册成功后,会自动返回到登录界面,然后输入用户名和密码,点击登录将出现如下图五所示:

图五:登录后的welcome.jsp界面

附:Demo_JSP项目实例源码百度云下载链接:http://pan.baidu.com/s/1mifI8nI 密码:j3wp;   本实例所使用数据库建表sql语句文件下载链接:http://pan.baidu.com/s/1eS0n9aM 密码:7ttd

转载于:https://www.cnblogs.com/liuzhen1995/p/5700409.html

架构实例之Demo_JSP相关推荐

  1. C#学习之三层架构实例

    如有雷同,不胜荣欣,如转载,请注明 一.三层架构实例 首先学习三层架构模式­--三层架构实现的留言和查看留言 下面是本人学习三层架构的一点感想和理解,肯定有许多不足的地方,欢迎大家斧正,谢谢,废话到此 ...

  2. linux驱动由浅入深系列:高通sensor架构实例分析之一

    点击打开链接 本系列导航: linux驱动由浅入深系列:高通sensor架构实例分析之一(整体概览+AP侧代码分析) linux驱动由浅入深系列:高通sensor架构实例分析之二(adsp驱动代码结构 ...

  3. 发布CodeBuild.Net代码自动生成器 V2008 2.01(Vs2008)和架构实例源码Demo

    CodeBuild.Net代码自动生成器 V2008 2.01(Vs2008) Microsoft Visual Studio 2008开发,需要安装运行库. 支持生成多标签切换等功能,方便代码生成, ...

  4. Android架构实例分析之编写hello驱动的HAL层代码

    Android架构实例分析之编写hello驱动的HAL层代码 摘要: HAL层中文名称又叫硬件抽象层,可以理解我Linux驱动的应用层.本文实现了一个简单的hello HAL的代码,衔接hello驱动 ...

  5. linux驱动由浅入深系列:高通sensor架构实例分析之三(adsp上报数据详解、校准流程详解)

    本系列导航: linux驱动由浅入深系列:高通sensor架构实例分析之一(整体概览+AP侧代码分析) linux驱动由浅入深系列:高通sensor架构实例分析之二(adsp驱动代码结构)

  6. springboot 物联网_物联网架构实例分享

    现在物联网服务平台比较多,也有一些比较好的或开源或商业化的物联网平台,这其中以MQTT为主,但不是所有的物联网设备都是需要双向通信的,考虑到MQTT的协议实现问题,目前基于传感器数据采集类的设备,尤其 ...

  7. java三层架构项目事例_三层架构实例

    一.概要 在我的上一篇博客中,我们谈了谈分层,到底为什么分层(http://blog.csdn.net/shan9liang/article/details/6836300) 这篇博客,准备用一个小D ...

  8. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (四) Q 反回调...

    上一篇文章"e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (三) Sq ...

  9. mocha 测试 mysql_e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDrive

    e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 二 图片验证码的识别 , 下面讲一 ...

最新文章

  1. 为智能手机VR体验而生,ARM公布最新处理器架构
  2. java获取手机号码归属地_手机号码归属地能否取消?这些热点问题,工信部回复了...
  3. 分布式消息队列 — RabbitMQ(3)
  4. 笔记-项目质量管理-质量保证和质量控制(信管网)
  5. hdu5442(2015长春网络赛F题)
  6. [论文学习]Manifold Mixup和PatchUp的代码重新实现(实现即插即用且速度更快)
  7. C/C++中的##用法
  8. 【规范化标准】之 ESLint、Stylelint
  9. CSS grid学习(一)
  10. @Entity,@Indexed @XmlRootElement
  11. SSH Secure Shell Client安装和使用
  12. UEFI开发与调试---运行阶段介绍
  13. Python Thinker GUI的组件的简单总结
  14. 单链表学生管理系统(0723-林雪阵)
  15. maxlength中文和英文html,让input maxlength区分中英文
  16. ad16 导入dwg_AD16怎样精确导入CAD文件
  17. 用单片机的RAM虚拟U盘(文件系统:Fat16)
  18. 南昌大学计算机导师林振荣,南昌大学各学院研究生导师介绍
  19. 【华为云速建站的购买流程】
  20. android混淆那些坑

热门文章

  1. 机器人防火墙:人机识别在应用安全及风控领域的一点实践
  2. PAT-乙级-1020. 月饼 (25)
  3. ScrollView 分割屏幕效果
  4. ios动态获取UILabel的高度和宽度
  5. java拾遗录(一)
  6. 网站建设——从无到有
  7. System.Configuration.ConfigurationSettings.GetConfig(string)”已过时 问题的解决方法
  8. kafka-manager 安装
  9. datatables[columns] 中的详细参数
  10. 二叉树的先序、中序、后序遍历