ITPub博客

首页 > IT职业 > IT生活 > ssh框架的搭建和整合(struts,spring,hibernate

ssh框架的搭建和整合(struts,spring,hibernate

IT生活 作者:megahertz 时间:2021-09-09 09:06:33 0 删除 编辑

1.首先建包
File--->new--->dwp
2.导包
3.在配置文件web.xml配置一个struts2的过滤器和spring监听器。
<!-- listener监听 -->
org.springframework.web.context.ContextLoaderListener


struts2org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2

public class User {

private Integer id;
private String username;
private String password;

public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
6.创建和hibernate.hbm.xml(映射文件)
点击com.hp.bean--->new--->other--->hibernate.hbm.xml.














7.在com.hp.service;com.hp.servic.impl包里编写com.hp.service(接口类)和com.hp.service.impl(实现类)。
接口类
public interface LoginService {

public List login(String username,String password);
public List login(String username);
public void addUser(User user);
public User findUser(String username,String password);
}
实现类
public class LoginServiceimpl implements LoginService{
private LoginDao logindao;

public LoginDao getLogindao() {
return logindao;
}

public void setLogindao(LoginDao logindao) {
this.logindao = logindao;
}

@Override
public List login(String username, String password) {

return logindao.login(username, password);

}

@Override
public void addUser(User user) {
logindao.addUser(user);

}

@Override
public User findUser(String username, String password) {
return logindao.findUser(username, password);
}

@Override
public List login(String username) {
return logindao.login(username);
}

}
8.在com.ho.dao;com.ho.dao.impl包里编写com.ho.dao(接口类)和com.ho.dao.impl(实现类)。
接口类

public interface LoginDao {

public List login(String username,String password);
public List login(String username);
public void addUser(User user);
public User findUser(String username,String password);
}
实现类

public class LoginDaoimpl extends HibernateDaoSupport implements LoginDao{
private HibernateTemplate hibernatetemplate;

public HibernateTemplate getHibernatetemplate() {
return hibernatetemplate;
}

public void setHibernatetemplate(HibernateTemplate hibernatetemplate) {
this.hibernatetemplate = hibernatetemplate;
}

@Override
public List login(String username, String password) {

List list=hibernatetemplate.find("from User where username=? and password=?", username,password);

if(list.size()>0){
return list;
}else{
return null;
}
}

@Override
public void addUser(User user) {
hibernatetemplate.saveOrUpdate(user);

}

@Override
public User findUser(String username, String password) {
String hql="from User where username=? and password=?";
List list= hibernatetemplate.find(hql, username,password);
//查询不到 list 空
if(list.size()>0){
return (User) list.get(0);
}else{
return null;
}

}

@Override
public List login(String username) {
     List list=hibernatetemplate.find("from User where username=?", username);

        if(list.size()>0){
            return list;
        }else{
            return null;
        }    
}
}

9.编写action类

public class LoginAction extends ActionSupport {

private String username;
private String password;
private LoginService loginservice;
private List list;
private User user;
private Map map;
private List users;

public List getUsers() {
return users;
}
public void setUsers(List users) {
this.users = users;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public LoginService getLoginservice() {
return loginservice;
}
public void setLoginservice(LoginService loginservice) {
this.loginservice = loginservice;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
//登录
public String login(){

list=loginservice.login(username, password);
boolean userflag;
if (null==list) {
    userflag=false;
}else {
    ActionContext.getContext().getSession().put("username", username);          
    userflag=true;
}

map=new HashMap();
map.put("userflag", userflag);
map.put("status", "ok");
return SUCCESS;

}
//注册
public String reg(){

users=loginservice.login(username);
boolean userflag;
if (null==users) {
    userflag=false;
    loginservice.addUser(user);
}else {
    //ActionContext.getContext().getSession().put("username", username);            
    userflag=true;
}

map=new HashMap();
map.put("userflag", userflag);
map.put("status", "ok");
return SUCCESS;

}
}
10:编写struts.xml(struts配置文件)、applicationContext.xml(spring配置文件)、hibernate.cfg.xml(hibernate配置文件)。
struts.xml
1
2 br/> 3 "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
4 "http://struts.apache.org/dtds/struts-2.3.dtd">
5 <!-- 上面的头,注意版本,从样例里复制过来 showcase.warWEB-INFsrcjavastruts.xml -->
7
8 <!-- 告知Struts2运行时使用Spring来创建对象 -->
9


11 <!-- 第1步:先定义一个包 -->
12
13 <!-- 第2步:定义一个action,配置跳转信息 name 类似于Servlet @WebServlet("/IndexServlet")
14 http://xxxx/xxx/Index.action http://xxxx/xxx/Index class 对应于自己写的Action类 当不写method属性时,默认调用的是execute
15 class="ssh.action.IndexAction" ** new ssh.action.IndexAction()
16 设计思想:关心了具体的实现类必须改为不要关注那个实现类 加入spring后,struts的action节点的class属性意义发生变化,直接引用spring帮忙创建的实例
17 -->
18

19 <!-- 跳转是forward/WEB-INF/是防止jsp不经过action就可以访问-->
20 <!-- result接收返回的字符串,然后做对应的事情 -->
21 /index.jsp
22 /login.jsp

23
24
applicationContext.xml

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 登录的bean -->


<!--创建 hiber模板类 -->

<!-- 配置数据源 -->





<!-- 创建Sessio 工厂类 -->


classpath:hibernate.cfg.xml


<!-- 创建实物管理对象 -->





<!-- 创建实物通知 -->






hibernate.cfg.xml

br/> "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


com.mysql.jdbc.Driver
jdbc:mysql://localhost/item?characterEncoding=UTF-8
root
org.hibernate.dialect.MySQL5Dialect
update
true
true









11:创建一个index.jsp页面将所有数据取出来显示到页面上。






总结:在SSH中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做支持控制反转,spring在struts基础是控制业务跳转,支持struts和hibernate。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Objects)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring做支持,支持struts和hibernate。其实ssh框架最主要的本质是:“高内聚、低耦合”。
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4419/viewspace-2799528/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 简单借书系统
请登录后发表评论 登录
全部评论

注册时间:2019-08-12

  • 博文量
    93
  • 访问量
    715