ssh2

准备条件:
1. 建WEB工程:ssh2
2. 建数据库ssh2,表user
3. 导入struts2,hibernate,spring包,注意包冲突,另导入commons-dbcp.jar, commons-pool.jar数据库连接池包
具体步骤如下:
1. 实体类
1.1 User.java

package com.ssh2.bean;

public class User {

private int id;
private String firstname;
private String lastname;
private int age;

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}

}

2. 数据库层
2.1 UserDAO.java

package com.ssh2.dao;

import java.util.List;

import com.ssh2.bean.User;

public interface UserDAO {
public void saveUser(User user);
public void updateUser(User user);
public void deleteUser(User user);
public List<User> getAllUsers();
public User getUser(Integer id);
}

2.2 UserDAOImpl.java

package com.ssh2.dao.impl;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.ssh2.bean.User;
import com.ssh2.dao.UserDAO;

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {

public void saveUser(User user) {
this.getHibernateTemplate().save(user);
}

@SuppressWarnings("unchecked")
public List<User> getAllUsers() {
List<User> users=(List<User>)this.getHibernateTemplate().find("from User");
return users;
}

public User getUser(Integer id) {
return (User)this.getHibernateTemplate().get(User.class, id);
}

public void updateUser(User user) {
this.getHibernateTemplate().saveOrUpdate(user);
}

public void deleteUser(User user) {
this.getHibernateTemplate().delete(user);
}
}

3. 业务逻辑层
3.1 UserService.java

package com.ssh2.service;

import java.util.List;

import com.ssh2.bean.User;

public interface UserService {
public void addUser(User user);
public void updateUser(User user);
public void deleteUser(User user);
public List<User> getAllUsers();
public User getUser(Integer id);
}

3.2 UserServiceImpl.java

package com.ssh2.service.impl;

import java.util.List;

import com.ssh2.bean.User;
import com.ssh2.dao.UserDAO;
import com.ssh2.service.UserService;

public class UserServiceImpl implements UserService {

private UserDAO userDAO;

public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}

public void addUser(User user) {
userDAO.saveUser(user);
}

public List<User> getAllUsers() {
return userDAO.getAllUsers();
}

public User getUser(Integer id) {
return userDAO.getUser(id);
}

public void updateUser(User user) {
userDAO.updateUser(user);
}

public void deleteUser(User user) {
userDAO.deleteUser(user);
}
}

4. 表示层
4.1 AddUserAction.java

package com.ssh2.action.user;

import com.opensymphony.xwork2.ActionSupport;
import com.ssh2.bean.User;
import com.ssh2.service.UserService;

@SuppressWarnings("serial")
public class AddUserAction extends ActionSupport {

private User user;
private UserService userService;

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public void setUserService(UserService userService) {
this.userService = userService;
}

@Override
public String execute() throws Exception {
userService.addUser(user);
return SUCCESS;
}
}

4.2 DeleteUserAction.java

package com.ssh2.action.user;

import com.opensymphony.xwork2.ActionSupport;
import com.ssh2.bean.User;
import com.ssh2.service.UserService;

@SuppressWarnings("serial")
public class DeleteUserAction extends ActionSupport {
private User user;
private UserService userService;

public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void setUserService(UserService userService) {
this.userService = userService;
}

@Override
public String execute() throws Exception {
userService.deleteUser(user);
return SUCCESS;
}
}

4.3 ListUserAction.java

package com.ssh2.action.user;

import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.ssh2.bean.User;
import com.ssh2.service.UserService;

@SuppressWarnings("serial")
public class ListUserAction extends ActionSupport {

private UserService userService;

public void setUserService(UserService userService) {
this.userService = userService;
}

@Override
@SuppressWarnings("unchecked")
public String execute() throws Exception {
List<User> users=userService.getAllUsers();
Map request=(Map)ActionContext.getContext().get("request");
request.put("users", users);
return SUCCESS;
}
}

4.4 UpdateAction.java

package com.ssh2.action.user;

import com.opensymphony.xwork2.ActionSupport;
import com.ssh2.bean.User;
import com.ssh2.service.UserService;

@SuppressWarnings("serial")
public class UpdateAction extends ActionSupport {
private User user;
private UserService userService;

public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void setUserService(UserService userService) {
this.userService = userService;
}

@Override
public String execute() throws Exception {
userService.updateUser(user);
return SUCCESS;
}
}

4.5 UpdatePAction.java

package com.ssh2.action.user;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.ssh2.bean.User;
import com.ssh2.service.UserService;

public class UpdatePAction extends ActionSupport {
private User user;
private UserService userService;

public void setUser(User user) {
this.user = user;
}

public User getUser() {
return user;
}

public void setUserService(UserService userService) {
this.userService = userService;
}

@Override
public String execute() throws Exception {
Map map=(Map)ActionContext.getContext().get("request");
map.put("user", this.userService.getUser(user.getId()));
return SUCCESS;
}
}

5. 配置文件
5.1 struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="ssh2" extends="struts-default">
<action name="addUser" class="addUserAction">
<result name="success" type="redirect">listUser.action</result>
</action>
<action name="listUser" class="listUserAction">
<result name="success">/list.jsp</result>
</action>
<action name="updateP" class="updatePAction">
<result name="success">/update.jsp</result>
</action>
<action name="update" class="updateAction">
<result name="success" type="redirect">listUser.action</result>
</action>
<action name="deleteUser" class="deleteUserAction">
<result name="success" type="redirect">listUser.action</result>
</action>

</package>
</struts>

5.2 applicationContext.xml(放到WEB-INF下)

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="ds" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/ssh2</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>root</value>
</property>
</bean>

<bean id="sf" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="ds"></property>
<property name="mappingResources">
<list>
<value>com/ssh2/bean/User.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>

<bean id="userDAO" class="com.ssh2.dao.impl.UserDAOImpl">
<property name="sessionFactory" ref="sf"></property>
</bean>

<bean id="userService" class="com.ssh2.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>

<bean id="addUserAction" class="com.ssh2.action.user.AddUserAction">
<property name="userService" ref="userService"></property>
</bean>

<bean id="listUserAction" class="com.ssh2.action.user.ListUserAction">
<property name="userService" ref="userService"></property>
</bean>

<bean id="updatePAction" class="com.ssh2.action.user.UpdatePAction">
<property name="userService" ref="userService"></property>
</bean>

<bean id="updateAction" class="com.ssh2.action.user.UpdateAction">
<property name="userService" ref="userService"></property>
</bean>

<bean id="deleteUserAction" class="com.ssh2.action.user.DeleteUserAction">
<property name="userService" ref="userService"></property>
</bean>
</beans>

6. 映射文件
5.1 User.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<class name="com.ssh2.bean.User" table="user">
<id name="id" column="id" type="integer">
<generator class="increment"></generator>
</id>
<property name="firstname" column="firstname" type="string"></property>
<property name="lastname" column="lastname" type="string"></property>
<property name="age" column="age" type="integer"></property>
</class>
</hibernate-mapping>

7. 页面
7.1 index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>首页</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>
<s:a href="add.jsp">增加用户</s:a><br/>
<s:a href="listUser.action">用户列表</s:a>
</body>
</html>

7.2 list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>用户列表</title>
</head>
<body>
<table border="1" cellpadding="1" cellspacing="0" align="center" width="60%">
<tr>
<th>id</th>
<th>firstname</th>
<th>lastname</th>
<th>age</th>
<th>update</th>
<th>delete</th>
</tr>
<s:iterator value="#request.users" id="user">
<tr>
<td><s:property value="#user.id" /></td>
<td><s:property value="#user.firstname" /></td>
<td><s:property value="#user.lastname" /></td>
<td><s:property value="#user.age" /></td>
<td><s:a href="updateP.action?user.id=%{#user.id}">update</s:a></td>
<td><s:a href="deleteUser.action?user.id=%{#user.id}">delete</s:a></td>
</tr>
</s:iterator>
</table>
</body>
</html>

7.3 add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册用户</title>
</head>
<body>
<s:form action="addUser">
<s:textfield name="user.firstname" label="firstname"></s:textfield>
<s:textfield name="user.lastname" label="lastname"></s:textfield>
<s:textfield name="user.age" label="age"></s:textfield>
<s:submit value="submit"></s:submit>
</s:form>
</body>
</html>

7.4 update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>更新用户</title>
</head>
<body>
<s:form action="update.action">
<s:hidden name="user.id" value="%{#request.user.id}" ></s:hidden>
<s:textfield name="user.firstname" value="%{#request.user.firstname}" label="firstname"></s:textfield>
<s:textfield name="user.lastname" value="%{#request.user.lastname}" label="lastname"></s:textfield>
<s:textfield name="user.age" value="%{#request.user.age}" label="age"></s:textfield>
<s:submit value="submit"></s:submit>
</s:form>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值