SSH三大框架的搭建与程序设计.docx
- 文档编号:11209592
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:37
- 大小:26.51KB
SSH三大框架的搭建与程序设计.docx
《SSH三大框架的搭建与程序设计.docx》由会员分享,可在线阅读,更多相关《SSH三大框架的搭建与程序设计.docx(37页珍藏版)》请在冰豆网上搜索。
SSH三大框架的搭建与程序设计
SSH三大框架搭建和代码设计
Struts2框架的搭建
一.Struts2的优点:
Struts2是在webwork2的基础上发展而来的。
a.属于无侵入式设计
b.Struts2提供了拦截器,利用拦截器可以进行aop编程,实现如权限拦截功能。
c.Struts2提供了类型转换器,
d.Struts2提供了多种表现层技术。
如:
jsp,freeMarker,velocity.
e.Struts2输入校验可以对制定的方法进行校验。
f.提供了全局范围,包范围和Action范围的国际化资源文件管理实现。
二.Struts2框架的搭建步骤
1.添加struts2开发需要的6个包。
struts2-core-2.x.x.jarStruts2框架的核心类库。
xwork-2.x.x.jarxwork类库,Struts在其上构建
ognl-2.6.x.jar对象图导航语言(ObjectGraphNavigationLanguage)Struts2框架通过其读写对象的属性。
freemarker-2.3.x.jsr.Struts2的UI标签的模板使用FreeMarker编写。
commons-logging-1.1.x.jar.Asf出品的日志包,Struts2框架使用这个日志包来支持Log4j和JDK1.4+的日志记录。
commons-fileupload-1.2.1.jar.文件上传组件
2.编写Struts2的配置文件。
xmlversion="1.0"encoding="UTF-8"?
>
DOCTYPEstrutsPUBLIC
"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
"http:
//struts.apache.org/dtds/struts-2.0.dtd">
3.在web.xml中加入Struts2MVC框架启动配置
在StrutsPrepareAdnExecuteFiler的initiative()方法总将会读取类路径下默认的配置文件Struts.xml完成初始化操作。
Struts2的第一个应用程序
一.添加struts.xml中的配置代码:
Struts2中用包来管理Action的,包的作用和Java中的类包非常类是的,主要用于管理一组业务功能相关的Action,在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。
配置包时必需指定name属性,该name属性值可以是任意取名的,但必须唯一,他不对应Java的类包,如果其他包继成该包,必需通过该属性进行引用,包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Action,访问路径为:
/com/accp.action/UserAction.action.namespace属性可以不配置,默认的命名空间为""(空字符串)
通常每一个包都继承Struts-default包,因为Struts2很多核心的功能都是拦截器来实现。
如:
请求中把请求参数封装到Action。
文件上传和数据验证等等都是通过拦截器实现的。
Struts-default定义了这些拦截器和Result类型,可以这么说:
当包继承了struts-default才能使用struts2提供的核心功能。
struts-default包是在Struts2-core-2.x.x.jar文件中的struts-default.xml中定义。
struts-default.xml也是Struts2默认配置文件。
Struts2每次都会自动加载struts-default.xml文件。
还可以通过abstract=“true”来定义抽象包,抽象包中不能包含action
这是一个Action
packagecom.accp.action;
publicclassUserAction{
privateStringmessage;
publicStringgetMessage(){
returnmessage;
}
publicStringaddUser(){
this.message="我到第一个struts2程序";
return"success";
}
}
定义公共是试图
Action名称的搜索顺序
如果在指定的包下找不到对应的Action,回来到默认命名空间下寻找Action
Action配置的默认值
如果没有为action指定class,默认是ActionSupport
如果没有为Action指定method,默认执行action中的execute()方法。
如果没有指定result的name属性,默认值为success.
Action中默认的method方法是execute();
Struts2视图的转发类型
Action中result的各种转发类型dispatcher(默认值),redirect,redirectAction,plainTest
默认的:
服务器端的转发
重定向到jsp页面:
重定向到Action:
如果重定向的包中没有对应的Action时:
配置输出的是源文件:
页面中如果有中文就会乱码,怎样来处理:
--读取内容时的编码--> 全局视图的跳转: 给Action中的属性注入值 Struts请求处理的后缀 修改Struts后缀 struts2加载常量的顺序: struts-default.xml struts-plgin.xml struts.xml strutsproperties web.xml 如果定义多个相同的常量,后一个会覆盖前边的。 编码集 浏览器是否缓存静态内容 配置文件修改后,系统自动加载文件: 打印更详细的错误信息 默认视图的主题--不会生成其他多余代码 与Spring集成时,指定有Spring负责Action对象的创建 设置Struts2是否支持动态方法的调用,该属性默认值是true, 上传文件的大小限制 Struts2动态方法的调用 Com/accp/action/UserAction! addUser.action 不建议使用这种方法 禁止动态方法的调用 使用通配符定义Action(建议) //{1}表示第一个*位置的字符 类型转换器 局部类型转换器: 例子: Date类型的为例, 对某个action起作用 新建一个类,该类继承DefaultTypeConverter类,重写该类下的 publicObjectconvertValue(Map ClasstoType){ SimpleDateFormatdateFormat=newSimpleDateFormat("yyyyMMdd"); try{ if(toType==Date.class){ String[]params=(String[])value; returndateFormat.parse(params[0]); }elseif(toType==String.class){ Datedate=(Date)value; returndateFormat.format(date); } }catch(ParseExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } returnnull; }方法。 注册类型转换器: 注册文件命名规则: action的简单名称-conversion.properties 属性=转换器的名称(com.accp.converName) 主要关心的是value(接收到的值),和toType(要转换成的类型) 全局类型转换器: 注册文件命名规则: xwork-conversion.properties 要转换成的类型=转换器的名称(com.accp.converName) Struts2中的拦截器 用户登录了访问xx.invoke(); 没有登录不访问xx.invoke(); 拦截器 --拦截器的配置--> --拦截器栈--> --提供的拦截器--> --自定义的拦截器--> --如果调用,则使用自定义的拦截器就不会,覆盖提供的拦截器--> 即调用permissionStack就可以使用自定义的和提供给的拦截器了 //在这个包下的所有action的要添加这个拦截器的配置 Hibernate搭建基本步骤 1把所需的jar包导入到工程中,jar在所上传的附件中;具体的包名如下: 3.1版本所必须的 antlr-2.7.6rc1.jar cglib-2.1.3.jar dom4j-1.6.1.jar hibernate3.jar jaxen-1.1-beta-7.jar log4j-1.2.11.jar 如果是安装了MyEclipse可以在MyEclipse安装目录\myeclipse\eclipse\plugins\com.genuitec.org.hibernate.eclipse_5.5.0\myeclipse-data\3.1\lib 找到 3.0版本所必须的 asm.jar asm-attrs.jar commons-collections.jar commons-loggin-1.0.4.jar ehcache.jar jaas.jar jta.jar xerces-2.6.2.jar xml-apis.jar jdbc2_0-stdext.jar 可以在MyEclipse5.5安装目录\myeclipse\eclipse\plugins\com.genuitec.org.hibernate.eclipse_5.5.0\myeclipse-data\3.0\lib找到 2建立实体Bean类,对应的表主键为自动递增(Mysql)代码如下: packageentity; publicclassUserimplementsjava.io.Serializable{ //Fields privateIntegerid; privateStringname; //Constructors publicUser(){ } publicUser(Stringname){ this.name=name; } //Propertyaccessors publicIntegergetId(){ returnthis.id; } publicvoidsetId(Integerid){ this.id=id; } publicStringgetName(){ returnthis.name; } publicvoidsetName(Stringname){ this.name=name; } } 3建立实体Bean的ormmping文件(User.hbm.xml),保存到工程目录/src/entity下,代码如下: xmlversion="1.0"encoding="utf-8"? > DOCTYPEhibernate-mappingPUBLIC"-//Hibernate/HibernateMappingDTD3.0//EN" " -- MappingfileautogeneratedbyMyEclipsePersistenceTools --> 4建立hibernate的中枢文件(hibernate.cfg.xml),保存到工程目录/src下,代码如下: xmlversion='1.0'encoding='UTF-8'? > DOCTYPEhibernate-configurationPUBLIC "-//Hibernate/HibernateConfigurationDTD3.0//EN" " --GeneratedbyMyEclipseHibernateTools.--> jdbc: mysql: //localhost: 3306/ com.mysql.jdbc.Driver org.hibernate.dialect.MySQLDialect 最后建立一个最简单的类测试一下,代码如下 packagetest; importorg.hibernate.Session; importorg.hibernate.Transaction; importentity.User; importfactory.MyHibernateSessionFactory; publicclassTest1{ publicvoidtest1(){ Sessionsessi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SSH 框架 搭建 程序设计