SSH框架搭建参考文档Word格式.docx
《SSH框架搭建参考文档Word格式.docx》由会员分享,可在线阅读,更多相关《SSH框架搭建参考文档Word格式.docx(31页珍藏版)》请在冰点文库上搜索。
![SSH框架搭建参考文档Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/4fa5d1a5-9d28-45ae-a481-a222b77c2fcb/4fa5d1a5-9d28-45ae-a481-a222b77c2fcb1.gif)
ojdbc14.jar
其它包:
log4j-1.2.13.jar
二、框架结构
1.app
存放系统关于业务应用方面的代码
(1)com.yuanit.app.action业务代码action层
(2)com.yuanit.app.dao业务代码dao层接口
(3)com.yuanit.app.dao.impl业务代码dao层实现类
(4)com.yuanit.app.service业务代码service层接口
(5)com.yuanit.app.service.impl业务代码service层接口实现类
(6)com.yuanit.app.model业务代码model层
业务实体层,示例代码:
Member.java
packagecom.yuanit.app.model;
importjava.util.HashSet;
importjava.util.Set;
publicclassMemberimplementsjava.io.Serializable{
privatestaticfinallongserialVersionUID=7981560250892375432L;
privateIntegerid;
privateStringusername;
privateStringpassword;
publicMember(){
}
publicMember(Integerid){
this.id=id;
publicMember(Integerid,Stringusername,Stringpassword){
super();
this.username=username;
this.password=password;
publicIntegergetId(){
returnid;
publicvoidsetId(Integerid){
publicStringgetPassword(){
returnpassword;
publicvoidsetPassword(Stringpassword){
publicStringgetUsername(){
returnusername;
publicvoidsetUsername(Stringusername){
}
Hibernate配置文件Member.hbm.xml
<
?
xmlversion="
1.0"
encoding="
utf-8"
>
!
DOCTYPEhibernate-mappingPUBLIC"
-//Hibernate/HibernateMappingDTD3.0//EN"
"
--
MappingfileautogeneratedbyMyEclipsePersistenceTools
-->
hibernate-mapping>
<
classname="
com.yuanit.app.model.Member"
table="
member"
catalog="
demo"
idname="
id"
type="
java.lang.Integer"
columnname="
/>
generatorclass="
native"
/id>
propertyname="
username"
java.lang.String"
length="
50"
unique="
true"
/property>
password"
/class>
/hibernate-mapping>
2.sys
存放系统非业务代码
3.conf
存放系统配置文件
(1)struts2配置文件struts.xml,示例如下:
UTF-8"
DOCTYPEstrutsPUBLIC
"
-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
http:
//struts.apache.org/dtds/struts-2.0.dtd"
struts>
packagename="
admin"
extends="
struts-default"
<
interceptors>
<
interceptorname="
useSession"
class="
com.yuanit.app.interceptor.UserSessionInterceptor"
/>
/interceptors>
global-results>
resultname="
login"
freemarker"
/template/login.ftl<
/result>
input"
/template/error.ftl<
/global-results>
actionname="
goLogin"
adminAction"
method="
success"
/action>
doLogin"
/template/index.ftl<
error"
--
interceptor-refname="
-->
/package>
/struts>
(2)spring配置文件applicationContext.xml,示例如下:
beans
xmlns="
//www.springframework.org/schema/beans"
xmlns:
xsi="
//www.w3.org/2001/XMLSchema-instance"
aop="
//www.springframework.org/schema/aop"
tx="
//www.springframework.org/schema/tx"
xsi:
schemaLocation="
http:
//www.springframework.org/schema/beans
//www.springframework.org/schema/beans/spring-beans-2.5.xsd
//www.springframework.org/schema/aop
//www.springframework.org/schema/aop/spring-aop-2.5.xsd
//www.springframework.org/schema/tx
//www.springframework.org/schema/tx/spring-tx-2.5.xsd"
配置sessionFactory
1)org.springframework.orm.hibernate3.LocalSessionFactoryBean
2)org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
3)以下代码表示引用hibernate.cfg.xml配置文件
-->
beanid="
sessionFactory"
org.springframework.orm.hibernate3.LocalSessionFactoryBean"
configLocation"
value>
classpath:
hibernate.cfg.xml<
/value>
/bean>
--配置事务管理器-->
transactionManager"
org.springframework.orm.hibernate3.HibernateTransactionManager"
refbean="
tx:
adviceid="
smAdvice"
transaction-manager="
attributes>
methodname="
save*"
propagation="
REQUIRED"
delete*"
update*"
/tx:
advice>
aop:
configproxy-target-class="
pointcutid="
smMethod"
expression="
execution(*com.yuanit.app.impl.*ServiceImpl.*(..))"
advisorpointcut-ref="
advice-ref="
/aop:
config>
/beans>
(3)spring配置文件applicationContext-action.xml(action层),示例如下:
default-autowire="
byName"
default-merge="
com.yuanit.app.action.AdminAction"
scope="
prototype"
(4)spring配置文件applicationContext-service.xml(service层),示例如下:
(5)spring配置文件applicationContext-dao.xml(dao层),示例如下:
(6)hibernate配置文件hibernate.cfg.xml,示例如下:
DOCTYPEhibernate-configurationPUBLIC
-//Hibernate/HibernateConfigurationDTD3.0//EN"
hibernate-configuration>
session-factory>
--JDBC驱动程式-->
connection.driver_class"
com.mysql.jdbc.Driver<
--JDBCURL-->
connection.url"
jdbc:
mysql:
//localhost:
3306/demo<
--资料库使用者-->
connection.username"
root<
--资料库密码-->
connection.password"
--SQL方言,这边设定的是MySQL-->
dialect"
org.hibernate.dialect.MySQLDialect<
--显示实际操作资料库时的SQL-->
show_sql"
true<
--物件与资料库表格映射文件-->
mappingresource="
com/yuanit/app/model/Member.hbm.xml"
/session-factory>
/hibernate-configuration>
--Oracle
oracle.jdbc.driver.OracleDriver<
oracle:
thin:
@localhost:
1521:
HibernateTest<
123456<
org.hibernate.dialect.Oracle9Dialect<
onlyfun/caterpillar/User.hbm.xml"
onlyfun/caterpillar/Item.hbm.xml"
(7)jdbc配置文件jdbc.properties,示例如下:
#Mysql
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:
3306/example
jdbc.username=root
jdbc.password=root
##oracle
#jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:
ora9i
#jdbc.username=stamen
#jdbc.password=abc
(8)日志配置文件log4j.properties,示例如下:
log4j.rootLogger=DEBUG,A1
#log4j.rootLogger=DEBUG,A1,R
#log4j.rootLogger=INFO,A1,R
log4j.logger.org.hibernate=fatal
log4j.logger.org.springframework=DEBUG
.opensymphony=fatal
log4j.logger.org.apache=fatal
log4j.logger.freemarker.cache=fatal
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-ddHH:
mm:
ss,SSS}[%c]-[%p]%m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.MaxFileSize=500KB
log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-ddHH:
ss,SSS}[%t][%c][%p]-%m%n
#.opensymphony=INFO
#log4j.logger.org.apache.struts2=DEBUG
#.laoer=DEBUG
#.danga=ERROR
4.template
存放系统页面模板,示例代码login.ftl:
%@pagelanguage="
java"
import="
java.util.*"
pageEncoding="
%>
#--
#assigns=JspTaglibs["
/WEB-INF/struts-tags.tld"
]>
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
html>
head>
title>
SSH-登录页面<
/title>
metahttp-equiv="
pragma"
content="
no-cache"
cache-control"
expires"
0"
/head>
body>
@s.formname="
form1"
action="
>
@s.textfieldname="
label="
/@s.textfield>
@