首页 > 编程语言 >JAVA框架学习

JAVA框架学习

时间:2024-02-05 22:12:28浏览次数:28  
标签:xml JAVA 框架 struts 学习 Struts1 jsp Action

Struts--------------Struts2------------------>Hibernate ---------------->iBatis(MyBatis)--------spring-------------------->springmvc-------->MyBatis-plus

2000年     2006年               2001年        2002年      2003年      2015年              2016年

HIbernate是主流的ORM框架Object Relation Mapping 对象关系映射,将面向对象映射成面向关系

1.框架概述

2.三层架构与Struts2

3.MVC与Struts2

4.案例中存在的一些问题

所谓框架:就是把一些繁琐的重复性代码封装起来,使程序员在编码中把更多的经理放到业务需求的分析和理解上面

特点:封装了很多细节,程序员在使用的时候会非常简单

三大框架:struts,Hibernate,spring(SSH)

    springmvc,mybatis,spring(SSM)

三层架构:

  MVC

    M:model模型,封装数据,javabean

    V:view 视图,展示界面.jsp

    C:Controller控制器,控制程序流程

 

   Struts1.x的基本开发流程与之前使用的DispatcherServlet功能类似的

   在Struts1.x的时代里面还没有所谓的Annotation配置支持,如果要使用struts1,建议生成web.xml

    开发步骤:

      1.StutsProject

      2.记得要 选择web.xml

         3.所谓的开发框架实际就是一组开发程序jar包,那么在MyEclipse里面可以直接为项目配置这些jar包,

         选择项目,而后点击右键,选择MyEclipse的项目支撑,这个红色的地方就是struts支持的地方

        

 

         4.进入struts配置页面

                

             随后的界面里面需要定义一些配置信息,这些配置信息包含如下内容:

              1.Servlet的处理路径:Struts1.x中的Servlet路径是一个经典的"*.do";

              2.随后要求输入项目的程序包,本次设置为:cn.mldn.demo

                这个时候会发现自动创建有一个文件""ApplicationResources"

             3.随后会询问用户要使用的开发包,struts的开发包没有多少个,默认就好

 

        

             4.项目建立完成后会自动在项目中出现一下内容

              1>会自动的讲Struts1.x的开发包配置到CLASSPATH之中

              2>在WEB-INF目录会先自动创建一个struts-config.xml文件,这个是struts的核心配置文件

              3>在src目录下(最终会输出到WEB-INF/class下)存在有一个ApplicationResources.properties

        5.建立一个login.jsp页面

            1>在建立这个页面的时候稍微有一些不同,将使用Struts1.x提供的标签完成

               范例:程序代码

              此时发现定义表单的时候所使用的形式不太一样了,因为它使用标签处理,为了方便回填

               <form>:

               <input type="text">:

               <input type="password">:

           5.配置错误信息,修改ApplicationResources.properties文件

 

           6.后面开始编写处理程序,但是Struts1.x的处理程序是分为两种类型:Action(负责跳转的,与Servlet相同),ActionForm(进行数据验证时用的)

          

                随后会首先进入到创建ActionForm的操作对话框,在这里输入以下的内容

                1>Use case:表示本次操作的模块名称,输入"mylogin"

 

                2>随后会自动出现一个name的"myloginForm",它是在struts-config.xml

                3>让这个ActionForm继承"org.apache.struts.ActionForm"类

                4>此Action类继承"org.apache.struts.action.Action"父类

                5>随后设置inputSource为login.jsp

                6>首先在MyloginActionForm中编写如下代码

                   a.首先可以发现建立的数学都会自动生成setter和getter方法

                 b.数据验证的代码操作要求写在validate方法里面

                  此方法主要进行用户输入数据的验证,如果现在输入的数据有错误,则将错误信息保存在ActionMessage对象,可以同意保存在ActionErrors,如果在返回的是null    

                  或者ActionError返回的没有包含任何错误信息,那么会将请求继续交给Action进行处理,否则会返回一个错误路径

                mapping:表示所有的映射信息,此类一般不适用

                request可以接受用户的请求参数

                ActionErrors:如果返回为null火蟑螂里面保存的错误信息为0,那么表示正确

              7.开发Action程序,一旦代码执行到了Action之后,那么就表示数据验证已经通过了,一定是符合要求的数据

                1>在struts-comfig.xml文件里面配置跳转的路径,现在假设成功或者失败都调整到login.jsp

              8.此时既然有可能出现错误信息,那么在login.jsp页面里面使用一个标签输出:

                <html:errors/>

                ${msg}

                此时一个最为基础的struts1.x的应用就实现了,但是可能最大感受开发结构很规矩,代码编写很受限,

      4.总结:

        Struts作为MVC开发框架的先河,在其影响之后产生了:JSF,Webwork,一定要记住:Struts是工作显示层与控制层的框架,他不涉及业务层和数据层的框架

        1.vo的数据传递

        2.实现Action的错误跳转

        3.具体内容

          此时的项目里面所有的数据都是分开传递的,但是在实际开发之中,所有的数据最好都是采用vo类进行传递    

          所以Struts1.x里面支持参数与vo类的转换

        范例:顶一个一个Member.java的vo类

    3.具体内容

      只要一说到文件上传的操作,就应该离开想到以下几点问题

      1>上传文件的表单一定要进行封装

      2>需要使用一些上传组件,帮助用户简化上传的难度

      3>对于被封装的表单与不封装的表单取得参数内容的操作形式不同

     如果你现在的项目使用mvc开发(不适用开发框架),那么一定使用SmartUpload上传

      使用的开发框架(Struts,springmvc)都使用的是apache的FileUpload上传组件完成,这个组件进行了足够多的封装操作,以简化用户的使用难度

      现在的Struts1.x里面使用的也是FileUpload上传组件

      如果要想上传,那么在定义表单的时候要使用文件选择框以及表单封装

  Struts开发步骤:

    1.写jsp页面

     2.请求维了struts处理,这个时需要导入struts开发包

    3.在web.xml文件中配置struts的actionServlet处理所有.do请求

 

    4.在WEB-INF下目录中加入struts的工作配置文件:struts-config.xml

 

     5.在struts的工作配置文件:struts-config.xml,配置actionServlet收到register请求后,调用ReigsterAction处理,并把请求中的数据封装到registerFor中

 

      6.编写封装数据的RegisterFormBean和处理请求的RegisterAction

      7.编写显示全局消息的message.jsp

 

标签:xml,JAVA,框架,struts,学习,Struts1,jsp,Action
From: https://www.cnblogs.com/miwaiwai/p/17992635

相关文章

  • Java IO
    JavaIO基础知识IO流简介IO即 Input/Output,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。数据传输过程类似于水流,因此称为IO流。IO流在Java中分为输入流和输出流,而根据数据的处理方式又分为字节流和字符流。Ja......
  • OpenFeign框架相关
    OpenFeign是什么?OpenFeign是一个声明式的WebService客户端。使用OpenFeign能让编写WebService客户端更加简单。使用时只需定义服务接口,然后在上面添加注解。OpenFeign也支持可拔插式的编码和解码器。springcloud对feign进行了封装,使其支持MVC注解和HttpMessageConverts。和eur......
  • Python 机器学习 特征预处理
    1、缩放特征(FeatureScaling)特征预处理是一个重要的步骤,而特征缩放(FeatureScaling)是其中的一个关键环节。特征缩放通常用于标准化数据集中各个特征的范围,使它们在相似的尺度上。这一步骤对于许多机器学习算法特别重要,尤其是那些基于距离的算法(如K-近邻)和梯度下降法(如线性回归、......
  • PowerShell是一种跨平台的任务自动化解决方案,包括命令行shell、脚本语言和配置管理框
    PowerShell是一种跨平台的任务自动化解决方案,包括命令行shell、脚本语言和配置管理框架。PowerShell提供了丰富的命令(称为cmdlet),可以用来执行许多Windows管理任务,包括但不限于用户和组管理、文件系统操作、进程和服务管理等。下面列举一些常见的net命令以及它们在PowerShell中的对......
  • 3.C语言学习--分支与循环例题分析2
    1.有三个数,将他们按照从大到小的顺序输出intmain(){ inta=0; intb=0; intc=0; scanf("%d%d%d",&a,&b,&c); inttmp=0; if(a<b) { tmp=a; a=b; b=tmp; } if(a<c) { tmp=a; a=c; c=tmp; } if(b<c)......
  • 耗时一个月我问遍了身边的大佬,零基础自学Java的路线,适用程序员入门&进阶,Java学习路线,2
    作为一个有志于成为Java程序员的你,或许正处在技术生涯的起点,或许已经走过了入门的道路,期待跨越进阶的门槛?无论处于哪个阶段,一条明确的学习路线都至关重要,通过向众多行业大佬请教、反复探索和实践,总结出一套适用于零基础自学者大学四年Java学习路线,也同样适用于从初级到研发专家的学......
  • Java-10注解与反射
    注解注解(Annotation)也被称为元数据(Metadata),用于修饰包、方法、属性、构造器、局部变量等数据信息。注解不影响程序逻辑,但注解可以被编译或运行。在JavaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在JavaEE中注解占据了更重要的角色,例如用来配置应用程序的......
  • JAVA线程池
    线程池中的四种拒绝策略通常是指:AbortPolicy(默认策略):这是默认的拒绝策略。当线程池无法接受新任务时,它会抛出RejectedExecutionException异常。CallerRunsPolicy:在这种策略下,当线程池无法接受新任务时,会使用提交任务的线程来执行该任务。这样做的目的是为了降低新任务的提交......
  • 【Flink入门修炼】1-1 为什么要学习 Flink?
    流处理和批处理是什么?什么是Flink?为什么要学习Flink?Flink有什么特点,能做什么?本文将为你解答以上问题。一、批处理和流处理早些年,大数据处理还主要为批处理,一般按天或小时定时处理数据,代表性的框架为MapReduce、Hive、Spark等。但是,传统批处理的问题也很快显现:实时性......
  • java 内存布局
    面试题:初始化创建的对象有多大?答案:16字节Objecta=newObject();16字节String[]b=newString[2]();16字节/24字节对象的内存布局主体内容包括:对象头:MarkWord、指针、数字长度(数组对象才有)数据体:对象的数据,初始化一般为空数据对齐:要求对象大小,为8的倍数,而......