struct出现原因:Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间,并不是说提高了运行效率,反而降低了,因为以前一个servlet类就是一个action,其他不变,但struct多了一个总控制器ActionServlet和其他配置文件。但使用struct可以提高系统的维护和开发效率,我们只需要弄action和actionForm就可以了。
servlet执行过程:以前servlet每个页面都设置一个servleet类来处理请求和响应,再获取用户提交的数据和再把数据与持久化类对应起来。再做判断,决定跳转,再让jsp显示。
struct执行过程:使用struct时,通过运行时初始化ActionServlet,再把各个持久化类各个属性值设为null,当有请求来时,通过name属性找form-beans中的form-bean的name属性得到ActionForm的包名类名,先实例化form,,把用户数据提交给它,调用form的validate方法验证、ActionErrors返回null表示验证通过,否则失败返回,验证通过会根据请求的action类型,实例化Action,执行Action的execute方法,根据传进来的actionForm持久化对象可以取到传进来的数据,数据可以和数据库中的数据交互,再决定跳转。也就是说struct封装了用rquest.getParameter(),再把数据传给javabean持久化类。关键是struct弥补了jsp标签的不足,Taglib和页面导航。
struct常用的标签库
bean:可以访问已经存在的JavaBean以及它们的属性,还可以定义新的Bean,把它存放在用户指定的任何范围内,供网页或者其它元素访问
用于访问HTTP请求信息或者JSP隐含对象的Bean标签
用于访问Web应用资源的Bean标签
用于定义或者输出JavaBean的Bean标签
html:标签库可以和标准的HTML标记完成相同的功能
用于生成基本的HTML的标签
用于生成HTML表单的标签
显示错误或者正常消息的标签
logic:可以根据特定的逻辑条件来控制输出页面的内容,或者循环遍历集合中所有的元素
进行比较运算的Logic标签
进行字符串匹配的Logic标签
判断指定内容是否存在的Logic标签
进行循环遍历的Logic标签
进行请求转发或者重定向的Logic标签
准备:
1 客户端jsp使用Struct标签库输入与输出端
2 web配置文件
3 struct1 配置文件
4 操作类