图解SSH框架配置步骤
- 格式:docx
- 大小:533.95 KB
- 文档页数:19
MyEclipse开发SSH框架搭建(Struts+Spring+Hibernate)1.1. 新建工程操作:[Menu] File/New/Web Project工程名:school2. Struts 部分2.1. 添加Struts 功能支持操作:选1.3将Base package for new classes改为com.dp.school 2.2. 创建ActionForm 类操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.3 Form 类名:LoginFormuserCase:LoginForm type: com.dp.school.actionForm.LoginForm在“Form Properties” 选项卡为loginForm 新增两个属性:userName、password;在“JSP” 选项卡钩选“Create JSP form” 选项,将新建路径改为“/user/login.jsp”(login.jsp文件将被自动创建)。
2.3. 创建Action 类操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.3 Action类名:LoginActionuserCase loginform选项卡的name点Browse…选loginFormInput Source点Browse…选user文件夹下的login.jsp2.4. 创建index.jsp 文件如果没有,创建index.jsp 文件,并添加一个指向login.jsp 的链接:<a href=”user/login.jsp”>Login</a>。
(user/login.jsp是school下路径,/user/login.jsp是绝对路径,直接http://localhost:8080/user/login.jsp)<%@page language="java"import="java.util.*"pageEncoding="GB2312"%> <%String path = request.getContextPath();String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'index.jsp' starting page</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><a href="user/login.jsp">登陆</a></body></html>2.5. 创建Forword类操作:[Ctrl+N] MyEclipse/Web-Struts/Struts 1.3 Forword类名:indexForwordName: indexPagePath: /index.jsp2.6. 修改LoginAction.java 文件修改LoginAction 类的execute 方法:/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl */package com.dp.school.action;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.dp.school.actionForm.LoginForm;/*** MyEclipse Struts* Creation date: 11-06-2009** XDoclet definition:* @struts.action path="/login" name="loginForm" input="/user/login.jsp" scope="request" validate="true"*/public class LoginAction extends Action {/** Generated Methods*//*** Method execute* @param mapping* @param form* @param request* @param response* @return ActionForward*/public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stubString userName = loginForm.getUserName();String password = loginForm.getPassword();if(userName.equals("test")||password.equals("test")){return mapping.findForward("indexPage");}else{return mapping.getInputForward();}}}2.7. 修改login.jsp 文件修改<html:form> 标签:<html:form action=”/login”>。
图解SSH框架配置步骤核心提示:现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。
1 开发环境 MyEclipse5.5 JDK 1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为 ssh 做好准备 2.1 下载包 Struts2现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。
1 开发环境MyEclipse5.5JDK 1.6Java EE 5.0Tomcat6.0Struts2.1.6Spring2.5.6Hibernate3.3.12 为ssh做好准备2.1下载包Struts2.1.6包下载:/download.cgi#struts216Full Distribution:o struts-2.1.6-all.zip (110mb) [PGP] [MD5]Hibernate3.3包下载:https:///6.htmlSpring2.5下载:/download2.2搭建开发环境打开MyEclipse,新建一个web project,如图:注意:J2ee版本设为java ee 5.0点击Finish完成,建好的工程如图:如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:打开MyEclipse Preferences窗口,展开目录树如下图:设置好你的tomcat6的路径即可,前提你要先安装好tomcat哦。
还有需要注意的一点是,看到目录树tomcat6.x下面的JDK了吗?点击它,也要把tomcat的JDK设为jdk1.6才行,以与myeclipse一致。
好了,工程已经建好了,下面就开始配置struts吧。
配置之前先把struts的包下载下来哦,下载地址上面已经给出了。
搭建SSH框架:Struts1.* + Spring2.5 + Hibernate3.0 一,项目结构:图(1)Jsp页面省略,主要是一些添删改查的页面;二,开始搭建项目环境,步骤如下:使用平台:MyEclipse6.0/6.5框架版本:Struts1.* + Spring2.5 + Hibernate3.0;1,添加过程:1>,新建项目: 打开MyEclipse,在Package Explorer视图下,右键单击New-> Web Project;注意:在新建项目时,JDK的版本最好要选择Java EE 5.0;因为版本过低,可能有些JSP方面的功能不支持;新建玩项目之后,把该导的包导入到下面,下图为SS H 框架所需要的Jar包,注意,该项目用的是ORACLE数据库;其中,activation与mail这两个包为Java发邮件的包;classes12为Oracle数据库的驱动包,如果不是Oracle数据库,可更换该Jar包;dwe为Ajax dwr 框架中的包;2>,接着就开始用MyEclipse辅助开发Struts,Spring,Hibernate了;3>,首先MyEclipse辅助开发Struts,方法:右键单击你所建的项目,出现一级菜单,选择Myeclipse,选择Myeclipse之后会出现二级菜单,接着选择Add Struts Capabilities;;接着具体操作如下面图示:点击Finish按钮完成;完成之后,可将包删除;在上图中,如果那个勾没有去掉的话,就会自动生产如下标签:当然,如果你觉得标签对你没什么用的话,可以删除;如果该勾去掉的话,就只生成标签,这是Struts的核心标签;4>,MyEclipse辅助开发Spring,方法跟上面的一样,选择Add Spring apabilities;;接着具体操作如下面图示:然后点击Next,具体操作如下图:接着点击 Finish按钮,完成此项操作;5>,,最后MyEclipse辅助开发Hibernate,在执行和上面类似方法之前,Hibernate 需要先做另外一件事情,那就是和数据建立连接,具体操作如下图:点击上图位置的或者右边的>> ,然后再选择MyEclipse Database Explorer切换到如下图页面:,然后右键单击,新建一个Database Driver;如下图:下面这个截图是该项目的数据库链接图:如图所示,测试数据库链接成功;然后可直接点击Finish完成;接着切换到窗口,按照上面第三小步的方法,选择Add Hibernate apabilities;;接着具体操作如下面图示:点击下一步:点击下一步:点击下一步:点击下一步:点击 Finish 完成;6>,最后一步,就是运用Hibernate的映射机制,把数据库的表与JAVA的对形成一个关系映射;在此之前,首先应该在项目SRC的目录下面新建一个包,如该项目所示,用来存放映射生成的POJO对象以及映射文件;如下图:有一点说一下,你生成的*.hbm.xml文件可能不止一个,对,你可以把它们整合到一个文件中;然后新建按第五小步的方法,把窗口切换到MyEclipse Database Explorer界面,然后打开右键刚才所建立的链接,选择属于你自己的用户;然后选择Tble;右键选择如上图的属性:接下来的操作如下图:点击 Next,进入下一步:点击 Next,进入下一步:至此,项目环境己经搭建完成;三,项目搭建完成,SSH各个部分配置文件的说明,以及它们之间存在的关系:1,首先是Struts的核心配置文件,即struts-config.xml:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN""/dtds/struts-config_1_2.dtd"><struts-config><data-sources /><form-beans><!—建立Form表单,在此处进行登记 -→<form-bean name="userForm"type="erForm" /> </form-beans><global-exceptions /><global-forwards /><!—各个Action对应与之相对应的表单 -→<action-mappings><!-- 用户管理 --><action parameter="opers" attribute="userForm" name="userForm"path="/doUser" scope="request"><forward name="login_ok" path="/welcome.jsp"></forward><forward name="login_no" path="/index.jsp"></forward> </action></action-mappings><controllerprocessorClass="org.springframework.web.struts.DelegatingRequestProc essor"></controller><message-resourcesparameter="ermanagerview.struts.ApplicationResources"> </message-resources><!—Spring辅助Struts管理Struts-→<plug-inclassName="org.springframework.web.struts.ContextLoaderPlugIn"><set-property property="contextConfigLocation"value="/WEB-INF/action-servlet.xml" /></plug-in></struts-config>2,其次就是Springd的applicationContext.xml文件和action-servlet.xml文件:applicationContext.xml文件:<?xml version="1.0" encoding="UTF-8"?><beansxmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.5.xsd"><!-- Session 工厂 --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml"><!-- 可以不要配置文件(hibernate.cfg.xml),直接写在这个Spring的配置文件中 --></property></bean><!-- 模板 --><bean id="hibernateTemplate"class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 事务器 --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManage r"><property name="sessionFactory" ref="sessionFactory" /> </bean><!-- 对外代理 --><!-- 1,用户管理 --><bean id="userDaoImp"class="erDaoImp"><property name="hibernateTemplate" ref="hibernateTemplate" /> </bean><bean id="userServiceTarget"class="erServiceImp"> <property name="userdao"><ref local="userDaoImp" /></property></bean><bean id="userService"class="org.springframework.transaction.interceptor.TransactionProxyF actoryBean"><property name="transactionManager"><ref local="transactionManager" /></property><property name="target"><ref local="userServiceTarget" /></property><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean></beans>action-servlet.xml文件:<!—Spring辅助Struts管理Struts-<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-2.0.xsd"> <bean name="/doUser"class="erAction"scope="prototype"></bean></beans>3,最后就是Hibernate的hibernate.cfg..xml文件:<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""/hibernate-configuration-3.0.dtd"><!-- Generated by MyEclipse Hibernate Tools. --><hibernate-configuration><session-factory><property name="ername">wangxiaodong</property><property name="connection.url">jdbc:oracle:thin:@192.168.0.2:1521:ALIZEEDB</property><property name="dialect">org.hibernate.dialect.Oracle9Dialect</property><propertyname="myeclipse.connection.profile">Test</property><property name="connection.password">donny</property><property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property><mappingresource="com/ygkq/usermanager/model/entity/User.hbm.xml" /></session-factory></hibernate-configuration>该文件基本上不用动,都是自动生成的代码;当然,你也可以根据自己的需要添加代码,例如,你想在执行HQL语句的时候让它显示SQL语句,可将<property name="hibernate.show_sql">true</property>插入代码中;另外在图(1)中还有两个配置文件没有提到,那就是log4j.properties 与mytag.tld;其中log4j.properties是配置日志信息的;而mytag.tld主一个自定义标签;四,SSH框架搭建完成:SSH框架基本搭建完成,如果有不对或者不妥之处,请随时指教!~E-mail:jerry8059@。
搭建SSH框架步骤一、建数据库二、建Web工程打开Eclipse在工程栏—>鼠标右击New—>选择Web project—>project Name输入Demo;勾起Java 5.0单选按钮—>完成—>在Src文件夹下创建dal、bll、entity、、bll.action三个包以及两个子包。
三、添加框架1. 添加Struts选中所建的Web工程—>鼠标右击选择MyEclipse—>选择Add StrutsCapabilites…—>Struts specification选择Struts1.2;Base package fornew class单击Brouse选择文件路径为dal包;勾掉多选按钮Install StrutsTLDs —>完成2. 添加Spring选中所建的Web工程—>鼠标右击选择MyEclipse—>选择Add SpringCapabilites…—>勾起多选按钮Spring 2.5 Aop Libraries;勾起多选按钮Spring 2.5 Core Libraries;勾起多选按钮Spring 2.5 Persistence Core;勾起多选按钮Spring 2.5 Web Libraries;勾起单选按钮Copy checked Librarycontents…—>单击Browse选择路径为WEB-INF包—>完成3. 添加Hibernate选中所建的Web工程—>鼠标右击选择MyEclipse—>选择Add HibernateCapabilites…—>勾起单选按钮Copy checked Library Jars to…—>选择Spring configuration file—>选择Existing Spring configuration file;SessionFactory Id 输入sessionFactory —>BeanId输入DemoBean;DBDriver选中自己所建的数据库—>勾掉Create Session Factory class? —>完成4. 将SSH架包粘贴到lib文件夹下5. 展开工程中的Referenced Libraries 文件夹(架包文件夹)—>在展开的文件中找到asm-2.23.jar文件—>右击Build path—>选择Remove from Build path —>删除文件asm-2.23.jar四、创建数据单击Eclipse右上角的MyEclipse Hibernate 按钮—>鼠标右键New—> Driver template 下拉选择Microsofe SQLServer 2005;Drever name输入DemoDB;Connection URL 输入jdbc:sqlserver://localhost:1433;User name 输入sa; password输入123456;单击Add JARs 按钮导入jdbc 包;勾起Save password多选按钮—>勾起Display the selected schemas 单选按钮;单击Add按钮导入数据库—>完成—>鼠标右击数据栏刚才所建的数据—>单击Open Connection —>选择dbo —>TABLE—>找到对应的表—>右击Hibernate Reverse Euginnering…—>单击Java src folder 的Brouse按钮选择包entity;勾Creat POJO <>DB…;勾起Java Data Object…;勾起Java Data Access Object…;勾掉Java Data Object…下面的Create abstract class—>在Id Generator 下框中选择native—>勾起Include referenced tables(AB;勾起Include referencing tables(AB;可以给表或者其中的属性起相应的名字,当然也可以不起让其自动生成—>完成五、配置XML文件1.配置Struts-config.xml文件在下面添加标签注:找到Referenced Libraries 包下面的spring-webmvc-struts . jar包复制文件即可。
SSH框架搭建详细图⽂教程⼀、什么是SSH?SSH是JavaEE中三种框架(Struts+Spring+Hibernate)的集成框架,是⽬前⽐较流⾏的⼀种Java Web开源框架。
SSH主要⽤于Java Web的开发。
现在SSH有SSH1和SSH2两种,区别在于Struts的版本是struts1.x还是2.x。
本⽂介绍的是SSH1。
⼆、Struts Spring Hibernate各起什么作⽤?Struts:控制逻辑关系。
Spring:解耦。
Hibernate:操作数据库。
三、学习SSH的⼀些建议SSH适合开发⼀些中、⼤型的企业级⽹站。
功能强⼤,性能也⾼。
但是学习成本也⾼,⿇烦也不少,不擅长做⼩型⽹站或便捷开发。
如果你熟悉Java并准备做动态⽹站的开发,SSH值得学习,如果你不熟悉Java,或没有⼀定的编程经验,只想做个简单的个⼈⽹站或者论坛。
PHP也许更适合你。
四、准备⼯作俗话说:“⼯欲善其事必先利其器”。
让我们看看在搭建SSH前需要准备哪些⼯具吧。
1.JDK[] [] []做Java开发第⼀步当然是Java开发环境了,JDK是必备的,本⽂中⽤的是jdk-8u111。
2.MyEclipse[] [] []搭建SSH最好⽤的开发⼯具了,本⽂中⽤的是MyEclipse 10。
3.MySQL[] [] []完整的动态⽹站需要⼀个数据库。
注意安装时设置的密码千万别忘了。
本⽂中⽤的是MySQL 5.5.53。
4.Navicat for MySQL[] [] []MySQL可视化开发⼯具,主要⽤他来操作数据库。
本⽂中⽤的是Navicat for MySQL 10.1.75.JDBC[] []数据库连接池,这是Java连接数据库必备的jar包。
本⽂中⽤的是mysql-connector-java-5.0.8-bin.jar。
安装顺序:JDK > MyEclipse > MySQL > Navicat for MySQL⽹站结构和开发⼯具作⽤如下图:五、搭建SSH步骤开发⼯具下载安装完毕后,正式进⼊搭建步骤。
SSH框架用法1. 什么是SSH框架SSH框架是一种用于构建分布式系统的开发框架,它由三个关键组件组成:Spring、Struts和Hibernate。
这三个组件分别负责处理应用程序的业务逻辑、Web层和数据访问层。
通过将它们集成在一起,SSH框架提供了一个完整的解决方案,使开发人员能够更快速、更高效地开发和维护复杂的分布式系统。
2. SSH框架的优势SSH框架具有以下几个优势:•模块化:SSH框架将整个应用程序划分为不同的模块,每个模块负责不同的功能。
这种模块化设计使得应用程序易于维护和扩展。
•松耦合:SSH框架使用依赖注入(Dependency Injection)来管理各个组件之间的依赖关系。
这种松耦合的设计使得各个组件可以独立开发、测试和部署。
•高效性能:SSH框架采用了多种优化技术,如缓存、懒加载等,来提高应用程序的性能。
同时,Hibernate作为数据访问层的组件,可以利用其自身的缓存机制来减少数据库访问次数,进一步提高性能。
•安全性:SSH框架提供了多种安全措施,如用户认证、权限控制等,以保护应用程序的安全。
同时,SSH框架还支持HTTPS协议,可以加密数据传输,提高数据的安全性。
3. SSH框架的核心组件SSH框架由三个核心组件组成:•Spring:Spring是一个轻量级的Java开发框架,它提供了依赖注入、面向切面编程等功能。
在SSH框架中,Spring负责处理应用程序的业务逻辑。
通过使用Spring的IoC容器和AOP技术,开发人员可以更方便地管理各个业务组件之间的依赖关系,并实现横切关注点的模块化。
•Struts:Struts是一个基于MVC设计模式的Web开发框架,它负责处理应用程序的Web层。
在SSH框架中,Struts作为前端控制器接收用户请求,并将请求转发给相应的业务处理组件。
通过使用Struts的标签库和拦截器机制,开发人员可以更方便地实现表单验证、页面跳转等功能。
SSH框架的搭建详细图⽂教程转载-6.在MySQL中新建⼀个表,⽤来测试数据我在这⾥准备做⼀个注册登录功能,所以在test⾥建了⼀个user表,表⾥的字段有id、username、password、nickname四个字段。
nickname⽤来测试中⽂是否乱码。
SQL语句:CREATE TABLE `user` (`id` bigint(20) unsigned NOT NULL auto_increment COMMENT 'ID',`username` varchar(40) character set utf8 NOT NULL COMMENT '⽤户名',`password` varchar(40) collate utf8_unicode_ci NOT NULL COMMENT '密码',`nickname` varchar(40) character set utf8 NOT NULL COMMENT '昵称',PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ciCOMMENT='⽤户信息表';SSH框架搭建步骤:1. 新建⼀个项⽬。
打开MyEclipse,新建⼀个Web项⽬,起名就叫SSH,点击完成,若弹出提⽰点Yes即可。
2.添加Struts框架。
右键这个项⽬,选择MyEclipse->Add StrutsCapabilities。
在弹出的菜单中把包的路径改⼀下, Base package for new classes选项中的路径com.yourcompany.struts改成com.ssh.struts, 点击完成。
展开WebRoot中的WEB-INF⽂件夹,看到⽬录结构如下图,证明Struts框架添加完成。
ssh框架开发流程SSH框架开发流程。
SSH框架是指Struts、Spring、Hibernate三大开源框架的整合,它们分别解决了Web层、业务逻辑层和数据访问层的开发问题。
在实际开发中,SSH框架已经成为了Java企业级应用开发的主流技术之一。
下面我们将详细介绍SSH框架的开发流程。
1. 环境搭建。
在进行SSH框架开发之前,首先需要搭建好相应的开发环境。
我们需要安装好JDK、Tomcat、Maven等开发工具,并且配置好相应的环境变量。
另外,还需要引入Struts、Spring、Hibernate等框架的jar包,并且进行相应的配置。
2. 创建项目。
在环境搭建完成之后,我们可以开始创建SSH项目。
通过Maven创建一个新的Web项目,然后在项目中引入Struts、Spring、Hibernate等框架的依赖。
接着,我们需要配置web.xml、struts.xml、spring.xml、hibernate.cfg.xml等配置文件,以及相应的数据库连接配置。
3. 编写实体类。
在项目创建完成之后,我们需要编写实体类来映射数据库中的表结构。
通过Hibernate的注解或者XML配置来定义实体类与数据库表的映射关系,确保实体类与数据库表字段的一一对应。
4. 编写DAO层。
接下来,我们需要编写DAO层的代码,用于实现数据访问的功能。
在Hibernate中,我们可以使用HibernateTemplate或者SessionFactory来进行数据库操作,实现数据的增删改查等功能。
5. 编写Service层。
在DAO层编写完成之后,我们需要编写Service层的代码,用于实现业务逻辑的处理。
在Service层中,我们可以调用DAO层的方法来实现业务逻辑的处理,并且可以进行事务管理等操作。
6. 编写Controller层。
最后,我们需要编写Controller层的代码,用于接收用户的请求并且进行相应的处理。
在Struts框架中,我们可以通过Action来处理用户的请求,并且可以将请求转发到相应的JSP页面进行展示。
SSH框架开发的使用流程
1. 简介
SSH框架是一种结合了Spring、Struts和Hibernate三个开源框架的一种开发模式,它能够提供简洁、高效的企业级应用开发环境。
本文将介绍SSH框架的使用流程。
2. 准备工作
在使用SSH框架进行开发之前,需要进行一些准备工作:
•安装Java开发环境:确保计算机上已安装Java JDK。
•下载相关框架:从官网下载并解压Spring、Struts和Hibernate的最新版本。
•配置开发环境:将框架的jar文件导入到开发工具(如Eclipse)的项目中,并配置相关的Java类路径。
3. 创建项目
使用SSH框架进行开发,首先需要创建一个新的项目。
按照以下步骤创建SSH 项目:
1.在开发环境中创建一个新的Java项目。
2.导入Spring、Struts和Hibernate相关的jar文件。
3.配置项目的web.xml文件,设置项目的入口类和相关的配置文件路
径。
4.创建一个包用于存放Java类文件。
4. 配置Spring
在SSH框架中,Spring用于管理对象的创建和依赖注入。
按照以下步骤配置Spring:
1.在项目中创建一个Spring配置文件,通常命名为
applicationContext.xml。
2.在配置文件中定义需要管理的Java对象,使用<bean>标签指定对象
的类名和属性。
3.配置数据源,Spring可以通过数据源连接到数据库。
例如,以下是Spring配置文件的示例:
```xml <bean id=。
详解ssh框架原理及流程什么是SSHSSH是 struts+spring+hibernate的⼀个集成框架,是⽬前较流⾏的⼀种web应⽤程序开源框架。
SSH不是⼀个框架,⽽是把多个框架(Struts、Spring以及Hibernate)紧密的结合在⼀起,⽤于构建灵活、易于扩展的多层Web应⽤程序。
SSH框架的系统从职责上分为四层:表⽰层、业务逻辑层、数据持久层和域模块层(实体层)。
SSH(Struts2+Spring+Hibernate)框架的项⽬,该架构主要分为三个层次:(1)Struts2:负责web层(2)Spring:业务层的管理(3)Hibernate:负责数据持久化Struts2⼯作原理:1.初始化⼀个指向servlet容器的请求。
2.请求经过web.xml中配置的过滤器过滤,FilterDispatcher(struts2控制器的核⼼)询问ActionMapper是否需要调⽤某个Action来处理这个请求。
如果ActionMapper决定需要调⽤某个Action,FilterDispatcher则把请求的处理交给ActionProxy。
3.ActionProxy通过配置⽂件Struts.xml配置⽂件找到需要调⽤的Action类。
4.ActionProxy创建⼀个ActionInvocation实例,同时ActionInvocation通过代理模式调⽤Action。
但在调⽤之前,ActionInvocation会根据配置加载Action相关的所有Interceptor(拦截器)。
5.Action执⾏完毕后,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果result。
即开发⼈员通过发送http请求,这个请求经过web.xml的过滤器过滤看看是否要调⽤某个action,如果有则在Struts.xml找到该请求的实现的⽅法,然后返回运⾏的结果。
Hibernate⼯作原理:1. 读取并解析配置⽂件2.读取并解析映射信息,创建SessionFactory3. 打开Sesssion4.创建事务Transation5. 持久化操作6.提交事务7.关闭Session8. 关闭SesstionFactory即通过spring管理的Hibernate初始化时加载了xxx.hbm.xml然后读取解析映射信息,创建了SessionFactory。
搭建SSH2框架详细步骤、SSH2框架整合的步骤和原理SSH2框架整合的详细步骤如下:1、新建一个web工程,并且设置其编码形式为utf-82、所有的jsp页面设置成utf-83、建立三个Source foloder:src、config、test1)src存放源代码2)config目录下新建三个packagespring存放spring的配置文件struts2存放struts的配置文件hibernate存放hibernate的配置文件3)test 存放测试类4、准备相应的jar包Lib目录下添加文件夹,在对应的文件夹中放入相应的包dbhibernatejunitspringstruts2jstl5、准备jsp页面要存放的位置WEB-INF/jsppostuser6、准备dao和daoImpl,以及service 和serviceImpl7、在test中新建测试类,测试声明式事务处理是否正确8、准备action9、配置web.xml10、配置struts.xml11、配置OpenSessionInView模式它是通过延长session的时间来保证的在懒加载的时候需要用到因为session的一级缓存保存在session中,如果延长session的关闭就意味着一级缓存中的数据会停留在内存中,这样内存开销会比较大SSH2整合的原理:启动tomcat,系统会自动加载读取web.xml<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listen er-class></listener>当tomcat启动的时候,上面的监听器就开始运行了,就会启动spring容器,就会加载配置文件,纳入spring管理的bean就会生成对象对象包括:action,do,service,代理对象在struts.xml中有如下配置:<constant name="struts.objectFactory" value="spring" />上述的配置告诉struts容器,action对象的生成由spring容器负责<action name="xxxAction_*" method="{1}" class="xxxAction">struts容器会根据class属性的值在spring容器中跟所有的ID进行匹配,如果匹配成功则找到相应的action<action name="xxxAction_*" method="{1}" class="包目录. XxxAction">上述的写法会按照类型进行匹配。
一.S SH框架搭建1.导入对应的jar包;2.配置数据源:在applicationContext.xml文件中添加一个名称为dataSource的<bean>,指向的类为DriverManagerDataSource的数据源类(也可以配置指向的类为DBCP的数据源类,需要导入commons-dbcp.jar包),并指定4个数据参数;<bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"destroy-method="close"><!-- 指定连接数据库驱动 --><property name="driverClassName"value="com.mysql.jdbc.Driver" /><!-- 指定连接数据库url --><property name="url"value="jdbc:mysql://localhost:3306/liber_db" /><!-- 指定连接数据库用户名,密码为空 --><property name="username" value="root" /><property name="password" value="root" /></bean><!-- DBCP配置数据源 --><bean id="dataSource" class="mons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url"value="jdbc:mysql://localhost:3306/SSH?useUnicode=true&characterEncoding =UTF-8"/><property name="username" value="root"/><property name="password" value="root"/><!-- 连接池启动时的初始值 --><property name="initialSize" value="1"/><!-- 连接池的最大值 --><property name="maxActive" value="500"/><!-- 最大空闲值.当经过一个高峰时间后,连接池可以慢慢将已经用不到的连接慢慢释放一部分,一直减少到maxIdle为止 --><property name="maxIdle" value="2"/><!-- 最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --><property name="minIdle" value="1"/></bean>3.配置SessionFactory对象,为DAO层提供Hibernate的数据库连接对象。
一:新建一web项目(score2)二:添加spring功能,选择如下lib:? spring2 core? spring2 persistence core? spring2 aop? spring2 persistence jdbc? spring2 web? spring2 testing? hibernate3.2 core三:添加hibernate功能? sessionFactory id:sessionFactory? datasource id: dataSource? (注意:添加common-pool.jar,去掉spring aop中asm-2.2.3.jar)? 通过向导已经在app.xml中配置了一个id为sessionFactory的 bean,这时候,在配置上,? 已经完成了spring和hibernate的集成? ?? show_sql:<prop key="hibernate.show_sql">true</prop>? 指定hbm文件所在路径:? <property name="mappingDirectoryLocations"><list><value>classpath:com/model</value></list></property>四:添加struts功能五:web启动的时候,自动启动spring? 在web.xml中添加如下信息? <1>:配置contextConfigLocation参数,指定spring配置文件的位置? <context-param>? <param-name>contextConfigLocation</param-name>? <param-value>classpath:app.xml</param-value>? </context-param>? <2>:配置一监听器,启动spring? <listener>?<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>? </listener>六:struts和spring的集成:所谓spring和struts的集成,是指将struts的action托管给spring,? 也是指把struts的action交给spring管理,由spring完成action的依赖注入等工作? <controller><set-property property="processorClass" value="org.springframework.web.struts.AutowiringRequestProcessor" />? </controller>? <message-resources parameter="ApplicationResources" />七:放一个log4j.properties 到src八:配置openSesisonInView过滤器? <!-- spring提供的用来实现hibernate的opensessionInview的过滤器 --><filter><filter-name>openSessionInView</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class><!-- 通过这个参数指定打开session所用到的session工厂的名字,如果session工厂的名字为“sessionFactory”,此参数可以不用指定--><init-param><param-name>sessionFactoryBeanName</param-name><param-value>sessionFactory</param-value></init-param></filter><filter-mapping><filter-name>openSessionInView</filter-name><url-pattern>*.do</url-pattern></filter-mapping>九:配置字符编码过滤器? <!-- spring提供的用來統一編碼的 filter--><filter><filter-name>characterEncoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param>? <!-- 使用utf-8编码 --><param-name>encoding</param-name><param-value>utf-8</param-value></init-param><init-param>? <!-- 强制使用--><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-name>characterEncoding</filter-name><url-pattern>/*</url-pattern></filter-mapping>十:配置xdoclet十一:使用sitemesh做布局? 1、sitemesh.jar? 2、web.xml添加过滤器? <filter><filter-name>sitemesh</filter-name><filter-class>com.opensymphony.module.sitemesh.filter.PageFilter </filter-class></filter><filter-mapping><filter-name>sitemesh</filter-name><url-pattern>*.do</url-pattern></filter-mapping>? 3、模板文件放到decorators文件夹? 4、WEB-INF下的decorators.xml十二:AJAX: dwr的配置? 1. dwr.jar? 2、dwr的servlet? ?? <servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class><!-- This should NEVER be present in live --><init-param><param-name>debug</param-name><param-value>true</param-value></init-param><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern>3、web-inf/dwr.xml十三:配置spring的聲明式事務處理? 1、在app.xml中添加tx命名空間? 2、<tx:annotation-driven transaction-manager="transactionManager" /><bean id="transactionManager"? class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean>十四:使用scope为session或request的bean? 1、 <!-- 可以使用scope 为request或session的bean --><listener><listener-class> org.springframework.web.context.request.RequestContextListener </listener-class></listener>? 2、<bean id="pageHolder"class="org.springframework.beans.support.PagedListHolder" scope="session"><property name="pageSize" value="5" /><property name="maxLinkedPages" value="5" />? <!--做一个代理来匹配长生命周期的对象 --><aop:scoped-proxy/></bean>。
ssh框架原理及流程SSH框架原理及流程。
SSH框架是指Struts+Spring+Hibernate的整合开发框架,它将三大开源框架整合在一起,使它们可以协同工作,相辅相成,为JavaEE开发提供了一种完整的解决方案。
本文将介绍SSH框架的原理及流程。
首先,我们来了解一下SSH框架的原理。
SSH框架是由Struts 作为MVC的Web层框架、Spring作为业务逻辑和数据访问层的IoC 容器和AOP框架、Hibernate作为持久层的ORM框架组成。
这三者分别负责不同的功能,通过整合,实现了各自的优势互补,形成了一个完整的开发框架。
其中,Struts负责接收用户请求,调度控制器和视图,Spring负责管理业务逻辑和数据访问,Hibernate负责持久化数据,实现了业务逻辑和数据访问的分离。
接下来,我们来看一下SSH框架的流程。
首先,用户发送请求到Struts的Action,Action接收请求后调用业务逻辑层的Service,Service再调用数据访问层的DAO,DAO通过Hibernate 实现对数据库的操作。
在这个过程中,Spring负责注入Service和DAO,管理事务,控制事务的提交和回滚。
最终,数据经过DAO和Hibernate的处理后返回到Action,由Struts将数据展示给用户。
整个流程中,各个组件各司其职,协同工作,实现了一个完整的开发流程。
在实际开发中,SSH框架的应用可以极大地提高开发效率和代码质量。
Struts提供了良好的MVC分离,使得前端开发更加清晰,易于维护;Spring提供了依赖注入和面向切面编程,使得业务逻辑的开发更加简洁,易于测试;Hibernate提供了对象关系映射,使得数据访问更加方便,避免了手写SQL语句的繁琐。
整合后的SSH 框架,不仅继承了各个框架的优点,还解决了各个框架之间的兼容性和整合性问题,使得开发更加高效、灵活和可维护。
总的来说,SSH框架的原理是将Struts、Spring和Hibernate 整合在一起,各司其职,相互配合,形成一个完整的开发框架;而SSH框架的流程是用户请求经过Struts、Spring和Hibernate的处理,最终返回给用户,各个组件之间相互协作,实现了一个完整的开发流程。
SSH三⼤框架的⼯作原理及流程摘要: Hibernate⼯作原理及为什么要⽤? 原理: 1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置⽂件 2.由hibernate.cfg.xml中的读取并解析映射信息 3.通过config.buildSessionFactory();//创建SessionFactory 4.sessionFactoryHibernate⼯作原理及为什么要⽤?原理:1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置⽂件2.由hibernate.cfg.xml中的读取并解析映射信息3.通过config.buildSessionFactory();//创建SessionFactory4.sessionFactory.openSession();//打开Sesssion5.session.beginTransaction();//创建事务Transation6.persistent operate持久化操作7.session.getTransaction().commit();//提交事务8.关闭Session9.关闭SesstionFactory为什么要⽤:1. 对JDBC访问数据库的代码做了封装,⼤⼤简化了数据访问层繁琐的重复性代码。
1. Hibernate是⼀个基于JDBC的主流持久化框架,是⼀个优秀的ORM实现。
他很⼤程度的简化DAO层的编码⼯作2. hibernate使⽤Java反射机制,⽽不是字节码增强程序来实现透明性。
3. hibernate的性能⾮常好,因为它是个轻量级框架。
映射的灵活性很出⾊。
它⽀持各种关系数据库,从⼀对⼀到多对多的各种复杂关系。
2. Hibernate是如何延迟加载?1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection)1. Hibernate3 提供了属性的延迟加载功能当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从⽽提⾼了服务器的性能。
图解SSH框架配置步骤转自/course/open/12486.html核心提示:现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。
1 开发环境MyEclipse5.5 JDK1.6 Java EE 5.0 Tomcat6.0 Struts2.1.6 Spring2.5.6 Hibernate3.3.1 2 为ssh做好准备 2.1 下载包Struts2现在开发的一个项目使用S2SH框架,配置环境用了一两天,现在把当时配置环境时写的文档整理下发出来,也算加强点记忆。
1 开发环境Ø MyEclipse5.5Ø JDK 1.6Ø Java EE 5.0Ø Tomcat6.0Ø Struts2.1.6Ø Spring2.5.6Ø Hibernate3.3.12 为ssh做好准备2.1下载包Ø Struts2.1.6包下载:/download.cgi#struts216Full Distribution:o struts-2.1.6-all.zip (110mb) [PGP] [MD5]Ø Hibernate3.3包下载:https:///6.htmlØ Spring2.5下载:/download 2.2搭建开发环境打开MyEclipse,新建一个web project,如图:注意:J2ee版本设为java ee 5.0点击Finish完成,建好的工程如图:如果你的myeclipse还没有配置一个web服务器,那就进行下面的步骤,这里以tomcat6为例:打开MyEclipseàPreferences窗口,展开目录树如下图:设置好你的tomcat6的路径即可,前提你要先安装好tomcat哦。
还有需要注意的一点是,看到目录树tomcat6.x下面的JDK了吗?点击它,也要把tomcat的JDK设为jdk1.6才行,以与myeclipse一致。
好了,工程已经建好了,下面就开始配置struts吧。
配置之前先把struts的包下载下来哦,下载地址上面已经给出了。
3 配置Struts2.03.1 基础配置1)引入Struts必需的五个jar包。
下载struts-2.1.6-all.zip解压后,struts-2.1.6\lib 目录下是struts所有的相关jar包。
这么多jar包并不是struts必须得,使用struts 只需要把下面五个引入即可,以后用到什么jar包,再引入。
² Commons-logging-1.0.4.jar² Freemarker-2.3.13.jar² Ognl-2.6.11.jar² Struts2-core-2.1.6.jar² Xwork-2.1.2.jar2)修改WEB-INF下的web.xml文件,增加struts2的配置。
增加代码如下:这些配置代码对于struts2是不变的,直接复制到web.xml即可。
<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>3)添加struts配置文件。
在WEB-INF/classes目录下,新建struts.xml,模版如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts></struts>好了,struts基本配置完毕,是不是很简单?现在把工程发布到tomcat上去测试一下,在工程名字上点击右键,选择MyEclipseàAdd and Remove project Deployments,在打开的窗口里,点击Add,选择我们之前配置好的tomcat6服务器,如下图:发布好了,启动tomcat,如果启动无异常,则说明配置成功。
注意:可能会出现struts-default.xml相关异常,根据提示引入相关jar包。
我测试的时候是缺少fileupload相关jar包,于是引入了commons-fileupload-1.2.1.jar。
3.2 配置一个Action下面开始配置一个Action吧,以用户登录为例:1)首先新建一个登陆页面login.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"></head><body><s:form name="form1" action="login" ><s:textfield name="username" label="username" ></s:textfield><s:password name="password" label="password" ></s:password><s:submit label="submit"></s:submit></s:form><s:actionerror/></body></html>2)在我们已经建好的struts.xml中来配置登录的action。
这里定义登录action的名字为login,配置代码如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><package name="struts2" extends="struts-default"><action name="login" class="test.LoginAction"><result name="success" type="redirect">index.jsp</result> <result name="input">login.jsp</result><result name="error">login.jsp</result></action></package></struts>3)下面就来编写具体的action类了。
代码如下:1package test;2import com.opensymphony.xwork2.ActionSupport;3public class LoginAction extends ActionSupport {4public String username;5public String password;6public String execute(){7if(!username.equals("admin")){8super.addFieldError("username", "用户名错误!");9return ERROR;10}11if(!password.equals("001")){12super.addFieldError("password", "密码错误!");13return ERROR;14}15return SUCCESS;16}17public void validate(){18if(username==null||username.length()==0){19super.addActionError("用户名不能为空");20}21if(password==null||password.length()==0){22super.addActionError("密码不能为空");23}24}25}264)好了,一个Action就创建完成了,重启tomcat测试一下吧。