ssh课堂笔记总结_第1页
ssh课堂笔记总结_第2页
ssh课堂笔记总结_第3页
ssh课堂笔记总结_第4页
ssh课堂笔记总结_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SSH: (框架)Spring + Struts + Hibernate(框架)以前.java的文件要使用,总是要编译,那么我们可以将不变的写入.java文件,将会变的写入txt文件网站:变-.txt 不变-.javaSpring:依赖注入,类似我们的接口类型的面向对象。Struts:界面,Hibernate:后台数据库。单单学会ssh里面的任意一门,都可以做网站项目。当我们把他们的有点整合起来之后,开发网站会更加方便更加快捷。修改起来也更加有层次Struts-hibernate-springStruts1 Struts2:当前类继承Action的5个接口的常量:Public static f

2、inal String SUCCESS = “success”; - 成功页面-NONE = “none”; - 空页面-ERROR = “error”; - 错误页面,错误信息-INPUT = “input”; - 也是用于错误跳转 跳回原来的登录页面-LOGIN = “login”; - 常量Validateable: 该接口提供了一个Validate (),方法用于校验表单数据,在实际应用中只要重写该方法就可以了。该方法是在执行execute()方法之前执行的。ValidationAware: 该接口定义了一些方法来对Action执行过程中产生的信息进行处理,提供了一个addFieldE

3、rror(String fieldname,String errorMessage )用于验证出错时保存错误信息。Action传值1:在源代码(LoginAction)里,username和password都生成get/set的方法,在运行页面的时候,、Strute2Action的配置文件:Name:必须属性,对应请求action的名称Class:必须属性,指明处理类的具体途径Method: 如果action类中有多个方法,该属性制定请求对应应用的方法。Method: 一般情况下,action的name和class都是必须设置的,但是method不是。如果action类中同时有多少个方法,那么

4、我们可以通过修改method的内容来指定我们请求使用的哪个方法。默认情况下是execute()。数据标签: 主要用于提供各种数据访问相关的功能 Action:该标签用于在jsp页面直接调用一个action Property:用于输出某个值 Param:用于设置参数,通常用于bean标签和action标签的自标签。 Bean:该标签用于创建一个JavaBean实例。如果指定id属性,则可以将创建的JavaBean 实例放入stackcontext中 Bean:标签可以通过他的name属性指定一个类为模版,创建一个以id指定为对象名的 对 象,在bean标签里面就可以使用这个对象的属性。通过标签来

5、修改属性通 过 property来输出属性,在property使用当中直接点出来的可以是属性或者方法,方法 需要使用括号标志。如果说属性,就算属性是私有的,属性的值也能获取,能获取的原 因不是因为属性的修饰符,而是因为属性的值的获取,取决于属性的get方法,设置值 取决于set方法。(“#”用于调用对象) Date:用于格式化输出一个日期 Debug:用于在页面上生成一个调试链接,当单击该链接时,可以看到当前值栈和 stackcontent中的内容 Include:用于在jsp页面中包含其他的jsp或servlet资源。 I18n:用于指定国际化资源文件的baseName Push:用于将某个

6、值放入值客栈的栈顶。 Set:用于设置一个新的变量 Text:用于输出国际化(国际化内容在后面讲解) url:用于生成一个URL地址。 Action标签:用于直接在页面调用一个Action请求,该标签有以下几个属性: Id: Name: Namespace:页面跳转:在原有的页面没有的时候我们通过点击提交按钮来去struts.mxl调用action, 调用action之后,会去找class属性的action类进行处理数据,然后通过execcute方法返回的字符串和struts.mxl里面的匹配进行页面跳转,跳转到指定页面。现在这个action标签,他是在页面加载的时候直接去struts.mxl

7、调用action之后,会 去找class属性的action类进行处理数据,然后通过execcute方法返回的字符串和struts.mxl里面的匹配,不进行页面跳转,而是在当前页面显示处理完后的页面信息。(将先前的跳转页面添加到当前的页面,注意:这个跳转页面(处理页面)不是一定要返回到当前的页面,通过execcuteResult=“true”来决定是否返回。)控制标签控制标签主要用于完成流程的控制,以及对值栈的相关操作。控制标签有以下几个:If:用于控制选择输出的标签Elseif:用于控制选择输出的标签,必须和if标签结合使用Else:用于控制选择输出的标签,必须和if标签结合使用Iterato

8、r:用于将集合迭代输出Append:用于将多个集合拼接成一个新的集合Merge:用于将多个集合拼接成一个新的集合。但与append的拼接方式不同。Generator:用于将一个字符串按指定的分隔符分隔成多个字符串,临时生成的多个字符串可以使用iterator标签来迭代输出。Sort:用于对集合进行排序。Subset:用于截取集合的部分元素,形成新的子集合。: Iterator: 标签主要用于对集合进行迭代,这里的集合包含List,set,也可以对Map类型的 对象进行迭代输出。该标签有如下属性: Value: 该属性是可选的,指定被迭代的集合。如果没有指定该属性,则使用值栈栈顶的 集合。 Id

9、:该属性是可选的,指定集合元素的ID Status:该属性是可选的,指定迭代时的IteratorStatus实例,通过该实例可判断当前迭代元素的属性,如果指定该属性,其实例包含如下几个方法:1.int getCount():返回当期迭代了几个元素。2.int getIndex():返回当前迭代元素的索引3.boolean isEven():返回当前被迭代元素的索引元素是否是偶数4.boolean isOdd():返回当前被迭代元素的索引元素是否是奇数5.boolean isFirst():返回当前被迭代元素的索引元素是否是首位元素6.boolean isLast():返回当前被迭代元素的索引元

10、素是否是最后一个元素Generator: 标签Generator:标签用于将一个字符串按照指定的分隔符成多个子字符串,并将这 些子字符串放入一个集合中。该标签有如下5个属性:Id:该属性是可选的,用来指定生成的子字符串组成的集合在上下文栈中名字。Val:该属性是必需的,用来指定将要分割的字符串。Separator:该属性的必需的,用来指定分割字符串的分隔符。Count:该属性可选,用来指定生成集合中元素的总数。Converter:该属性是可选的,用来指定将集合中德每一个字符串转换成对象的 转换器。表单标签 表单标签是用来生成表单元数的,Struts2的表单标签分为两种,一种是与HTML标签作用

11、相同的标签,另一种是其特有的一些标签。下面先简单介绍一些鱼HTML标签的作用相同的标签: 表3.1 与MTML功能相同的标签 Struts2标签 HTML标签Struts2标签一些通用的属性: cssClass: 指定表单元素的class属性 cssStyle: 指定表单元素的css样式 disabled: 指定表单元素是否可用,若该属性值为“true”,则该表单元素变灰不可用。label: 指定表单元素的标签labelPosition: 指定表单元素标签的位置。该属性有“top/left”两种取值默认为leftname: 指定表单元素提交数据的名称required: 制定表单元素为必填元素,

12、 若指定值为“true”,将在元素的标签后面加“*”符号requiredposition: 定义必填元素的标志“*”的位置;size: 指定表单元素的大小tablndex: 指定表单元素用tab切换时的序号title: 指定表单元素的标题value: 指定表单元素的值 theme:指定表单的主题样式。可选值为xhtml,simple,ajax,css_xhtml. 默认值为xhtml. 非表单标签ActionErrorActionMessagefieldError三个标签中,保存值的方法都是一样,在action类中,通过对应的add对应方法,输入保存值就可以保存。在用的时候,只要在jsp页面中

13、,调用对应的非表单标签,就会输出对应的内容。具体使用:ActionError:1.在action类中保存和action有关的信息。2.在jsp页面中调用 标签。ActionMessage:3.在action类中保存和ActionMessage有关的信息。4.在jsp页面中调用 标签。FieldError:使用效果1:1.在action类中保存和fielderror有关的信息。2.在jsp页面中调用 标签(其效果是:输出在action类中所保存的所有fieldError信息)效果2:1在action类中保存和fielderror有关的信息。addFieldError(“username”,”Fi

14、eldError中保存的username错误”);错误对象的名字2.在jsp页面中调用 标签,并且使用username指定输出哪个错误对象username效果3:1.在action类中保存和fielderror有关的信息。addFieldError(“username”,”FieldError中保存的username错误”);错误对象的名字2.跳转时候,回来一个表单叫做username文本框的页面。这个时候,错误的信息价将会自动分配到对应文本框上边(注意:不是所有的错误信息都会自动分配,是必须在action类中添加的”错误对象名字”和jsp页面中的表单里面的name一样,才会有) 时间类型的转

15、换确认有一个能够跳转的Struts2页面项目在首页面添加问本框在actions类里面创建一个D的类里面创建Date date;并且生成get/set方法,再在AsdAction里面创建D date;生成get/set方法再在actions里面创建一个文件,actions类名-perties配置文件;在创建成功页面输入:运行之后在文本框里面输入:2013-9-9 点提交确定会显示 13-9-9,他只是按照他原有的格式显示。Struts2的输入校Struts2应用中的输入校验大致有以下几种:在Action类中的处理方法进行校验,若没有指定方法就用execute()方法;继承ActionSuppor

16、t类,并重写其validate()方法实现输入校验。应用Struts2的校验框架进行校验。拦截器拦截器是对调用的Action起作用,它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。拦截器的格式 拦截器的配置是在struts.xml中的完成的定义一个拦截器使用标签,拦截器的名字相同 ,后者覆盖前者 它是包在里面。代码:如果要应用这些拦截器,就需要在配设置中引用这些拦截器,一个需要应用多个拦截器,就不免要有多条引用语句(引用拦截器用标签)拦截器的设置格式:拦截器或拦截器栈配设完成后就可以在中对其引用了,一个action引用拦截器

17、或拦截器栈的格式如下:Struts2的拦截器execAadWait: 后执行Action,负责将等待画面发送给用户;exception:这个拦截器负责处理异常,它将异常映射为结果;fileUpload: 这个拦截器主要用于文件上传,它负责解析表单中文件域的内容;i18n: 这是支持国际化的拦截器,它负责把所选的语言,区域放入用户SESSION中;logger:这是一个负责日志记录的拦截器,主要是输出Action的名字;model-driven: 这是一个用于模型的驱动的拦截器,当某个Action类实现了ModeiDriven 接口是,它负责把getModel()方法的结果堆入ValueStac

18、k中;Scoped-model-driven: 如果一个Action实现了一个ScopedModeiDriven接口,该拦截器负责从指定生存范围中找出指定的Model,并将通过setModel方法将该Model传给Action实例;Params: 只是一个基本的拦截器,它负责解析HTTP请求中的参数,并将参数值设置为Action对应的属性值。Prepare: 如果action 实现了Preparabel接口,将会调用该拦截器的prepare()方法;Static-params: 这个拦截器负责将xml中标签下标签中的参数传入action;Scope: 这是范围转换拦截器,它可以将action状

19、态信息保存到httpsession范围,或者保存到servletContext范围内。Servlet-config:如果某个action需要直接访问serlvetAPI,可以通过这个拦截器实现roles: 这是一个JAAS(Java Authentication and Authorization Service,java授权和认证服务)拦截器,只有当浏览者获得合适的授权后,才能调用被该拦截器拦截的action.timer: 这个拦截器负责输出action的执行时间,在分析该action的性能瓶颈时比较有用。token:这个拦截器主要用于阻止重复提交,它检查传到action中的token,防止

20、多次提交token-session:这个拦截器的作用与前一个基本类似,只是它把token保存在httpSession中。validation:通过执行在xxxAction-validation.xml中定义的校验器,完成数据校验。workflow:这个拦截器负责调用action类中的validate方法,如果校验失败,则返回input的逻辑视图。上传文件先创建一个会跳转的页面在首页面添加代码如下: Enctype =multipart/form-data 是代表二进制方式进行处理我们的表单数据。在action类里面定义一个File upload; String uploadFileName;并

21、且get/set,然后在execute()方法里面添加代码如下: InputStream is = new FileInputStream(getUpload();OutputStream out = new FileOutputStream(D:/upload/+uploadFileName);byte buffer = new byte1024;int count = 0;while(count=is.read(buffer)0) out.write(buffer,0,count);out.close();is.close(); return SUCCESS;运行 (运行之前在你规定的磁盘

22、下创建一个和上面一样的“upload”文件夹);国际化资源的命名 国际化资源文件都是“*.properties”的文件,而且该文件需要放在项目的classsses文件夹下,也就是和“struts.xml”文件处于同一位置。就命名规则而言,国际化资源文件必须命名为“基本名称_语言代码_国家代码.properties”例如:中文的国际化资源文件命名为:基本名称_zh_CN.properties而英文国际化资源文件命名为:基本名称_en_US.propertiesFile-web project现在的网站项目,只是一个普通的jsp网站项目和struts没任何关系由于struts项目是在web项目下开

23、发的,所以我们要先创建一个web项目选择指定web项目,单击右键,就会有MyEclipse,在MyEclipse右方选择添加我们的struts开发工具。一旦生成了1.3的版本,就无法直接地换回1.1或者1.2的版本,如果要换回来,就只能,删除原有项目,重新创建一个新的项目并且把struts1.1的版本添加到项目中去就可以了创建项目,并且添加struts2开发框架创建一个MyJsp.jsp页面添加(注:最好按照顺序来添加,否则出现问题只能一个个重新来。)在里面添加如下代码: 注意:login已经被系统所使用,所以以后不能用创建一个class类,这个类要放在actions包里面代码如下:packa

24、ge actions;import com.opensymphony.xwork2.ActionSupport;public class Login1Action extends ActionSupport String username,password;public String getUsername() return username;public void setUsername(String username) this.username = username;public String getPassword() return password;public void setPa

25、ssword(String password) this.password = password;Overridepublic String execute() throws Exception return success;在src下面一个叫做struts.xml的struts配置文件在这个文件里面修改如下: /MyJsp.jsp 修改完毕之后就可以运行了运行原理:1、在按ctrl+F11的时候,系统将会运行当前选定页面的项目2、找出项目配文件:web.xml进行项目初始化,(首页就出来了)3、一点提交, 系统将会将username,password保存起来,怎么保存呢?4、系统发现,你点提交的时候,传来了一个login1这样的一个参数,这个参数将会被web.xml里面的filter拦截,并且交给我们的struts2处理 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论