SSH2框架整合学习指南word资料11页

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

SSH2框架整合详细步骤
内部资料
2019年7月
目的:通过一个简单的注册登录来学ssh框架的整合
1 准备工作
1.1工具准备
Mysql5.5 , JDK 1.6, Myeclipse 6.5,tomcat6.0等辅助工具
1.2整合类库集
Struts-2.3.1.2, Hibernate 3.2,Spring 2.5(后两类库可以在myelcipse中有自带)
2开始搭建平台
1.启动myeclipse,建一个Web工程,如图所示:
图中的需要输入项目名称即可,其余可以没必要选择,除非有需2.导入Struts2开发的必备类库
说明:(此版本的myeclipse没有需要的struts2类库,所以选择手工导入)
需要导入的类库常见8个:
导入之后,还别忘了导入一个和spring整合需要的类文件
这些工作之后还需配置web.xml文件,为它配置过滤器,配置文件详细如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun/xml/ns/j2ee"
xmlns:xsi="/2019/XMLSchema-instance"
xsi:schemaLocation="http://java.sun/xml/ns/j2ee
http://java.sun/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-
class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecute Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
配置好该处后,还需要在src下面建立一个struts.xml文件,关于该配置文件可以到你下载的struts2文件中,找个项目中,有这样的模版可以拷贝过来一个,这样配置strust2暂时解决了
3.导入Hibernate类库文件,选择myeclipse进行导入
单击你选择的项目,点击右键,按如图所示选择hibernate的支持
选中点击之后得到如下界面,只需改JAR Library Installation如图所示
点击next,得到如下,不需改动,继续点击next即可
之后到该界面,因为后续来配置,此处就不选,不勾上,点击next
接下来也是把勾去掉,不选择,点击finish即可
就这样hibernate的支持也完成了
3。

导入对spring的支持,同样采用myeclipse集成已有的
操作如加入hibernate支持一样,点击之后,选择一些,得到如下
其中类库文件需要选择主要的三个(其实是四个,有一个选择会自动再选一个),三个为:
(AOP是选择第三个带进来的)还有就是把库文件选择到web-inf目录下,点击next
此处folder要选择到web-inf下即可
把第一个勾去掉即可,点击next
把勾去掉,点击finish即可,就这样配置spring的支持也完成了,可以进行测试下,将该项目部署到tomcat下,启动tomcat
结果发现抛出了异常,说struts2的过滤器没有成功启动,如图所示的
异常:
这是由于没有配置spring的监听器,打开web.xml文件加入如下代码:
<listener>
<listenerclass>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
重新启动服务器,发现一切正常运行,由于之后要用数据库,所以得把该三个jar文件导入:
这三个类库可以在网上下载到
做到此处,ssh2的整合已经就成功了,接下来就是具体去怎么实现注册,登录系统了
5. 先分析需求,建立数据库,数据表
为了简单起见,这里只对该用户进行简单的注册,登录,其中注册只需填用户名和
密码,登录界面也只有用户名和密码两项
建立了一个数据库为ssh2_003,在当中建个数据表为:user,包含
id,username,password,三个属性
将用户信息进行封装,定义一个User类
package com.ssh2_003.bean;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
public void setId(int id) {
this.id = id;
public String getUsername() {
return username;
public void setUsername(String username) {
ername = username;
public String getPassword() {
return password;
public void setPassword(String password) {
this.password = password;
下面编写一个register.jsp注册界面,源码如下:
<%@ page language="java" import="java.util.*"
pageEncoding="GB18030"%>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.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>
<center>
<h1>注册界面</h1>
<s:form action = "saveUser">
<table>
<tr>
<td><s:textfield name = "ername" label = "username"></s:textfield></td>
</tr>
<tr>
<td><s:password name = "user.password" label = "password"></s:password></td>
</tr>
<tr>
<td><s:submit value = "submit"></s:submit></td>
</tr>
</table>
</s:form>
</center>
</body>
</html>
接下来就得写Action类文件了写了个SaveUserAction.java继承ActionSupport,现
在该类只是一个没有任何逻辑和处理数据的,需后续工作进行才能解决
package com.ssh2_er;
import com.opensymphony.xwork2.ActionSupport;
import com.ssh2_er;
public class SaveUserAction extends ActionSupport {
private User user;
public User getUser() {
return user;
public void setUser(User user) {
er = user;
public String execute() throws Exception {
return SUCCESS;
下面得写具体的类了,首先DAO接口的编写,包含添加和查找方法:
package com.ssh2_003.dao;
import com.ssh2_er;
public interface UserDAO {
public void saveUser(User user);
public User findUserByProperty(String propertyname,Object value);
然后就是DAO接口的实现类了DAOImpl
package com.ssh2_003.dao.impl;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import com.ssh2_er;
import com.ssh2_erDAO;
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
public void saveUser(User user) {
this.getHibernateTemplate().save(user);
public User findUserByProperty(String propertyname, Object value) {
String hql = "from User as user where
user."+propertyname+"=?";
List<User> list =
(List<User>)this.getHibernateTemplate().find(hql, value);
if(list!=null&&list.size()==1)
return list.get(0);
else
return null;
DAO块就完成了,接下来就是Service块了,先写个Service接口,方法跟DAO 中差不多,只是还包含了另一个方法,用来验证用户登录的
package com.ssh2_003.service;
import com.ssh2_er;
public interface UserService {
public void save(User user);
public User findUserByProperty(String propertyname,Object value);
public boolean validateUser(String username,String password); 接着就是它的实现类ServiceImpl
package com.ssh2_003.service.impl;
import com.ssh2_er;
import com.ssh2_erDAO;
import com.ssh2_erService;
public class UserServiceImpl implements UserService {
private UserDAO userDao;
public UserDAO getUserDao() {
return userDao;
public void setUserDao(UserDAO userDao) {
erDao = userDao;
public void save(User user) {
erDao.saveUser(user);
public User findUserByProperty(String propertyname, Object value) {
return erDao.findUserByProperty(propertyname, value);
public boolean validateUser(String username, String password) {
boolean flag = false;
if(username==null||"".equals(username)||password==null||"".equals(passwo rd))
flag = false;
else{
User u = this.findUserByProperty("username", username);
if(u!=null){
if(u.getPassword().equals(password))
flag = true;
else
flag = false;
else
flag = false;
return flag;
别忘了,最主要的操作还是Action中实现,补充先前的SaveUserAction类package com.ssh2_er;
import com.opensymphony.xwork2.ActionSupport;
import com.ssh2_er;
import com.ssh2_erService;
public class SaveUserAction extends ActionSupport {
private User user;
private UserService service;
public UserService getService() {
return service;
public void setService(UserService service) {
this.service = service;
public User getUser() {
return user;
public void setUser(User user) {
er = user;
@Override
public String execute() throws Exception {
this.service.save(er);
return SUCCESS;
此时开起服务器,打开注册界面,点击注册,当出现如下信息时:
则表示成功,此时你进入数据库可以查看到已经有信息了。

好的注册块就完成了。

接下来来实现登录模块,此处设计简单,如果验证成功,则跳到success.jsp界面,提示注册成功信息,如果验证失败,则继续停留在登录界面。

登录界面源码如下:
<%@ page language="java" import="java.util.*"
pageEncoding="GB18030"%>
<%@ taglib prefix = "s" uri = "/struts-tags" %>
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'enter.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>
<center>
<h1><font color = "red">登录界面</font></h1>
<s:form action = "checkUser">
<table>
<tr>
<td><s:textfield name = "ername" label = "username"></s:textfield></td>
</tr>
<tr>
<td><s:password name = "user.password" label = "password"></s:password></td>
</tr>
<tr>
<td><s:submit value = "submit"></s:submit></td> </tr>
</table>
</s:form>
</center>
</body>
</html>
下面得写一个CheckUserAction类来出来用户的登录逻辑的实现,源码如下
package com.ssh2_er;
import com.opensymphony.xwork2.ActionSupport;
import com.ssh2_er;
import com.ssh2_erService;
public class CheckUserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private User user;
private UserService service;
public User getUser() {
return user;
public void setUser(User user) {
er = user;
public UserService getService() {
return service;
public void setService(UserService service) {
this.service = service;
@Override
public String execute() throws Exception {
String username = er.getUsername().trim();
String password = er.getPassword().trim();
System.out.println("*********");
if(this.service.validateUser(username, password)){
return SUCCESS;
else
return INPUT;
完成这些操作之后,打开登录界面,输入用户名和密码,当在myelcipse中出现此提示“
Hibernate: select user0_.id as id0_, user0_.username as
username0_, user0_.password as password0_ from user user0_ where
user0_.username=?以及success.jp界面的跳转,则表示登录成功了,你也可以尝试输入错误的用户名和密码,发现界面会继续跳到登录界面。

到目前为止,ssh2整合已经基本上实现了,只是没有进一步完善该功能。

第 11 页。

相关文档
最新文档