《Spring学习笔记》:Spring、Hibernate、struts2的整合前奏
最近在看马士兵老师的关于Spring方面的视频,讲解的挺好的,到了Spring、Hibernate、struts2整合这里,由于是以例子的形式来对Spring+Hibernate+struts2这3大框架进行整合,因此,自己还跟着写代码的过程中,发现还是遇到了很多问题,因此,就记录下,由于这篇博文是以jsp+数据库两层架构来进行实现,进而引出这三大框架的整合,因此,姑且就叫这篇博文为Spring、Hibernate、struts2的整合前奏。
现在我们要实现这样一个功能:
有一个用户注册的页面,当用户进行在注册页面进行信息的填写之后,会出现如下的两种情况:
1、如果信息符合要求,则显示登录成功的页面并将用户信息写入到数据库中
2、如果信息不符合要求,则显示登录失败的页面.
本篇博文为Spring、Hibernate、struts2的整合前奏,所采用的是一个jsp+数据库的两层架构来进行实现。
具体设计如下:
实现代码
主要涉及到如下的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
会看到如下的登陆界面:
当我们在登陆界面数据信息后点击提交就会进行相应的跳转,以及将信息写入数据库中。
以上就通过jsp+数据库两层架构实现了这样一个简单的功能。
参考资料
1、马士兵老师的《Spring视频教程》。