Struts1学习笔记

struts(结构)是一个开源的web框架(frameset)

优点:程序更加规范,开发效率提高,程序可读性增加,程序可维护性增加

缺点:form表单有点不好,action是单态(影响网站并发性的处理),框架提过程序规范,约束程序的自由

struts-config.xml是struts的一个核心文件

struts组件一般包含:ActionServlet(总控制器),ActionForm(存放数据的表单),Action(分控制器),model(模型),jsp(页面)

struts开发一般步骤:

下载导入struts开发包

基础页面设计开发(jsp,业务功能界面)

开发ActionFrom和Action(servlet控制器)

配置struts-config.xml文件

友好界面设计开发(jsp,成功错误跳转页面)

在web.xml中配置ActionServlet

struts处理中文乱码问题(过滤器)

存放数据的表单类需要继承ActionForm抽象类,数据类中的成员函数设置获得属性值(set/get方法)必须与表单属性名(name属性值)相对应,一般为了方便数据类中的成员变量属性名与表单属性名(name属性值)一致

eclipse提示快捷键Alt+/

分控制器类需要继承Action类,并重写public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response)函数

struts-config.xml文件配置ActionForm与Action、以及对应关系、跳转位置,一般文件放在/WEB-INF目录下

struts-config.xml文件配置:

        

                 

        

        

                 

                         

                 

        

form-beans:配置表单

action-mappings:配置所有分控制器

action:配置分控制器

forward:配置跳转页面

web.xml文件配置:

 总控制器名

 指定总控制器全路径(一般是引用路径org.apache.struts.action.ActionServlet)

 

  config

  指定配置信息路径即struts-config.xml的路径 [,struts-config.xml的路径(多个配置文件)]

 

 总控制器名

 指定请求都通过总控制器(一般是*.do)

mapping.findForward("指定页面的跳转名"); 跳转页面

提交表单数据后,总控制器通过反射机制实例化对应表单类,并调用相应的set方法存放表单数据

struts1的所有控制器(包括总控制器)都是单态的,即在整个程序运行工程中,始终是一个对象

jstl(jsp standard tag libaray)jsp标准标签库

优点:

提供应用程序服务器之间统一的接口,web应用可以在不同服务器之间移植

简化jsp在web应用程序中的开发

减少jsp中java片段甚至没有,代码更简洁

提高jsp开发速度,缩短开发周期

jsp使用jstl标签库需要下载相应的jar包,并在jsp开始部分引入

tld:tag library description标签库描述文件

<%@ taglib prefix="标签前缀(一般是c)" uri="对应标签的资源地址名(在对应的tld文件中)"%>

jstl标签分类:

一般标签:

相当于<%out.println(“内容/( (属性名)数据对象域.getAttribute(“属性名”) ).get变量名”) %> 不同对象域中相同属性名在c:out中的优先级从高到低pageContext,request,session,application

相当于<%数据对象域.setAttribute(“属性名”,”属性值”) %>

删除指定数据对象域中的指定属性名的值

将捕获的异常信息存入指定异常名中,取出异常信息可以使用异常名.message

条件标签:

执行的语句 对象名.属性名相当于对象名.get属性名()的调用

jsp可以有多个引入指令

        

         []

        

多分支判断语句相当于switch,case,default语句

迭代标签:

循环执行的语句相当于for循环语句,将指定属性名的集合对象中每个对象取出放入变量名中

将指定属性名的集合对象或字符串中通过分割符分割后依次放入变量名中

判断变量是否为空的表达式:${empty/(!empty) 变量名}

url相关标签:

重定向到指定url地址

将指定url地址文件导入本jsp页面中

引入文件时传入的参数以及url地址跳转传入的参数都是通过${param.属性名}获取

struts标签分类:

html标签:

相当于

设置超链接默认url地址

相当于 显示指定图片按钮

相当于 显示指定图片

相当于 显示指定的超链接

struts的有信息输入的html标签需要放在表单标签()中,否则会出错

get提交方式可以让浏览器收藏页面url地址时把url地址后面的参数一起收藏

struts的html标签与普通的html标签可以一起使用

多个过滤器执行顺序是根据部署顺序决定的

bean标签:

显示数据对象域中属性名对应的对象的指定成员变量名的值

property不是根据成员变量名指定属性名,而是根据set属性名()和get属性名()中的属性名指定属性名

使用工具引入struts会自动生成资源文件ApplicationResources.properties,资源文件中存入参数的格式:

变量名={参数个数号(0到4)} 外部输入的参数根据参数号可以替换指定位置的参数

#号表示注释

将资源文件中变量名指定参数号的参数替换后显示

资源文件中中文字符需要转换成ASCII码

jdk中ASCII码转换器在jdk安装目录下的bin\native2ascii.exe

定义变量或者对象存入数据对象域中

实例化一个指定类名的对象

给对象的指定成员变量赋值

logic标签

每个对象执行语句 将指定属性名对应的集合中的对象依次取出放入指定对象名中

一般标签选择使用顺序是jstl标签,el表达式,struts标签

执行语句 指定属性名是否空执行相应语句

执行语句 对象的指定成员变量名的值大于指定值执行相应语句

控制器action继承DispatchAction(分派控制器)用于处理一类请求,配置分派控制器是指定parameter属性名称,属性名称对应的值用于指定请求处理的函数

使用分派控制器函数名一般自定义,指定处理的函数是在跳转重定向时在url地址后面加入参数parameter属性名称=属性值(指定处理函数的函数名),默认不加参数会指定默认函数execute()进行处理

数据对象域.getSession().invalidate(); 设置所有session失效

数据对象域.getSession().removeAttribute(属性名); 设置指定属性名的session失效

action标签中的forward标签是局部跳转,这个forward只能被这个action使用

         []

全局跳转,所有的action都能通过跳转名进行跳转

dynimic form(动态表单)不需要创建一个表单类直接在struts-config.xml中进行配置:

        

                  []

动态表单名.getString(“参数名”); 取出动态表单的指定参数名的参数值

动态表单名.get (“参数名”); 取出动态表单的指定参数名的参数对应的对象

表单中有文件控件需要重新指定表单的编码方式:

FormFile 文件名 定义表单文件变量

jsp页面文件输入

页面文件上传需要通过控制器将文件以流的形式存入服务器内存中

InputStream 文件流名称=FormFile.getInputStream(); 获得表单文件输入流对象

String 变量名=UUID.randomUUID().toString(); 获得一个不会重复的16进制数

int 变量名=字符串.lastIndexOf(“指定字符串”); 获得指定字符串在字符串最右边出现的位置

字符串.substring(开始位置(从0开始),结束位置(不包括结束位置)); 返回字符串从开始位置到结束位置的截取子字符串

上传文件名称中文乱码问题可以通过过滤器解决

response.setHeader(“Content-Disposition”,”attachment;filename=下载的文件名”); 下载文件时设置返回浏览器的响应信息,表示要下载文件

java.net.URLEncoder.encode(“中文字符串”,”编码格式”); 下载的文件名中文需要转换

所有文件类型种类可以在web.xml文件中查看

你可能感兴趣的:(学习笔记)