简单易学_Struts_Spring__Hibernate_指导学生做ssh项目
ssh详解

SSH框架整合步骤详解SSH框架 2009-04-09 10:47:00 阅读611 评论0 字号:大中小订阅更系统地学习Struts1.x/Struts2.x+Hibernate+Spring,请学习该开源项目Appfuse终于,终于将SSH整合成功了,弄了几个小时,可以休息了(有的朋友弄了半个月,甚至重装了系统也没弄好,哎,庆幸啊)。
碰到问题千万不要放弃,要相信没有解决不了的问题!项目结构图:jsp部分为:index.jsp;success.jsp;fail.jspUserDAO.java,User.hbm.xml自动生成,HibernateSessionFactory 是多余的。
相关的配置文件、类文件详细信息,请参看Struts+Spring+Hibernate/SSH整合开发详细二以前是整过这三个框架的,可是工作期间都不曾用过,不知不觉之中,学的东西全忘了。
这次又要开始找工作了,看着招聘启事上都写着:要求熟练掌握Struts,Hibernate或Spring框架……,没得办法,重新学呗。
Spring in Action中文版下载地址(ftp协议)ftp://222.214.218.61/book5/20080228/cf8b35cc-5bcd-497 3-b6b7-37ae3ec78391.rar如果无法下载,可以在里重新搜索首先开始搭建项目环境,步骤如下:使用平台:MyEclipse 6.0框架版本:Struts 1.2 Hibernate 3.0 Spring 2.01>添加过程:<1> 新建项目。
Package Explorer视图下,右键单击 New -> Web Project;<2> 添加Struts框架。
菜单栏MyEclipse -> Capabilities,或者右键单击新建的项目名,选择快捷菜单中的"MyEclipse"下的二级菜单;设置相关的包名后,请写一个Struts的小例子,用来测试Struts是否可用;<3> 添加Spring。
搭建SSH框架(Struts1,Spring2.5,Hibernate3)

搭建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框架实验报告

ssh框架实验报告《SSH框架实验报告》SSH框架是指Struts2 + Spring + Hibernate的整合框架,它将三大框架有机地结合在一起,为Java开发人员提供了一种高效、稳定的开发方式。
在本实验中,我们对SSH框架进行了深入的研究和实验,以期能够更好地理解和掌握这一框架的使用方法和特点。
在实验中,我们首先进行了环境搭建,包括安装和配置Struts2、Spring和Hibernate框架,以及建立数据库连接等。
接着,我们创建了一个简单的Web应用程序,包括前端页面和后端业务逻辑,以便于对SSH框架进行测试和验证。
在这个过程中,我们深入了解了SSH框架的各个组成部分,包括Struts2的MVC模式、Spring的依赖注入和AOP特性,以及Hibernate的ORM映射和持久化操作。
通过实验,我们发现SSH框架具有以下几个特点:1. 结构清晰:SSH框架将前端页面、业务逻辑和数据持久化分离,使得应用程序的结构更加清晰和模块化,方便于开发和维护。
2. 灵活性强:由于整合了Struts2、Spring和Hibernate三大框架,SSH框架具有很强的灵活性,可以根据实际需求进行定制和扩展。
3. 性能优秀:通过对SSH框架进行性能测试,我们发现其在处理大规模数据和高并发访问时表现优秀,能够保持稳定的性能和响应速度。
4. 社区支持:由于SSH框架是目前Java开发领域最流行的整合框架之一,拥有庞大的用户群体和活跃的社区支持,能够及时获取到最新的技术资讯和解决方案。
总的来说,SSH框架是一种非常成熟和稳定的Java开发框架,具有广泛的应用前景和市场需求。
通过本次实验,我们对SSH框架有了更深入的了解和体验,相信在今后的开发工作中能够更加熟练地运用这一框架,为企业应用程序的开发和维护提供更好的技术支持。
SSH简单使用教程

SSH简单使用教程SSH(Secure Shell)是一种安全协议,旨在通过加密技术在网络中安全地传输数据。
它是一种远程登录协议,可以让用户通过互联网远程登录到远程服务器或远程主机上,并在感到安全的情况下执行命令。
SSH是替代传统不安全协议(如Telnet)的首选工具。
使用SSH,可以安全地远程管理和传输文件,而无需担心信息泄露和攻击。
本文将介绍SSH的基本使用方法,并提供一些SSH的实际应用场景。
1.配置SSH在开始使用SSH之前,需要做一些初始配置。
首先,在远程服务器上安装SSH服务,并确认SSH服务已经启动。
这可以通过以下命令来检查:```service ssh status```如果SSH服务未启动,可以使用以下命令启动:```service ssh start```另外,如果你使用的是Linux系统,需确保OpenSSH服务器软件包已经安装。
可以使用以下命令安装:```sudo apt-get install openssh-server```2.连接到远程服务器要连接到远程服务器,需要知道远程服务器的IP地址和登录凭据(用户名和密码)。
可以使用以下命令连接:``````其中,username是登录远程服务器的用户名,ip_address是远程服务器的IP地址。
3.密钥认证SSH还支持密钥认证,这是一种更安全和便捷的登录方式。
使用密钥认证,用户将生成一对密钥(公钥和私钥),将公钥放在远程服务器上,然后使用私钥进行登录。
要使用密钥认证,首先需要生成密钥对。
可以使用以下命令生成密钥对:```ssh-keygen -t rsa -b 4096```该命令将要求您提供保存密钥对的路径和密码。
生成密钥对之后,可以使用以下命令将公钥复制到远程服务器上:``````然后你就可以使用私钥进行登录了:``````4.SSH端口转发SSH还提供了端口转发功能,可以将本地端口转发到远程服务器上。
这对于访问位于防火墙后面的服务器或本地网络服务非常有用。
ssh框架 实验报告

ssh框架实验报告《SSH框架实验报告》一、实验目的本实验旨在通过对SSH框架的学习和实践,掌握SSH框架的基本原理和应用技巧,提高对SSH框架的理解和运用能力。
二、实验内容1. 理解SSH框架的概念和组成结构2. 搭建SSH框架的开发环境3. 编写基本的SSH框架应用程序4. 调试和测试SSH框架应用程序5. 总结和分析实验结果三、实验步骤1. 理解SSH框架的概念和组成结构通过阅读相关文献和资料,了解SSH框架的基本概念和组成结构,包括Struts、Spring和Hibernate三大框架的作用和相互关系。
2. 搭建SSH框架的开发环境在本地计算机上安装并配置好Java开发环境、Tomcat服务器、MySQL数据库,并下载安装好Struts、Spring和Hibernate框架的相关文件和插件。
3. 编写基本的SSH框架应用程序创建一个简单的SSH框架应用程序,包括前端页面的设计和开发、后端业务逻辑的编写和数据库的操作等内容。
4. 调试和测试SSH框架应用程序对编写好的SSH框架应用程序进行调试和测试,确保程序能够正常运行并达到预期的效果。
5. 总结和分析实验结果总结本次实验的收获和体会,分析在实践中遇到的问题和解决方法,以及对SSH框架的进一步学习和应用展望。
四、实验结果通过本次实验,我对SSH框架有了更深入的理解,掌握了搭建SSH框架的基本步骤和技巧,同时也发现了一些问题和需要改进的地方。
在实践中,我对SSH 框架的应用有了更清晰的认识,对于将来的开发工作也更有信心。
五、结论SSH框架是一种非常强大和灵活的开发框架,通过本次实验的学习和实践,我对SSH框架有了更深入的理解和掌握,相信在将来的工作中能够更好地应用和发挥其优势,提高开发效率和质量。
六、参考文献1. 《SSH框架入门与实战》2. 《Spring实战》3. 《Hibernate实战》4. 《Struts2权威指南》以上就是本次实验的实验报告,希望能够对大家对SSH框架的学习和应用有所帮助。
idea搭建ssh框架的超详细教程

idea搭建ssh框架的超详细教程⽬录⼀。
创建项⽬1.new->project出现如下2.构建⽬录结构⼆。
Struts21.⾸先引⼊struts2依赖2.WEB-INF下web.xml⽂件配置3.在resources下添加struts.xml⽂件4.在action包下创建TestAction类,为了测试在webapp下新建了test.jsp页⾯5.部署6.启动测试三。
Spring1.⾸先引⼊spring相关依赖2.在web.xml中添加listener,并在resources下新建spring,xml⽂件四。
Hibernate1.引⼊hibernate依赖2.View--》Toolwindows---->Database3.编写代码⼀。
创建项⽬先附上测试的数据库DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (`id` int(5) NOT NULL AUTO_INCREMENT,`name` varchar(10) COLLATE utf8_bin DEFAULT NULL,`password` varchar(10) COLLATE utf8_bin DEFAULT NULL,`remark` varchar(50) COLLATE utf8_bin DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('1', 'zhangsan', '123456', null);INSERT INTO `user` VALUES ('2', 'lisi', '123', null);INSERT INTO `user` VALUES ('3', 'wangan', '456', null);INSERT INTO `user` VALUES ('4', 'xinxi', '000', null);1.new->project出现如下点击next后出现如下填写GroupId和ArtifactId在点击next直⾄finish2.构建⽬录结构在main下新建java和resources⽬录如下并将java⽬录标记为Sources Root,resources标记为Resources Root在java下新建如下包package⼆。
ssh框架原理及流程

ssh框架原理及流程SSH框架原理及流程。
SSH框架是指Struts、Spring、Hibernate三大开源框架的整合,它们分别解决了Web层、业务逻辑层和数据访问层的开发问题。
SSH框架的整合,旨在充分发挥各自框架的优势,实现高效、灵活、可维护的Web应用程序开发。
在本文中,我们将深入探讨SSH框架的原理及流程。
首先,我们来了解一下SSH框架各个组成部分的原理。
Struts作为Web层框架,它采用MVC(Model-View-Controller)设计模式,将应用程序分为模型、视图和控制器三层,实现了数据、展示和控制的分离,提高了代码的复用性和可维护性。
Spring作为业务逻辑层框架,它提供了IoC(控制反转)和AOP(面向切面编程)等功能,通过IoC容器管理对象之间的依赖关系,实现了松耦合,降低了组件之间的耦合度。
Hibernate作为数据访问层框架,它提供了ORM(对象关系映射)功能,将Java对象和数据库表之间建立映射关系,实现了面向对象的数据访问,简化了数据库操作。
接下来,我们来了解SSH框架的整合流程。
首先,我们需要在项目中引入Struts、Spring、Hibernate的相关jar包,并配置它们的配置文件。
在web.xml中配置DispatcherServlet,用于拦截所有的请求,然后将请求分发给对应的Controller处理。
在Spring的配置文件中配置业务逻辑层和数据访问层的Bean,以及事务管理器等。
在Hibernate的配置文件中配置数据源、SessionFactory等。
然后,我们需要编写业务逻辑层和数据访问层的代码,并在Controller中调用业务逻辑层的方法,最终将数据返回给视图层进行展示。
在SSH框架中,我们可以充分利用Struts的表单验证、Spring的事务管理、Hibernate的持久化操作等功能,实现了Web应用程序的快速开发。
同时,SSH框架也提供了良好的扩展性,我们可以根据项目的需要,灵活地替换其中的某个框架,而不影响整体架构。
基于SSH的学生成绩信息管理系统的具体设计与实现

2018年软 件2018, V ol. 39, No. 2基金项目: 黑龙江省青年专项课题(ZJD1316013)作者简介: 田文涛,男,哈尔滨市职工医学院,本科学历,研究方向:计算机及辅助教学。
基于SSH 的学生成绩信息管理系统的具体设计与实现田文涛1,张 钊1,张笑冰2(1. 黑龙江省哈尔滨市职工医学院,黑龙江 哈尔滨 150000;2. 黑龙江省伊春市第一医院,黑龙江 伊春 153000)摘 要: 本系统是Browser/Server 的结构,能够统一客户端,将主要功能实现的核心部分集中在了服务器上。
在技术上是以Java 、Hibernate 、Spring 、Struts 和MYSQL 数据库来开发和实现的。
不但注重系统的实际操作,系统的布局简洁,功能清晰,也能够让使用者清楚明了的进行操作,符合了学生和老师的需要。
本文主要介绍了该系统的具体设计及实现与测试。
关键词: 学生成绩信息管理;Browser/Server 结构;MYSQL 数据库;具体设计;实现与测试 中图分类号: TP183 文献标识码: A DOI :10.3969/j.issn.1003-6970.2018.02.043本文著录格式:田文涛,张钊,张笑冰. 基于SSH 的学生成绩信息管理系统的具体设计与实现[J]. 软件,2018,39(2):212-217Detailed Design and Implementation of Student’s AchievementInformation Management System Based on SSHTIAN Wen-tao 1, ZHANG Zhao 1, ZHANG Xiao-bing 2(1. Harbin Staffs Medical College of Heilongjiang, Harbin Heilongjiang 150000; 2. Yichun City the First Hospital of Heilongjiang, Yichun Heilongjiang 153000)【Abstract 】: the system is based on Browser/Server structure, which can unify client, key part of main function is integrated on the server. It is developed and implemented based on technology of Java, Hibernate, Spring, Struts, and MYSQL databases. It pays attention to actual operation of system, clear layout and function, and users can un-derstand operation clearly, which is in accordance with needs of students and teachers. The article introduces de-tailed design, implementation and testing of the system mainly.【Key words 】: Student’s achievement information management; Browser/Server structure; MYSQL database; De-tailed design; Implementation and testing1 系统概要设计1.1 系统总体设计学生成绩管理系统采用了SSH 框架进行开发,共有表现层、业务逻辑层、数据持久层三层。
SSH框架的搭建详细图文教程

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框架原理及流程什么是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。
SSH整合过程(struts-2.3.15.1+spring-3.2.4+hibernate-4.2.3)

SSH整合SSH整合前应该先熟悉各个框架的单独使用,至少要了解各自的xml配置。
环境:struts-2.3.15.1,spring-3.2.4,hibernate-4.2.3,myeclipse10,JDK-1.6,Mysql Jar包:1.新建web项目2.以简单的登录验证为例3.建立login.jsp,login_success.jsp,login_error.jsp4.引入struts2(1)web.xml配置<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepa reAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>(2)src下的struts.xml配置<package name="default"namespace="/"extends="struts-default"><action name="login"class="com.accp.action.LoginAction" method="login"><result name="success"> /login_success.jsp </result><result name="error"> /login_error.jsp </result></action></package>(3)测试struts2是否能够通过5.引入spring(1)配置web.xml,添加listener<listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><!-- 告知spring config location 的存储位置 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:beans.xml</param-value></context-param>(2)配置src下的beans.xml将spring的ApplicationContext.xml拷贝至src下,删除里面的配置项,只保留下面内容<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd"></beans>6.引入hibernate(1)配置beans.xml<?xml version="1.0"encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:jee="/schema/jee"xmlns:tx="/schema/tx"xmlns:aop="/schema/aop"xmlns:p="/schema/p"xmlns:util="/schema/util"xmlns:tool="/schema/tool" xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd /schema/tx/schema/tx/spring-tx.xsd/schema/aop/schema/aop/spring-aop.xsd/schema/jee/schema/jee/spring-jee.xsd/schema/context/schema/context/spring-context.xsd/schema/util/schema/util/spring-util.xsd/schema/tool/schema/tool/spring-tool.xsd"default-lazy-init="true"default-autowire="byName"><!--spring jdbc配置数据源 Mysql--><bean id="dataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"value="com.mysql.jdbc.Driver" /><property name="url"value="jdbc:mysql://localhost:3306/test" /><property name="username"value="user"/><property name="password"value="123456"/></bean><!-- hibernate.cfg.xml Spring config --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><!-- connection --><property name="dataSource"><ref local="dataSource"/></property><!-- hibernate自身属性 --><property name="hibernateProperties"><props><prop key="hibernate.show_sql">true</prop><prop key="hibernate.format_sql">true</prop><propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> <propkey="hibernate.current_session_context_class">thread</prop></props></property><!-- 映射文件<property name="mappingResources"><list><value>com/forwor/ssh/entity/xml/User.hbm.xml</value></list></property>--></bean><!-- 注入 --><bean id="userDao"class="erDaoImpl"> <property name="sessionFactory"><ref local="sessionFactory"/></property></bean><!-- aop --><!-- transaction --><bean id="userManager"class="erManagerImpl"><property name="userDao"><ref local="userDao"/></property></bean><!-- advice --><bean id="transactionManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager "><property name="sessionFactory"><ref local="sessionFactory"/></property></bean><!-- 事务处理 --><bean id="transactionInterceptor"class="org.springframework.transaction.interceptor.TransactionInterce ptor"><property name="transactionManager"><ref local="transactionManager"/></property><property name="transactionAttributes"><props><prop key="register">PROPAGATION_REQUIRED</prop><!--hibernate4必须配置为开启事务否则 getCurrentSession()获取不到--><prop key="get*">PROPAGATION_REQUIRED,readOnly</prop><prop key="find*">PROPAGATION_REQUIRED,readOnly</prop><prop key="select*">PROPAGATION_REQUIRED,readOnly</prop><prop key="query*">PROPAGATION_REQUIRED,readOnly</prop><prop key="sync*">PROPAGATION_REQUIRED</prop><prop key="finish*">PROPAGATION_REQUIRED</prop><prop key="add*">PROPAGATION_REQUIRED</prop><prop key="insert*">PROPAGATION_REQUIRED</prop><prop key="edit*">PROPAGATION_REQUIRED</prop><prop key="update*">PROPAGATION_REQUIRED</prop><prop key="save*">PROPAGATION_REQUIRED</prop><prop key="remove*">PROPAGATION_REQUIRED</prop><prop key="delete*">PROPAGATION_REQUIRED</prop><prop key="login*">PROPAGATION_REQUIRED</prop><propkey="*">PROPAGATION_REQUIRED,ng.Exception</prop></props></property></bean><!-- autoproxy 自动创建代理--><bean id="ProxyCreator"class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyC reator"><property name="beanNames"><list><value>*Manager</value></list></property><property name="interceptorNames"><list><value>transactionInterceptor</value></list></property></bean><bean id="loginAction"class="com.accp.action.LoginAction"scope="prototype"><property name="userManager"><ref local="userManager"/></property></bean></beans>7.类图以用户登录验证为基础的测试流程控制8.注意事项(1)login.jsp 输入内容的name为ername user.password时,LoginAction中应该为user生成相应的get/set方法。
SSH_三大框架介绍

SSH_三大框架介绍SSH是指Struts、Spring和Hibernate三个开源框架的整合,其中每个框架都有自己的设计思想和特点,通过整合,可以充分发挥它们的优势,提高开发效率和系统性能。
下面将分别介绍这三个框架。
1. Struts:Struts是一个基于MVC设计模式的Web应用程序框架,它将应用程序分为三个层:模型(Model)、视图(View)和控制器(Controller)。
模型负责处理业务逻辑,视图负责展示数据,控制器负责接收用户输入和导航请求。
Struts通过配置文件定义请求的映射和处理逻辑,通过统一的控制器Servlet接收请求,根据配置文件将请求转发给相应的Action。
在Action中进行请求处理和业务逻辑的实现。
2. Spring:Spring是一个轻量级的IoC(Inverse of Control)容器和应用程序框架,它主要解决企业应用中的复杂性问题。
Spring的核心思想是面向接口编程和依赖注入。
通过Spring的IoC容器管理对象的生命周期和依赖关系,将对象的创建和销毁过程交给容器处理。
通过依赖注入,可以将对象之间的依赖关系解耦,提高代码的可维护性和可测试性。
Spring还提供了丰富的功能模块,如AOP(Aspect-Oriented Programming)框架、事务管理、远程调用等,可以在应用程序中灵活地配置和使用。
Spring的优点是具有良好的灵活性和扩展性,可以与其他框架进行无缝集成,支持多种数据库和应用服务器。
同时,Spring还提供了很强的层次化管理和面向切面编程的能力,使得开发人员可以更加精细地控制应用程序的流程和行为。
3. Hibernate:Hibernate是一个开源的对象关系映射框架,用于将Java对象映射到关系数据库中的表结构上。
Hibernate通过配置文件和注解,提供了一种方便的方式来实现数据的持久化和检索。
Hibernate根据对象的映射关系,自动生成相应的SQL语句,实现了对象与数据库之间的映射和转换。
ssh框架期末考试题及答案

ssh框架期末考试题及答案一、选择题(每题2分,共20分)1. SSH框架中,S代表的是:A. SpringB. StrutsC. HibernateD. SpringMVC答案:A2. 在Struts2框架中,OGNL表达式中获取参数值的正确方式是:A. ${param.paramName}B. ${paramName}C. ${request.paramName}D. ${session.paramName}答案:A3. Hibernate中,以下哪个接口用于获取当前会话的持久化对象?A. SessionB. TransactionC. QueryD. Criteria答案:A4. Spring框架中,以下哪个注解用于声明一个Bean?A. @AutowiredB. @ServiceC. @ComponentD. @Repository答案:C5. 在Spring MVC中,以下哪个注解用于映射请求到对应的处理器方法?A. @ControllerB. @RequestMappingC. @ResponseBodyD. @PathVariable答案:B6. Struts2中,以下哪个标签用于遍历集合?A. <s:iterator>B. <s:property>C. <s:if>D. <s:else>答案:A7. Hibernate中,以下哪个是事务管理的接口?A. SessionB. TransactionC. QueryD. Criteria答案:B8. Spring框架中,以下哪个注解用于自动注入集合类型的Bean?A. @AutowiredB. @QualifierC. @ResourceD. @Inject答案:A9. 在Struts2框架中,以下哪个拦截器用于处理表单验证?A. TimerInterceptorB. PrepareInterceptorC. ValidationInterceptorD. WorkflowInterceptor答案:C10. Spring MVC中,以下哪个注解用于将请求参数绑定到控制器方法的参数上?A. @RequestParamB. @PathVariableC. @RequestBodyD. @RequestHeader答案:A二、简答题(每题5分,共20分)1. 简述SSH框架的组成及其各自的作用。
实验 七 MyEclipse8.6-10版的SSH实验

基于Struts2.1 + Spring3.0 + Hibernate3.3的整合实验(MyEclipse10版)2013.11.18一. 目的和要求本实验是让学生初步掌握综合利用Struts2 + Spring3.0 + Hibernate3.3进行企业级Web 应用开发的基本方法,了解Spring框架的作用。
二. 实验步骤1.准备数据库和数据库连接驱动(1)在SQL Server 20XY中创建数据库test和表users,创建表的SQL脚本如下:Use testCREATE TABLE users (id tinyint IDENTITY (1, 1) primary key ,username varchar (20) NOT NULL ,password varchar (20) NOT NULL)(2)在MyEclipse的Database Explore透视图中创建数据库连接驱动DN。
2.创建工程,使其具有Struts、Spring和Hibernate能力(1)新建web工程SSH图0 工程包结构总览图(左部)(2)使工程具有Struts能力1)选择struts的最新版本和使用action的模式在MyEclipse10中struts的最新版本为2.1,URL模式选为/*,选择如图1所示。
注意过滤器的名字,这个名字会在web.xml中体现出来。
图1 struts的版本和Action的使用方式选择2)Struts包的选择因为这次实验要与Spring集成,所以对Struts包的选择,除了导入Struts的核心包外,还要导入Struts的Spring库,选择如图2所示。
图2 Struts包的选择(3)使工程具有Spring能力1)选择Spring的最新版本和相关库的安装方式在MyEclipse10中Spring的最新版本为3.0。
对JAR包的安装,可以选择将检测到的库增加到build-path中,或将检测到的库的内容复制到工程中。
SSH三大框架的工作原理及流程

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工程步骤

一、myEclipse 8.5:安装(略):最高可提供:框架:Java EE 5Spring 2.0Hibernate 3.2Struts 2二、A、创建一个新的web project,B、配置Hibernate:1、先配置Hibernate,选择工程,MyEclipse->Capabilities->Add Hibernate Capabilities,进入如下页面:2、选择Hibernate3.2,如上图选择,3、配置文件选择默认即可,如下图:4、用spring管理数据库链接配置,这里不选数据库链接配置,如下图:5、不用创建SessionFactory class,如下图:6、点击finish,即可。
C、配置Spring1、选择工程,MyEclipse->Capabilities->Add Spring Capabilities,进入如下页面:选择spring2.0,选中前4个和Web Libraries(也可以直接导入spring.jar,spring.jar包含了所需要的所有jar文件);选中增加到lib目录2、spring配置文件,路径选择到WEB-INF下,如下图:3、不创建Spring SessionFactory,待会手工完成,如下图:4、点击Finish,完成。
D、配置Struts 2.01、拷贝struts的支持jar包到lib文件夹,拷贝文件如下:第四个为Spring支持文件。
E、开始编写代码咯:1、new一个struts.xml文件,放在/src路径下,如下图:2、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-2.0.dtd文件,自此struts具有标签提示功能。
SSH框架实验报告

软件学院综合性实验报告一、实验目的1. ssh 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种web应用程序开源框架。
因此希望通过本次实验充分了解shh框架集成应用的设计理念和具体步骤;2.通过翻阅课本,查阅资料,培养一个程序员应有的信息搜索能力已经借助其他工具解决问题的能力;3.真正掌握三个框架的精髓,更好地应用与以后的学习工作中去。
二、实验仪器或设备myeclipse6.5 tomcat5.5.26mysql5.0数据库脚本程序create table user (id int(11) not null auto_increment, username varchar(50) default null,password varchar(50) default null, primary key (id) ); insert into user values (1, admin, admin);三、总体设计(设计原理、设计方案及流程等)1.创建工程打开myeclipse,需要注意的是这里应该处于myeclipse java enterprise视图。
新建一个web project,输入适当的工程名字,这里我们输入ssh,finish即可。
确定之后myeclipse会生成名为ssh 的项目,其中生成的目录结构如下所示:四、实验步骤(包括主要步骤、代码分析等)1. 添加struts1.2框架支持在ssh工程上面右击,在弹出的菜单中选择myeclipse -> add struts capabilities…添加struts的支持。
在弹出的对话框中选择struts 1.2,修改base package for new classes其余保持原状,finish即可。
完成后的结构为2. 添加spring2.0框架支持在ssh工程上面右击,在弹出的菜单中选择myeclipse -> add spring capabilities…添加spring框架支持。
SSH_三大框架介绍ppt课件

private int id;
private String userName;
private String password;
private Date createDate;
public UserBean() {}
public UserBean(String userName, String password, Date createDate) {
.
40
springMVC.xml
.
41
注解
<beans> <bean id="userDao" class="erDao" />
</beans>
• @Component(不推荐使用)
• @Repository(value="userDao")
• @Service("userService")
erName = userName;
this.password = password;
this.createDate = createDate;
}
@Id
@GeneratedValue
public int getId() {return id;}
public void setId(int id) {this.id = id;}
3、进行DispatcherServlet配置,保证springMVC的正常使用,同时如 springMVC配置文件名称、位置不是默认,则需要进行配置
4、另外还可以进行字符编码过滤器配置,避免出现乱码现象等
.
32
web.xml
.
33
web.xml
JSP_SSH框架搭建(Myeclipse2014+Tomcat8.0+Mysql)

SSH框架Struts2.1+Spring3.1.1+Hibernate4.2.0编号:SSH-S2-S3-H4版本:V1.1环境说明本文章是根据个人的搭建经验完成的轻量级SSH框架,也是实际应用中比较全面的基础框架。
其中SSH指:Struts,Spring, Hibernate,是一个将MVC思想发挥的很好的web框架。
开发平台: Windows 7 + MyEclipse 2014 + Tomcat 8.0.3+ JDK 1.8 + Mysql不同的版本大同小异。
其中SSH所需的包均直接使用MyEclipse2014内集成的jar包,这样无需手动添加,比较方便。
建立工程目录新建工程打开MyEclipse,新建一个web project:file -> new -> Web Project 如下图所示:然后next两步,到下面时,修改一点:之后直接next到finish即可,建立后目录如下:建立src目录为了使得目录结构清晰,将不同层次的源程序放到不同包内,分别建立如下4个目录:- com.ssh.action :存放Action代码- com.ssh.service :存放Service代码- com.ssh.dao :存放Dao代码- com.ssh.entity :存放数据库实体类直接右击src, 然后new -> package 如下图:然后直接finishi即可。
同样的步骤建立剩下三个目录。
这一步完成后的目录如下:导入Struts,Spring,Hibernate环境就是导入SSH环境了,这里使用的是MyEclipse集成的jar包导入Struts过程:右击项目名SSH 然后 MyEclipse ->Project Facets[capabilities]->Install Apache Struts 2.x Facet初始图如下:next到这步修改为第三项(重要):之后一直到finish即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件开发的设计阶段
对于我们要做的这个项目来说,具体的技术和系统结 构已经选好,就是SSH 架构。那么现在,在加入Spring 整合功能之前,我们有必要把系统的表示层的工作流 程搞清楚 做这个流程设计有很多办法,可以用画图工具例如 Microsoft Visio,或者UML 建模工具开发一个活动图 等等都可以。因为我们使用的是MyEclipse,所以我们 这里可以用它自带的Struts 设计器快速的画出所有的应 用流程来
添加了 Struts 的目录结构
在 src 目录下编写我们自己 的类
Struts 1.2 的类库
struts-config.xml Struts 的TLD 文件 验证器文件
第二部分 用Struts 设计器制作前台业务流程
软件开发的设计阶段
在实际项目开发中,第一步要做的可能是设计应用的 整个流程,而不是立即着手制作JSP 或者编写Java 代 码 做实际的项目开发,如果是大中型项目,思考项目到 底该使用哪些技术和架构,用什么数据库和操作系统, 最后应该实现成何种样子,有哪些模块,系统的工作 流程如何等等,这些内容,块 分页列出用户 创建新用户(new) 删除用户(delete) 修改用户(edit) 流程 index.jsp→list.do new.jsp→new.do→list.do Delete.do→list.do edit.do→edit.jsp→save.do→list.do
创建新项目
创建Web 项目ssh2 加入 Struts 开发功能 使用Struts 工具开发 数据库student1 实现功能:对用户的增删改查
前台:需要加入增加,修改删除和查询用户所对应的页面 后台功能通过调用Struts Action 来完成,Struts 的Action 再委 托给业务层StudentManager 类来完成 根据个人爱好的不同,你既可以先完成前台的页面,也可以 先把后台的业务类写完整,或者是两个人分工的话一人负责 一部分
public int getTotalCount(); // 得到用户总数 public int getTotalPage(int pageSize) ;// 获取总页面数 public List findPagedAll(int currentPage, int pageSize);// 分页显 示数据
添加Struts 功能对话框
指定了Struts 配置文件的 存放位置
指定了位于web.xml 中的 Struts 核心Servlet 的名字 指定了默认的国 际化资源文件包
指定了将会交 给Struts 控制 的URL 类型
可选的Struts 的版本 指定了生成 的类的默认 包
是否安装Struts 的标签库文件
进行业务层的具体设计
首先定义接口IStudentManager(这个以I 开头的名称来 自于Eclipse 的源码中的定义接口的习惯,I 表示 Interface,便于开发人员一眼看出这是个接口,当然请 不要误会所有的接口必须以I 开头才能定义) 把它放在包service中,用来定义用户管理模块应有的 功能。当然用manager 作为业务层的包还是别的名称都 是无所谓的 显示用户列表时数据量大,需分页显示,分页部分的 接口设计如下所示:
表示层 控制层 业务层 数据访问层 辅助功能层
当然并没有人规定到底怎样分层才是完全正确的
学习方法交流
系统分成一般来说大家可以按照软件工程书籍上的办法进行分层, 然而更现实的却是大家都在按照自己公司的方式进行分层。 这时对于初学者来说必须避免的一个误区就是喋喋不休的对采用 何种标准或者为什么教科书上所讲的东西和现实不一样或者说对 于某个东西的原理进行一次次的争论,或者用大家熟悉的话来概 括:钻牛角尖。 钻牛角尖表面看是勤奋好学,对某种内容具有韧性或者探索精神, 然而我们却不得不面对这样一个场面:如果我们企图完全弄懂一 个问题,就不得不把和它关联的问题也搞懂。但是尴尬的是,首 先我们并不能无限制的得到任何自己需要的资料(大部分技术都 是黑盒子,外人看不到内部实现的),另一方面,我们不得不承 认人脑的记忆和理解是有限的这个现实。当你高高兴兴的以为自 己弄懂了一个又一个问题时,最后却尴尬的发现似乎自己高兴过 后只能记起其中的一两个(当然有个好办法就是把这些问题都记 下来便于以后查找)。
最后点击Finish按钮
加入 Struts 开发功能
项目根节点上右键点击,选择上下文菜单中的 MyEclipse > Add Struts Capabilities 或者选择菜单MyEclipse > Project Capabilities > Add Struts Capabilities 添加 Struts 功能对话框的默认值一般来说不需要修 改就可以使用,点击单选钮 Struts 1.2 选择Struts 的版本为1.2 即可
创建数据库
数据库:Student1 字段
Id:int 主键 Username:varchar(50) NOT NULL Password: varchar(20) NOT NULL Age: int
系统框架
到现在为止,应用的整个前台大框架已经确定,接下 来就是考虑后台的业务层的功能了 我们已经确定要使用Spring + Hibernate 来完成后台功 能。Struts 的Action 将会调用业务层,业务层再会去调 用数据访问层和其它的一些辅助功能层(工具类或者 第三方类库) 整个系统从横向分层就分成了下面的部分:
使用SSH开发增删改查的综 合用户管理例子
院校教学服务部 李绍东
内容
创建新项目 用Struts 设计器制作前台业务流程 设计业务层功能 开发业务层和DAO 层代码 开发前台页面流程 整合Spring,Struts 和Hibernate 发布,运行,测试
第一部分 创建新项目
文档规范化
功能描述 页面名 相比较于 Java 源代码来说,给JSP 页面加入一些文档比 较困难些,因为Java 文件可以用Javadoc 格式的注释来 index.jsp 入口页面 加入并生成说明,但是JSP 没有这方面的规定和好用的 文档工具 list.jsp 用户信息列表显示页面(核心页面) 写必要的流程说明
学习方法交流
我想做程序员首先要有钻研精神,其次,也得有实用主义的精神。 学技术,就是为了解决实际的问题的,如果你想为技术而技术, 请先填饱肚子。遇到自己不会的东西怎么办?首先是能用就行, 我们把它看成黑盒子就行了,就像用遥控器的人永远不需要还得 懂红外线,集成电路,振荡器,发射器到底是怎么回事一样。说 到这里似乎已经扯远了话题,然而看到过很多学生天天追求后台 原理或者软件工程,然而却连简单的应用也作不出或者设计图都 画不好。不是他们不努力,而是他们努力走向了另一个方向:钻 研理论。 对于初学者,第一步要的就是:能用。其余的,在这基础之上才 能去谈进一步提高。而且,在国内的现状就是,绝大多数人是开 发应用(简单的说就是编写固定流程的东西),而不是深入软件 的底层来做开发工具或者自己动手写或者改进虚拟机。
Struts 配置文件编辑器
双击 WebRoot/WEB-INF/struts-config.xml 就可以打开 Struts 配置文件编辑器 在设计器网格面板上点击右键,选择菜单来创建Action, Forward,JSP 等等 为了更好的反映系统的工作流程,我们还可以使用设 计器工具栏上的 按钮来给一些页面加入连接关系, 但是如果弹出对话框询问是否设置为Action 的input 元 素时,我们选择No 按钮。大致来说,我们的应用需要 增删改查四个模块
便于自己核对是否全部页面都按照预期实现 edit.jsp 用户信息修改表单输入页面 方便自己或者别人日后对项目方便进行修改,升级和维护 出错信息显示页面 error.jsp 软件开发本质上属于集体劳动,所以作为其中的一员, 尽量不要只把系统的设计蓝图或者注意事项放在自己的 new.jsp 添加新用户表单输入页面 脑子里,一定要想办法把它表示成可见的文档来便于大 家的交流和日后维护。现在我们把JSP 页面的功能用表 search.jsp 显示查找用户结果的页面 格的方式列出来,如下表所示:
Action 说明
Action 路径 类名 功能描述 还有个问题需要大家解决,就是进入修改和删除功能 的Action 时,需要在URL 里以地址带参数的方式来传 /list ListAction 分页显示用户信息 递到底是修改或者删除哪个用户 举个例子,修改用户我们用edit.do?id=1 这种形式。另 /edit EditAction 根据ID 获取用户信息并传递给edit.jsp 外用户的ID 是不可修改的,因此如果表单里要传递这 个参数,一般就以表单的hidden(隐藏)类型的输入 /save SaveAction 保存对用户信息的修改 域来表示,具体代码类似这样: /new NewAction 创建新用户 <input type=”hidden” name=”id” value=”<%=id%>”> /delete DeleteAction 根据ID 删除用户 另外如果前台需要一些数据,后台可以通过 request.setAttribute()方法来设置,前台则需要用 /search SearchAction 根据用户名查找用户,并将结果返回 request.getAttribute()方法或者EL 表达式来读取这些值 给search.jsp
创建Web 项目
选择菜单File > New > Web Project 在Project Name中输入ssh2 选中J2EE Specification Level下面的Java EE 5.0 单选钮
选择哪个版本的J2EE Specification Level 取决于你使用的 服务器 Tomcat4,Weblogic 9 以下版本请选择J2EE 1.4 Tomcat 5,JBoss 4可以选择 Java EE 5.0 Java EE 5.0 可以直接使用 EL 表达式和JSTL