1.首先建包
File--->new--->dwp
2.导包
3.在配置文件web.xml配置一个struts2的过滤器和spring监听器。
<!-- listener监听 -->
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
public List
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
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
private User user;
private Map map;
private List
public List
return users;
}
public void setUsers(List
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
return list;
}
public void setList(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
22
23
24
applicationContext.xml
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 工厂类 -->
<!-- 创建实物管理对象 -->
<!-- 创建实物通知 -->
hibernate.cfg.xml
br/> "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
11:创建一个index.jsp页面将所有数据取出来显示到页面上。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4419/viewspace-2799528/ ,如需转载,请注明出处,否则将追究法律责任。