架构实例之Demo_JSP

架构实例之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="登录"> <a
            href="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="images/picture_01.png"></td>
        <td><img src="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="登录"> <a
            href="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

时间: 2024-10-10 21:37:47

架构实例之Demo_JSP的相关文章

架构实例之Demo_JSP_JavaBean

架构实例之Demo_JSP_JavaBean 1.开发工具和开发环境      开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13 开发环境:WIN10 2.Demo_JSP_JavaBean实现功能      用户登录.用户注册.退出登录. 3.Demo_JSP_Java_Bean使用技术      本实例使用了JSP.JavaBean和JDBC来实现用户登录.用户注册和退出登录功能.系统架构图如图一所示: 图一:Demo

【DDD】领域驱动设计实践 —— 架构风格及架构实例

概述 DDD为复杂软件的设计提供了指导思想,其将易发生变化的业务核心域放置在限定上下文中,在确保核心域一致性和内聚性的基础上,DDD可以被多种语言和多种技术框架实现,具体的框架实现需要根据实际的业务场景和需求来制定. 核心的指导思路归纳为: 关注点放在domain上,将业务领域限定在同一上下文中 降低上下文之间的依赖,通过‘开发主机服务’(REST服务是其中的一种).‘消息模式’.‘事件驱动’等架构风格实现 遵循分层架构模式 架构风格 针对DDD的架构设计,<实现领域驱动设计>提到了几种架构风

三层架构实例

三层架构实例 一.新建立一个三层架构体系结构解决方案 原文://http://blog.csdn.net/xjc1278003262/article/details/8867177 新建一个空白解决方案.然后: 1.“添加”-“新建项目”-“Visual C#”-“类库”-“称:LoginBLL”-“业务逻辑”(业务层,下简称B层)如下图: 2.“添加”-“新建项目”-“Visual C#”-“类库”-“名称:LoginDAL”-“数据访问”(数据层,下简称D层)如下图: 3.“添加”-“新建项

架构实例之Demo_JSP_JavaBean_Servlet

架构实例之Demo_JSP_JavaBean_Servlet 1.开发工具和开发环境       开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13 开发环境:WIN10 2.Demo_JSP_JavaBean_Servlet实现功能 用户登录.用户注册.退出登录. 3.Demo_JSP_Java_Bean_Servlet使用技术       本实例使用了JSP.JavaBean.Servlet和JDBC来实现用户登录.用户

架构实例之SpringTest

架构实例之SpringTest 1.开发工具和开发环境       开发工具: MyEclipse10,JDK1.6.0_13(32位),Tomcat7.0(32位),mysql5.7.13 开发环境:WIN7 2.SpringTest实现功能 用户登录.用户注册.退出登录. 3.SpringTest使用技术       本实例使用了JSP.Spring3.1框架.JdbcTemplate来实现用户登录.用户注册和退出登录功能.系统架构图如图一所示:   图一:SpringTest系统架构图 4

C# 最简单的三层架构实例 ——转载自网易博客

代码        /// <summary>        /// 初始化登录名称.登录密码(Model类)        /// </summary>        private string adminUser = string.Empty; //设置用户名称为空值        private string adminPwd = string.Empty; //设置用户密码为空值        public string AdminUser        {       

vb.Net三层架构实例——登录

封装给编程带来的巨大的好处我们已感受到了,面向对象编程思想已经深入人心. 有了面向对象思想做指导,软件得到了迅速 的发展.在这种发展趋势下,三层架构也随之出现了. 从物理结构上来说,三层可以是客户端.应用服务器.数据库服务器.从逻辑上来说是表现层(Presentation layer).业务逻 辑层(Business Logic Layer).数据访问层(Dataaccess layer).区分层次体现了"高内聚低耦合"的思想.在软件体系架构设 中,分层式结构是最常见,也是最重要的一种

C#三层架构实例

对于三层的概念查也查了,看也看了,下面是我找的一个关于三层的简单实例,真正看一下它是如何具体实现的. 我们先来一起看看实体类-Model 实质:实体类就是在完成数据库与实体类对应的功能,一个类是一张表,一个属性是一个字段! using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace model { public class User { public User()

JAVA学习笔记(五十三)- 经典三层架构实例

UserDAO接口 /* * UserDAO接口 */ public interface UserDAO { //插入用户 public void insert(User user); //删除用户 public void delete(int id); //更新用户 public void update(User user); //查询所有用户 public List<User> getAllUsers(); //根据用户名或密码查询用户 public boolean checkUser(U