SSH框架整合实现信息管理系统
视频讲解
优酷在线观看(普清、高清):http://www.youku.com/playlist_show/id_19348363.html
B站在线观看:https://www.bilibili.com/video/BV1Ft4y117Jm
超清视频下载:http://yun.baidu.com/s/1pJ57Ry7
项目结构
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!--首页--> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!--Struts过滤转发器--> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <!--转发--> <url-pattern>/*</url-pattern> <!--过滤--> </filter-mapping> <!--Spring环境加载监听器--> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
JSP页面
-
登入页面(index.jsp)
<%@ page pageEncoding="GBK"%> <h1>管理员登录</h1>(测试账号密码都是admin) <form action="UserAction_login" method="post"> 账号<input type="text" name="user.name"><br> 密码<input type="password" name="user.pswd"><br> <input type="submit" value="登录"> </form>
-
列表页面(list.jsp)
<%@taglib prefix="s" uri="/struts-tags" %> <table border="1"> <tr> <th>ID</th><th>name</th><th>pswd</th><th>update</th><th>delete</th> </tr> <s:iterator value="#request.list"> <tr> <td><s:property value="id"/></td> <td><s:a href="UserAction_detail?user.id=%{id}"><s:property value="name"/></s:a></td> <td><s:property value="pswd"/></td> <td><s:a href="UserAction_toUpdate?user.id=%{id}">update</s:a></td> <td><s:a href="UserAction_delete?user.id=%{id}">delete</s:a></td> </tr> </s:iterator> </table> <a href="add.jsp">add</a>
-
添加页面(add.jsp)
<form action="UserAction_add" method="post"> name<input name="user.name" type="text"><br> pswd<input name="user.pswd" type="password"><br> <input type="submit" value="add"> </form>
-
详情页面(detail.jsp)
<%@taglib prefix="s" uri="/struts-tags" %> id: <s:property value="user.id"/><br/> name: <s:property value="user.name"/><br/> pswd: <s:property value="user.pswd"/>
-
更新页面(update.jsp)
<%@taglib prefix="s" uri="/struts-tags" %> <form action="UserAction_update" method="post"> <s:hidden name="user.id"></s:hidden> name: <input name="user.name" type="text" value="<s:property value="user.name"/>"><br> pswd: <input name="user.pswd" type="password"><br> <input type="submit" value="modify"> </form>
控制层(Action)
-
Struts.xml配置Action
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.devMode" value="true" /> <constant name="struts.i18n.encoding" value="GBK"></constant> <package name="user" extends="struts-default"> <action name="UserAction_*" class="userAction" method="{1}"> <!-- *匹配任意字符,{1}指第一个星号匹配到的字符 --> <!--重定向到UserAction执行list方法--> <result name="success" type="redirectAction">UserAction_list</result> <!--返回结果相应页面--> <result name="login">/index.jsp</result> <result name="list">/list.jsp</result> <result name="detail">/detail.jsp</result> <result name="update">/update.jsp</result> </action> </package> </struts>
-
UserAction.java
1 package com.lyltim.action; 2 3 import javax.annotation.Resource; 4 5 import org.apache.struts2.ServletActionContext; 6 import org.springframework.stereotype.Controller; 7 8 import com.lyltim.bean.User; 9 import com.lyltim.service.IUserService; 10 import com.opensymphony.xwork2.ActionSupport; 11 12 @Controller("userAction") 13 public class UserAction extends ActionSupport { 14 15 private User user; 16 17 //注入userService 18 @Resource 19 IUserService userService; 20 21 public void setUserService(IUserService userService) { 22 this.userService = userService; 23 } 24 public User getUser() { 25 return user; 26 } 27 public void setUser(User user) { 28 this.user = user; 29 } 30 31 public String login() { 32 if (userService.checkLogin(user)) 33 return SUCCESS; 34 else 35 return LOGIN; 36 } 37 38 public String list() { 39 ServletActionContext.getRequest().setAttribute("list", userService.list()); 40 return "list"; 41 } 42 43 public String add() { 44 userService.add(user); 45 return SUCCESS; 46 } 47 48 public String detail() { 49 user = userService.getUser(user.getId()); 50 return "detail"; 51 } 52 53 //先获得要更新的用户的信息,显示到更新页面。 54 public String toUpdate() { 55 user = userService.getUser(user.getId()); 56 return "update"; 57 } 58 59 //更新用户信息 60 public String update() { 61 userService.update(user); 62 return SUCCESS; 63 } 64 65 public String delete() { 66 userService.delete(user.getId()); 67 return SUCCESS; 68 } 69 70 }
实体层(Bean)
-
User.java
1 package com.lyltim.bean; 2 public class User { 3 private int id; 4 private String name, pswd; 5 //Getters and Setters... 6 }
-
User.hbm.xml 实体映射配置文件
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping> <class name="com.lyltim.bean.User" table="user"> <id column="id" name="id" type="int"> <generator class="native" /> </id> <property column="name" name="name" not-null="true" type="string" /> <property column="pswd" name="pswd" not-null="true" type="string" /> </class> </hibernate-mapping>
业务逻辑层(Service)
-
IUserService接口
1 package com.lyltim.service; 2 3 import java.util.List; 4 import com.lyltim.bean.User; 5 6 public interface IUserService { 7 boolean checkLogin(User user); //登入验证 8 void add(User user); //添加用户 9 List<User> list(); //列出所有用户 10 User getUser(int id); //根据ID查找用户 11 void update(User user); //修改用户 12 void delete(int id); //删除用户 13 }
-
UserServiceImpl.java实现类
1 package com.lyltim.service; 2 3 import java.util.List; 4 import javax.annotation.Resource; 5 import org.springframework.stereotype.Service; 6 7 import com.lyltim.bean.User; 8 import com.lyltim.dao.IUserDAO; 9 10 @Service("userService") 11 public class UserServiceImpl implements IUserService { 12 13 //注入userDAO 14 @Resource 15 private IUserDAO userDAO; 16 17 public void setUserDAO(IUserDAO userDAO) { 18 this.userDAO = userDAO; 19 } 20 21 //登入验证 22 public boolean checkLogin(User user) { 23 if ("admin".equals(user.getName()) && "admin".equals(user.getPswd())) 24 return true; 25 else 26 return false; 27 } 28 29 //添加用户 30 public void add(User user) { 31 userDAO.add(user); 32 } 33 34 //列出所有用户 35 public List<User> list() { 36 return userDAO.list(); 37 } 38 39 //查询某个用户 40 public User getUser(int id) { 41 return userDAO.getUser(id); 42 } 43 44 //修改某个用户的资料 45 public void update(User user) { 46 userDAO.update(user); 47 } 48 49 //删除某个用户 50 public void delete(int id) { 51 userDAO.delete(id); 52 } 53 54 }
数据持久层(DAO)
-
IUserDAO接口
1 package com.lyltim.dao; 2 3 import java.util.List; 4 import com.lyltim.bean.User; 5 6 public interface IUserDAO { 7 void add(User user); //添加用户 8 List<User> list(); //列出所有用户 9 User getUser(int id); //根据ID查找用户 10 void update(User user); //修改用户 11 void delete(int id); //删除用户 12 }
-
UserDAOImpl.java实现类
1 package com.lyltim.dao; 2 3 import java.util.List; 4 5 import org.springframework.orm.hibernate3.support.HibernateDaoSupport; 6 import org.springframework.stereotype.Repository; 7 8 import com.lyltim.bean.User; 9 10 @Repository("userDAO") 11 public class UserDAOImpl extends HibernateDaoSupport implements IUserDAO { 12 13 public void add(User user) { 14 getHibernateTemplate().save(user); 15 } 16 17 public List<User> list() { 18 return getHibernateTemplate().find("from User"); 19 } 20 21 public User getUser(int id) { 22 return getHibernateTemplate().get(User.class, id); 23 } 24 25 public void update(User user) { 26 getHibernateTemplate().update(user); 27 } 28 29 public void delete(int id) { 30 getHibernateTemplate().delete(getHibernateTemplate().get(User.class, id)); 31 } 32 }
Spring全局配置文件(applicationContext.xml)
<?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql:///test" /> <property name="username" value="root" /> <property name="password" value="123" /> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="mappingResources"> <list> <value>com/lyltim/bean/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop> <prop key="hibernate.hbm2ddl.auto">create-drop</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> </bean> <bean id="userDAO" class="com.lyltim.dao.UserDAOImpl"> <property name="sessionFactory" ref="sessionFactory" /> </bean> <!--启用注解注入 --> <context:annotation-config /> <!--启用组件扫描 --> <context:component-scan base-package="com.lyltim" /> </beans>