《Spring学习笔记》:Spring、Hibernate、struts2的整合前奏

《Spring学习笔记》:Spring、Hibernate、struts2的整合前奏

最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring、Hibernate、struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下,由于这篇博文是以jsp+数据库两层架构来进行实现,进而引出这三大框架的整合,因此,姑且就叫这篇博文为Spring、Hibernate、struts2的整合前奏。

现在我们要实现这样一个功能:
有一个用户注册的页面,当用户进行在注册页面进行信息的填写之后,会出现如下的两种情况:
1、如果信息符合要求,则显示登录成功的页面并将用户信息写入到数据库中
2、如果信息不符合要求,则显示登录失败的页面.

本篇博文为Spring、Hibernate、struts2的整合前奏,所采用的是一个jsp+数据库的两层架构来进行实现。

具体设计如下:

《Spring学习笔记》:Spring、Hibernate、struts2的整合前奏_第1张图片

实现代码

主要涉及到如下的4个jsp文件:

1、register.jsp

2、registerDeal.jsp

3、registerSuccess.jsp

4、registerFail.jsp

关于以上4个jsp文件的代码如下

1、register.jsp

这个文件主要就是一个表单form。具体内容如下:

<%@ 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>
  </head>

  <body>
    <form action="registerDeal.jsp" method="post">
        用户名:<input type="text" name="username"><br>
        密码:<input type="password" name= "password"><br>
        确认密码:<input type="password" name="password2"><br>
        <input type="submit" value="提交">
    </form>
  </body>
</html>

2、registerDeal.jsp

这个文件包括主要的业务逻辑,主要用于接收register.jsp中用户输入的数据,以及和数据库打交道,进行数据的存储。下面的代码是我们比较熟悉的代码。

<%@page import="java.sql.Connection"%>
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
String username=request.getParameter("username");
String password=request.getParameter("password");
String password2=request.getParameter("password2");

Class.forName("com.mysql.jdbc.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/spring", "root", "123456");

String sqlQuery="select count(*) from user where username=?";

PreparedStatement psQuery=conn.prepareStatement(sqlQuery);
psQuery.setString(1, username);
ResultSet rs=psQuery.executeQuery();
rs.next();
int count=rs.getInt(1);
//如果count>0  则跳转到registerFail.jsp页面  ,否则跳转到 registerSuccess.jsp页面并将用户的信息插入到数据库中
if(count>0){
    response.sendRedirect("registerFail.jsp");
    psQuery.close();
    conn.close();
    return;
}

String sqlInsert="insert into user values(null,?,?)";
PreparedStatement ps=conn.prepareStatement(sqlInsert);
ps.setString(1, username);
ps.setString(2,password);
ps.executeUpdate();
response.sendRedirect("registerSuccess.jsp");
psQuery.close();
ps.close();
conn.close();

%>

3、registerSuccess.jsp registerFail.jsp

这两个jsp文件比较简单,均只在页面中,显示Success / Fail信息。

例如:registerSuccess.jsp中body下的代码为:

<body>
        Success. <br>
 </body>

要注意的几点是:

1、在MySQL数据库中建立名为spring的database和名为user的table

2、需要在项目中导入数据库驱动包。如下:

在浏览器中输入:http://localhost:8080/Spring_Register/register.jsp

会看到如下的登陆界面:

《Spring学习笔记》:Spring、Hibernate、struts2的整合前奏_第2张图片

当我们在登陆界面数据信息后点击提交就会进行相应的跳转,以及将信息写入数据库中。

以上就通过jsp+数据库两层架构实现了这样一个简单的功能。

参考资料

1、马士兵老师的《Spring视频教程》

你可能感兴趣的:(spring,Hibernate,struts,整合)