s2sh整合

来源:互联网 发布:python中的守护线程 编辑:程序博客网 时间:2024/05/02 02:08

工程目录结构:

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  <display-name>ssh01</display-name><!-- 指定spring的配置文件,默认是从web根目录寻找配置文件,我们通过spring提供的classpath:前缀指定从类路径下寻找 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:beans.xml</param-value> </context-param> <!-- 对spring容器进行实例化 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>   <filter>  <filter-name>ssh2</filter-name>  <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter>    <filter-mapping>  <filter-name>ssh2</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping>    <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  </web-app>

Person.hbm.xml配置:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd" ><hibernate-mapping package="com.shd.bean"><class name="Person" table="person"><id name="id"><generator class="native"/></id><property name="name" column="name" length="10" not-null="true"/></class></hibernate-mapping> 

beans.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"       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-2.5.xsd       http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context-2.5.xsd       http://www.springframework.org/schema/tx       http://www.springframework.org/schema/tx/spring-tx-2.5.xsd       http://www.springframework.org/schema/aop       http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">        <!-- 资源文件使用占位符,classpath指定在类路径下-->      <context:property-placeholder location="classpath:jdbc.properties"/>          <context:annotation-config/>          <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">      <property name="driverClassName" value="${driverClassName}"/>      <property name="url" value="${url}"/>      <property name="username" value="${username}"/>      <property name="password" value="${password}"/>      <!-- 连接池启动时的初始值 -->       <property name="initialSize" value="${initialSize}"/>      <!-- 连接池的最大值 -->      <property name="maxActive" value="${maxActive}"/>      <!-- 最大空闲值,当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 -->      <property name="maxIdle" value="${maxIdle}"/>      <!-- 最小空闲值,当空闲的连接数小于阈值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 -->      <property name="minIdle" value="${minIdle}"/>      </bean>            <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mappingResources"><list><value>com/shd/bean/Person.hbm.xml</value></list></property><property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=falsehibernate.format_sql=false</value></property>      </bean>            <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">      <property name="sessionFactory" ref="sessionFactory"></property>      </bean>      <tx:annotation-driven transaction-manager="txManager"/>     <bean id="personService" class="com.shd.service.impl.PersonServiceBean"></bean><bean id="personList" class="com.shd.action.PersonAction"></bean></beans>

struts.xml配置:

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- 指定web应用的默认编码集,相当于调用HttpServletRequest的setCharchterEncoding方法 --><constant name="struts.i18n" value="UTF-8"/><!-- 指定需要struts2处理的请求后缀,该属性的默认值是action,即所有*.action的请求都由Struts2处理。如果用户需要指定多个请求后缀,则多个后缀有逗号隔开 --><constant name="struts.action.extension" value="do"/><!--设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最还关闭  --><constant name="struts.serve.static.browewCache" value="false"/><!-- 当struts的配置文件修改后,系统是否自动重新加载该文件默认为false(生产环境下使用),开发阶段最好打开 --><constant name="struts.configuration.xml.reload" value="true"/><!-- 开发模式下使用,这样可以打印出跟详细的错误信息 --><constant name="struts.devMode" value="true"/><!-- 默认的试图主题 --><constant name="struts.ui.theme" value="simple"/><constant name="struts.objectFactory" value="spring"/><package name="struts2" namespace="/person" extends="struts-default"><global-results><result name="message">/WEB-INF/page/message.jsp</result></global-results>  <action name="action_*" class="personList" method="{1}">    <result name="list">/WEB-INF/page/personList.jsp</result>    <result name="add">/WEB-INF/page/add_person.jsp</result>  </action></package></struts>    


PersonAction.java

package com.shd.action;import java.util.List;import javax.annotation.Resource;import com.opensymphony.xwork2.ActionSupport;import com.shd.bean.Person;import com.shd.service.PersonService;public class PersonAction extends ActionSupport{@ResourcePersonService personService;private String message;private List<Person> persons;private Person person;public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public List<Person> getPersons() {return persons;}public void setPersons(List<Person> persons) {this.persons = persons;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}public String list(){this.persons = personService.getPersons();return "list";}public String addUI(){return "add";}public String add(){this.personService.Save(this.person);this.message="添加成功";return "message";}}


Person.java

package com.shd.bean;public class Person {private Integer id;private String name;public Person() {}public Person(String name) {this.name = name;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}


PersonService.java:

package com.shd.service;import com.shd.bean.Person;public interface PersonService {public abstract void Save(Person person);public abstract void delete(Integer id);public abstract void update(Person person);public abstract Person getPerson(Integer id);public abstract java.util.List<Person> getPersons();}


PersonServiceBean.java:

package com.shd.service.impl;import java.util.List;import javax.annotation.Resource;import org.hibernate.Query;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.springframework.transaction.annotation.Propagation;import org.springframework.transaction.annotation.Transactional;import com.shd.bean.Person;import com.shd.service.PersonService;@Transactionalpublic class PersonServiceBean implements PersonService {@Resource//注入private SessionFactory sessionFactory;public void Save(Person person) {sessionFactory.getCurrentSession().persist(person);}public void delete(Integer id) {sessionFactory.getCurrentSession().delete(sessionFactory.getCurrentSession().load(Person.class, id));}public void update(Person person) {sessionFactory.getCurrentSession().merge(person);}@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)public Person getPerson(Integer id) {return (Person) sessionFactory.getCurrentSession().get(Person.class, id);}@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)@SuppressWarnings("unchecked")public java.util.List<Person> getPersons() {return sessionFactory.getCurrentSession().createQuery("from Person").list();  }}


jdbc.properties文件:

driverClassName = org.gjt.mm.mysql.DriverinitialSize = 1maxActive = 500maxIdle = 2minIdle = 1password = 111111url = jdbc:mysql://localhost:3306/test?characterEncoding=utf-8username = root


personList.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s"%><!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>Insert title here</title></head><body><table border="1"><tr><td>id</td><td>name</td></tr><s:iterator value="persons"><tr><td><s:property value="id" /></td><td><s:property value="name" /></td></tr></s:iterator></table></body></html>


add_person.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s" %><!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>Insert title here</title></head><body><s:form action="action_add" method="post" namespace="/person">name:<s:textfield name="person.name"/><br><s:submit label="add"/></s:form></body></html>


message.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    <%@ taglib uri="/struts-tags" prefix="s" %><!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>Insert title here</title></head><body><s:property value="message"/></body></html>

 
数据库表person:

sql语句:

DROP TABLE IF EXISTS `person`;
CREATE TABLE `person` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

 

url为(通过action进入):http://localhost:8080/ssh01/person/action_list.do 和http://localhost:8080/ssh01/person/action_addUI.do

 代码下载链接:http://download.csdn.net/detail/shdhenghao3/4986033

 

 

共同学习,一同进步。

原创粉丝点击