今天开第四章啦,预计本系列教程(Java Web框架)将于12月前完成哈,共勉,加油↖(^ω^)↗!
前言 对struts2的使用不外乎这几点,参数自动封装,拦截器的使用,数据校验,ognl表达(值栈和actionContext的讲解),struts2的标签,struts2的国际化, struts2的文件上传下载。 把这几个功能都学会了使用之后,struts2基本上就学完了。 一、数据自动封装概述 Struts2提供了一些基于拦截器的数据封装方式,一共有四种,分为 静态参数封装和动态属性封装 动态属性封装又可分为属性驱动和模型驱动 属性驱动又可分为基本属性驱动和对象图导
一、java基础知识 1.java基础语法2.java对象和类3.java基本数据类型4.java变量类型5.java修饰符6.java运算符7.java循环结构8.java分支结构9.java方法知识解析10.java流(Stream)、文件(File)和IO11.java异常处理12.java继承13.Java 重写(Override)与重载(Overload)14.Java多态15.Java接口16.Java抽象类17.Java包(package)18.Java多线程编程19.Java集合框架2
1、struts.properties配置常量等同于struts.xml中配置(置于类加载路径下面) struts.multipart.maxSize文件上传最大大小 struts.action.ex
学过SSH框架很长一段时间了,一直没有很系统的总结一下,这里先简单谈谈Struts2。 为什么要用Struts2? 这里列举一些Servlet的缺点: 1、每写一个servlet在web.xml中都要做相应的配置。如果有多很servlet,会导致web.xml内容过于繁多。 2、这样的结构不利于分组开发。 3、在servlet中,doGet方法和doPost方法有HttpServletRequest和HttpServletResponse参数。这两个参数与容器相关,如果想在servlet中作单元测试,则必须
在 struts.xml 配置文件中,通过参数注入的方式,给动作类的参数注入值。相当于调用的是该参数的 setter方法 。控制台输出的是 张三,18 ,如下图所示:
转换器 从一个 HTML 表单到一个 Action 对象,类型转换是从字符串到非字符串 Http 没有 “类型” 的概念,每一项表单的输入只可能是一个字符串或一个字符串数组,在服务器端必须把 String 转换为特定的数据类型 在 struts2 中把请求参数映射到 action 属性的工作由 Parameters 拦截器负责,它是默认拦截器的一员,而且可以自动完成字符串和基本数据类型之间的转换 由此可以知道前面的案例中在不做任何处理的情况下也不会出异常,是因为我们在服务端所要的类型均为基本类型,param
一、封装请求正文到对象中(非常重要) 1、静态参数封装 在struts.xml配置文件中,给动作类注入值。调用的是setter方法。 原因:是由一个staticParams的拦截器完成注入的。 2、动
在使用servlet开发中,表单中提交的数据到servlet后都是字符串类型,需要程序员手动进行类型转换。
Struts2之类型转换器 本人独立博客https://chenjiabing666.github.io 在我们接收表单的请求参数的时候其实默认的都是String类型,但是有时候我们需要其他的数据类型,比如int,double,float,Date。 其实前面表单的传值都是字符串形式的,但是为什么我们在JavaBean中定义了不同的类型的数据,Struts还是会正确接收表单传递过来的值呢,因为使用了Struts中的内建的类型转换器 传统的类型转换器 在Servlet中我们可以自己获取请求参数自己转换类型,通
表现层、MVC模式。 2、Struts1和Struts2的一个显著区别是什么? 答:
===================================== 1.register.jsp
JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层)、业务逻辑层、数据持久层。【其中WEB层会使用前端控制器模式】 MVC是一种思想,是一种模式,将软件分为 Model模型、View视图、Controller控制器。【JavaEE开发更强调三层结构,web层开发更注重MVC】 Struts2 就是web层开发框架,符合MVC模式;struts1 、webwork 、jsf 、SpringMVC 都是MVC
1. JavaEE软件三层结构和MVC的区别? JavaEE软件三层机构是由sun公司提供JavaEE开发规范的:Web层(表现层)、业务逻辑层、数据持久层。【其中WEB层会使用前端控制器模式】 MVC是一种思想,是一种模式,将软件分为 Model模型、View视图、Controller控制器。【JavaEE开发更强调三层结构,web层开发更注重MVC】 Struts2 就是web层开发框架,符合MVC模式;struts1 、webwork 、jsf 、SpringMVC 都是MVC 2. Strut
在之前的学习中,我们知道struts2可以将表单中的数据自动设置到处理类的属性上,还有类型转换等其他功能。那么struts2是怎样做这件事情的呢?
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.
讨论内省的前提是需要了解Java中的反射,如果需要了解反射的话,可以点击下方的文章
在6月的投票中,结果昨天已经出来了,大家多数的希望多推送一些java的基础知识。首先来一下热身,debug模式启动起来.......... 身为一个程序猿,开发过程中(调研--需求--产品-
好了,今天开始第二章,O(∩_∩)O哈哈~,今天这一章主要讲Struts 2的运行环境和原理,及工作流程,后面长长的文章就当是看API把,哈哈。
最近在研究一些Java相关的问题时候,虽然有能力读java的代码,但是从没深入了解过Java的我不免总是在各种只有Java上才有的特性上栽坑,于是忽然觉得可能需要了解一些java的漏洞,本篇文章没有太多干货,主要是自己在研究过程中的一些记录吧。
f-sm-1. 讲下SpringMvc和Struts1,Struts2的比较的优势
Struts2中有很多配置文件可以去配置常量,对同一个量在不同配置文件都配置了,那么生效的肯定是最后加载的,因此需要知道配置文件的加载顺序
float、double不能用来表示精确的值,运算不精确——>解决方案:BigDecimal。
项目地址:https://github.com/Jonekaka/javaweb-springMVC-54
Struts2的核心功能,一般由两部分组成:struts.xml的Action映射和使用Java编写的Action实体类。在struts.xml中通常使用<action>、<result>、<package>等一系列标签完毕Action的映射,它们的属性分别有:
Struts2 和 SpringMVC 都是 Web 开发中视图层的框架,两者都实现了数据的自动绑定,都不需要我们手动获取参数然后关联到对应的属性上,下面就谈谈两者的区别。
@InitBinder用于在@Controller中标注于方法,表示为当前控制器注册一个属性编辑器或者其他,只对当前的Controller有效。
基本类型与引用类型的区别: 1.基本类型与引用类型的组成 基本类型是一个单纯的数据类型,它表示的是一个具体的数字、字符或一个布尔值,例如100、'M'和true。对于引用类型,若一个变量引用的是一个复杂的数据结构的实例,则该变量的类型就属于引用类型,在引用类型变量所引用的实例中,不仅可以包含基本类型的变量,还可以包括对这些变量进行操作的行为。 例如:创建一个People类,该类中包含了一个short型的成员变量和一些String型变量,并且定义了对这些成员变量进行操作的方法,其代码如下: public class People{ private String id; //表示身份证号码 private String name; //表示姓名 private short age; //表示年龄 private String sex; //表示性别 public void setId(String id){ //设置成员变量id值的方法 this.id=id; } public String getId(){ //返回成员变量id值的方法 return this.id; } …//省略了其他成员变量的setXXX()与getXXX()方法 } 下面创建People类的两个实例,并分别通过变量you和me引用: People you=new People(); People me=new People(); 则变量you与me的类型为引用类型,并且引用的是类的实例,所以更具体的为类引用类型。对于类引用类型变量,通过运算符“.”就可以访问类中的成员变量和方法了。例如,通过以下代码分别为变量you与me所引用的实例设置成员变量name的值: you.setName("reader"); //设置name值为"reader" me.setName("MR"); //设置name值为"MR" 通过以下代码来输出引用变量you与me所引用实例的name值: System.out.println(you.getName()); //输出"reader" System.out.println(me.getName()); //输出"MR" 2.Java虚拟机的处理方式 对于基本类型的变量,Java虚拟机会根据数据类型为其分配实际占用的内存空间,如对int型变量为其分配32位内存空间并存放变量值。 而对于引用类型变量,Java虚拟机同样要为其分配内存空间,但该空间内存放的并不是变量所引用的对象,而是对象在堆区存放的地址。所以引用变量最终只是指向被引用的对象,而不是存储了被引用的对象,因此两个引用变量之间的赋值,实际上就是将一个引用变量存储的地址复制给另一个引用变量,从而使两个变量指向同一个对象。 例如:定义两个Book类型的类引用变量book1和book2,其中变量book1引用Book类的一个对象,book2不引用任何对象。 Book类中定义了一个float型成员变量price,表示价格,代码如下: public class Book{ private float price=50.0f; //float型成员变量price, 表示价格 private int store=100; //int型成员变量store, 表示库存 private String name; //String类型成员变量name, 表示书名 } 通过以下代码定义book1和book2引用变量。 Book book1=new Book(); Book book2=null; Java虚拟机为引用变量book1、book2及book1所引用对象的成员变量分配的内存空间如图1所示。 从图1可以看出变量book1引用了Book类的实例,book2没有引用任何对象,下面通过如下代码对book2变量进行赋值。 book2=book1 //将book1引用对象的地址复制给book2变量, book1与boo
可以简单的理解为Java程序为了加强阅读行自定义的名称,如类名、方法名、变量名。仅仅是个名字而已。对于这样一个名字不像我们人类一样可以随意起名,程序有一定的命名规则。
SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring的 Spring MVC 框架或集成其他 MVC 开发框架,如 Struts1(现在一般不用),Struts2 等。 SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。 它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful 编程风格的请求。
其中需要特别注意的是 byte内存占用为1字节 char内存占用为2字节。和我们之前c语言中学到的很不一样。
* c: 变量使用时有作用域的限制。 public static void main(String[] args) { int x = 20; { int y = 20; } System.out.println(x);//读取x变量中的值,再打印 System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量 }
java语言有三种输出方式,第一种是打印不换行,第二种是打印并换行,第三种是格式化输出。
本文主要介绍了Java中的基本数据类型及其转换,包括整数、浮点数、字符和布尔类型。同时,还讨论了各种数据类型之间的转换方式,以及需要注意的精度损失问题。此外,还介绍了字符和其他数据类型的转换方法。
go语言中分为类型转换(type conversion)、类型断言(type assertion)和指针类型转换。
C++是一种强类型语言,它要求程序员在编程时要定义每一个变量的类型,这就是C++数据类型的作用。C++数据类型包括内置数据类型和用户自定义数据类型。本文将从多个方面对C++的数据类型做详细的阐述。
提示:本文只罗列出JAVA数据类型的一些注意事项,相关的基础知识并不会一一去详细说明。
在上一篇文章中我们学会了如何使用变量,像这样存储一个整数 int age=10;,可以在开发工具中编写一行这样的代码 int age=10.5; 就会发现开发工具报错了,是因为变量中的数据类型也是不能随便用的。
Spring的官网:https://spring.io/ Struts与Hibernate可以做什么事? Struts, Mvc中控制层解决方案 可以进行请求数据自动封
在java中,数据类型分为基本数据类型和引用数据类型。今天我们主要介绍一下基本数据类型。java中有8中基本数据类型,分别用于存储整数、浮点数、字符数据和布尔类型的数据。下面的图列出了java中的基本数据类型,方便大家理解。
格式:char array[] = new char[80]; //先要创建以一个容量足够大的char型数组,数组名为array
Java 数据类型 知识点 数据类型分类 Java 中的数据类型有两类: 值类型(又叫内置数据类型,基本数据类型) 引用类型 值类型和引用类型的区别 从概念方面来说 基本类型:变量名指向具体的数值。
变量是Java程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。此外,所有的变量都有一个作用域,定义变量的可见性,生存期。
Java数据类型分为三大类,即布尔型、字符型和数值型。其中数值型又分为整型和浮点型。Java的基本数据类型(8种)为布尔型boolean(1字节);字符型char(2字节);整型byte(1字节)、short(2字节)、int(4字节)、long(8字节);浮点型float(4字节)、double(8字节)。此外,编程时还经常用到两种类变量,String和Date。 Java数据类型的转换一般分三种,分别是:简单数据类型之间的转换、字符串与其他数据类型的转换、其他实用数据类型的转换。 简单数据类型之间的转换
1.问题:介绍一下 finalize 方法 答案: final: 常量声明。 finally: 处理异常。 finalize: 帮助进行垃圾回收。接口里声明的变量默认是 final 的。 final 类无法继承,也就是没有子类。这么做是出于基础类型的安全考虑, 比如 String 和 Integer 。 这样也使得编译器进行一些优化, 更容易保证线程的安全性。 final 方法无法重写。 final 变量的值不能改变。 finalize() 方法在一个对象被销毁和回收前会被调用。 finally, 通常用于异常处理,不管有没有异常被抛出都会执行到。比如,关闭连接通常放到 finally 块中完成。
Java 语言提供了八种基本类型,用户无需定义也可以直接使用。其数据保存在相应的方法栈中。
领取专属 10元无门槛券
手把手带您无忧上云