Java学习笔记(一)

保姆级教程:用Code Blocks搞定中科蓝讯AB5768E蓝牙音响SDK开发环境(附资源包) 本文提供了一份详细的Code Blocks配置指南,帮助开发者快速搭建中科蓝讯AB5768E蓝牙音响SDK开发环境。从工具链安装、环境配置到工程导入和调试技巧,涵盖全流程避坑要点,特别适合K12开发板初学者。附资源包下载,助您高效完成蓝牙音响开发。 阅读详情

从今天起开始每天书写Java的学习笔记,零零碎碎的写吧,改天系统的整理一下。
今天写一下Java的框架之一Struts2的学习笔记,因为项目需要今天重新拾起来了Struts2,从头开始学习比刚开始强多了。
要说框架那就不得不先提一下MVC机制:
MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率。在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封装了应用程序的输出形式,也就是通常所说的页面或者是界面;而控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答。MVC模式的这三个部分的职责非常明确,而且相互分离,因此每个部分都可以独立的改变而不影响其他部分,从而大大提
高了应用的灵活性和重用性。
(再次附上一些基础的概念:

  • 所谓框架:就是能完成一定功能的半成品软件。在没有框架的时候,所有的工作都要乖乖的从零做起;但是,有了框架,它为我们提供了一定的功能,就可以在框架的基础上做起了,大大提高开发的效率和质量。
  • web应用框架,这说明Struts2的应用范围是Web应用而不是其它地方。换句话说Struts2更注重将Web应用领域的日常工作和常见问题抽象化,为我们提供一个平台,让我们能基于这个平台快速的完成Web应用开发。
  • 轻量级:是相对于重量级而言,指的是Struts2在运行的时候,对Web服务器的资源消耗较少,比如CPU、内存等,但是运行速度相对较快。
  • 基于MVC,说明基于Struts2开发的Web应用自然就能实现MVC,同时也说明Struts2着力于在MVC的各个部分为我们的开发提供相应帮助。

所以称Struts2为一种基于MVC的轻量级的web应用框架。

)
在理解了MVC的概念之后我们再来看Struts2,首先Struts2提供了一种拦截机制,举个例子,消费者买菜,远古时期消费者从菜农手里直接买菜,很便宜,但是后来随着发展有了上商贩,商贩首先从菜农那里买了菜然后卖给了消费者,这样消费者变成了间接的买了菜。Struts2在此处相当于商贩,当前台的Action传送消息给后台的Servlet时,Struts2的拦截机制将该HttpServletRequest的消息给拦截了下来。进而对该消息进行处理,然后对其转发。这就是其主要的机制。
下面介绍一下Struts2的基本组成情况:WebWork与Struts合并之后,根据功能的细分和设计,拆分出一个叫xwork的部分,用来处理与Web无关的部分,也就是与Servlet无关的部分,比如:用户数据的类型转换、动作调用之前的数据验证、动作的调用等等。
Struts2功能:
Struts2能为我们带来什么?我们会这么问,下面将今天看的Struts2的功能贴在下面:
  • Struts2通过简单、集中的配置来调度动作类,使得我们配置和修改都非常容易。
  • Struts2提供简单、统一的表达式语言来访问所有可供访问的数据。
  • Struts2提供内存式的数据中心,所有可供访问的数据都集中存放在内存中,所以在调用中不需要将数据传来传去,大家都去这个内存数据中心访问即可。
  • Struts2提供在动作类执行的前或后附加执行一定功能的能力,能实现AOP。
  • Struts2提供标准的、强大的验证框架和国际化框架,而且与Struts2的其他特性紧密结合。

类似这样的功能很多,不胜枚举。

       在Struts2官方文档的首页上,Struts2开发团队列出了Struts2的一些优势,一起来看看:

  • 简单的建立 - 直接拷入自带的空项目(struts-blank.war)的各种配置即可。
  • 改进的设计 - 代码不直接依赖各种HTTP(如HttpServletRequest)的API。这样可以使得单元测试简单、高效。
  • 强大的标签 - 使用标签可以有效的减少页面代码。
  • 良好的ajax支持 - 增加了有效的、灵活的ajax标签,就像普通的标准struts标签一样。
  • 简单的spring集成 - 使用spring注入Action依赖的其他bean,而不需要额外的代码。
  • 强大的结果 - 除了简单的JSP或Freemarker等标签,还支持JasperReports, JFreeChart和文件下载等,使得这些技术就像在Struts2中内置一样,而不需要其他结合代码。
  • POJO(不实现特殊接口或继承特殊父类的普通对象)的forms - 不再有struts1的ActionForm。任何JavaBean都可以用来向Action传入或传出request的参数,甚至二进制的OutputStream等也可以。
  • POJO的Actions - Action也不用实现特定的接口或继承特殊的类了。甚至可以使我们的Action不经过修改,就可以被其他框架重用。
  • 简单的插件 - 简单的放入一个jar包,任何人都可以扩展struts2框架,而不需要什么特殊的配置。Struts2不再是一个封闭的框架,任何人都可以为其添砖加瓦,我们可以通过实现Struts2的某些特殊的可扩展点,比如自定义拦截器、自定义结果类型、自定义标签等等,就可以为Struts2定制我们需要的功能,而且还可以快速的发布给别人使用,就像Eclipse的插件机制一样,超酷。
  • 明确的错误报告 - Struts2的异常简单而明了,直接指出错误的地方。
  • 简单的Action测试 - 不需要模拟HTTP对象就可以直接测试struts2的action。这使得我们的单元测试非常方便。
  • 智能的默认 - 跳过了冗余的设置。很多框架级对象都有一个默认的值,可以根本不用去关心它们,使用其默认设置就可以完成95%的日常工作。




eCognition易康操作教程(二):多尺度分割基于多光谱数据构建规则集,结合DSM高程数据提取建筑物、树木和绿地 一、数据 数据来源:教程中的实验数据,共包含RGB三个波段,还有数字地表模型(以下简称DSM)文件。 图一 RGB影像 数据特征:数据范围较小,要素种类少,仅包含较多的建筑和大片的绿地。由于建筑的房顶使用的材料和材料颜色不同,所以建筑的光谱特征没有规律,是不连续的特征。而绿地的光谱特征则十分容易分辨。 但是建筑通常具有规则的形状,而且建筑相比于周围其他要素... 阅读详情

相关推荐

银河麒麟V10-ARM架构-postgresql安装与部署指南

本文详细介绍应用源码进行pgsql的安装步骤,本文以postgresql-12.0为例。提示:以下是本篇文章正文内容,下面案例可供参考银河麒麟系统安装程序比较繁琐,潜在问题比较多,个人建议均通过源码自定义编译安装。国产系统还需努力啊!

idols_man的博客 1万+

Java学习笔记一

Java之父:詹姆斯·高斯林1991年诞生,最初叫Oak (橡树),1995年改名为Java,英文翻译为印尼爪哇岛,地名,因盛产咖啡而闻名。package 包名;多级包用" . " 作为分隔符修饰符 返回值类型 方法名(形式参数列表) {方法体语句;修饰符:(final、static 视需求添加)publicprotected默认(不加修饰符)priavte返回值类型:基本数据类型(Java中八种)引用数据类型(String、数组、集合、类,等)void (不需要返回值类型)

qq_56822397的博客 1766

Faster Planner——Kinodynamic Astar详解

实际成本和启发式成本 实际成本 Actual Cost   每条轨迹的真实代价函数定义如下: J(T)=∫0T∥u(t)∥2dt+ρT \mathcal{J}(T)=\int_{0}^{T}\|\mathbf{u}(t)\|^{2} d t+\rho T J(T)=∫0T​∥u(t)∥2dt+ρT 离散形式下: 启发成本 Heuristic Cost pμ∗(t)=16αμt3+12βμt2+vμc+pμc=pμc+vμc+T2∗((2∗vμc−2∗vμg)/(2∗T)−(6∗pμc−6∗pμg+6∗T∗v

漫长IT路 4831

java学习笔记一

java学习笔记①:一个java文件中只能有一个公用class,必须和文件名同名 一个文件中可以有多个类,但只能有一个公用类 一个类编译后形成一个class文件的字节码 文件 classpath的作用:指明字节码文件的路径,可以在任何地方执行 注意:java中要注意区分大小写 类名:每个单词首字母都要大写,变量名:第一个单词首字母不大写,其他的单词首字母都大写,函数名和变量名一样 常量全大写(总体...

smilesever的博客 159

Codesys—Modbus RTU称重变送器通讯案例

Codesys控制器使用标准的Modbus库,与支持ModbusRTU的称重变送器进行通讯的案例

原来你也__的博客 2739

非模式物种PySCENIC分析流程

外的物种想要做scenic分析的话, 可以使用同源基因转换后再进行分析, 将要分析的物种的gene Symbol转换为人、小鼠或者是果蝇的gene Symbol后进行分析。odiscus sinensis(中华鳖)的基因-细胞的矩阵,进行pyscenic分析的话,可参考以下示例。目前pyscenic分析支持的物种仅为人、小鼠和果蝇,其他物种暂时还没有相应的数据库,因。本教程基于Linux及服务。SCENIC转录因子分析。器中的Rstudio环境。例如我们有一个Pel。

weixin_47195452的博客 933

我的Java学习笔记(一)

我的Java学习笔记(一) 变量 变量 - 指代在内存中开辟的存储空间,用于存放运算过程中需要用到的数据; 1.变量在使用前,必须声明+初始化; 声明:类型 变量名 初始化:第一次赋值 2.同名变量不可以重复声明; 3.变量的命名规范:可以由字母、数字、"_“和”$"符组成;首字符不能以数字开头; 4.变量的命名规则:变量的命名需要采用“驼峰命名法”,即如果变量的名字由多个单词组成,除第一个单词外...

DTBIGhead的博客 228

已解决“TimeouEror [WinEror 10060由于连接方在一段时间后没有正确答复 或连接的主机没有反应,连接尝试失败“,亲测有效!!!

已解决"TimeouEror [WinEror 10060由于连接方在一段时间后没有正确答复 或连接的主机没有反应,连接尝试失败",亲测有效!!!

wbajsjhhhhh的博客 1万+

Java 学习笔记一 JAVA前言

JAVA前言1、JAVA的特点1)简单(Java语法是C++语法的一个"纯净"版本)2)可移植性(一次编译到处执行)3)面向对象4)分布式(Java把套接字连接等繁琐的网络任务变得非常容易)5)健壮性(Java编译器会检查出很多其他语言在运行时才检查出的错误;Java采用的指针模型可以消除重写内存和数据崩溃的可能)6)多线程(多线程编程的简单性是Java成为服务器端流行的开发语言的原因之一)7)安...

长安一片月的博客 293

微信小程序- 云开发上传并部署云函数时报错ResourceNotFound.Function, 未找到函数版本,请创建后再试。(小程序上传部署云函数提示错误,开发控制台中的云函数没有删除,详细排查)

微信小程序——云函数上传失败,微信小程序——解决上传并部署云函数时报错ResourceNotFound.Function, 未找到函数版本,请创建后再试。微信小程序上传云函数失败,微信小程序云开发|Error: ResourceNotFound.FunctionName, FunctionName 指定的资源不存在。微信云开发报错(Error: ResourceNotFound.FunctionName,微信小程序云函数报错,上传云函数 sum 失败 Error:,上传部署我们的云函数 2. 报错 错误信息

🏆 前端领域优质创作者 4314

VMware下载与安装

一、VMware下载 二、VMware安装

欢迎订阅我的“JAVA全栈开发笔记(全)”专栏,价格优惠,仅需19.9元。 315

Java学习笔记一——Java入门

Java小白初入门学习笔记

weixin_44806957的博客 260

MVDR算法: 自适应波束形成在信号处理领域中扮演着重要的角色。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。

MVDR算法是一种用于抑制干扰信号并增强感兴趣信号的自适应波束形成算法。它的基本思想是通过对干扰信号进行空间滤波,使其在感兴趣信号方向上的输出功率最小化。这种方法可以提高信号的质量和可辨识度,特别是在存在多个干扰源的复杂环境中。本文将介绍MVDR(最小方差无失真响应)算法,并提供相应的Matlab源代码实现。使用MVDR算法,我们可以通过对观测信号进行波束形成来抑制干扰信号并增强感兴趣信号。以上是MVDR算法的Matlab实现。的每一列代表一个阵列元素的观测信号。表示期望的波束指向,即感兴趣信号的方向。

HackWhisper的博客 1245

Java基础学习笔记一

目录名称说明bin该路径下存放了JDK的各种工具命令。javac和java就放在这个目录。conf该路径下存放了JDK的相关配置文件。include该路径下存放了一些平台特定的头文件。jmods该路径下存放了JDK的各种模块。legal该路径下存放了JDK各模块的授权文档。lib该路径下存放了JDK工具的一些补充JAR包变量:在程序运行过程中,其值可以发生改变的量。从本质上讲,变量是内存中的一小块区域,其值可以在一定范围内变化。数据类型 变量名 = 初始化值;

awxnn的博客 1303

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java学习笔记一JSP一

JSP和Servlet的本质是一样的,因为JSP最终必须编译成Servlet才能运行,或者说JSP 只是生成Serv let 的“草稿”文件。 DefaultServlet 新建一个动态web工程,只是写了一个HTML,没有编写Servlet,甚至一句Java代码都没写。但是启动Tomcat后我却可以通过浏览器访问到刚才编写的haha.html。这是为何?对于像Tomcat这样的Servlet容器...

肥叔菌的博客 9075

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java学习笔记 一

Java学习笔记

伶念的博客 264

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java 小白 学习笔记心得(一)

Java小白 学习笔记与心得 Java 小白 学习笔记心得(一) 本系列博客为学习JAVA后端的一系列笔记与心得。笔者作为初学者肯定会对很多问题仅有粗浅的见解甚至是错误的认识。若说的不对也请大家指出!作为Java语言的初学者,此博客是作为自己学习笔记作用,仅适合与完全没有接触过Java的小白一起学习的。各位Java大佬们,请避开此博客,以免浪费时间。 标识符 什么是标识符? 在java源程序设...

qq_40892813的博客 407

Java小白学习笔记(一)

(杂乱( • ω • )……) 关于在命令行中的指令: javac HelloWorld.java java HelloWorld javadoc *.java 在文件夹中,点击文件index.html。 文档注释:/** */ 输入: 接收键盘输入的工具类: import java.util.Scanner; ...

fumeifu的博客 226

java学习笔记(一)

进来没事总在看韩顺平老师的视频,受益匪浅,下面就来总结下他的java

weixinhum 1149

《JAVA核心技术》卷一 学习笔记

《JAVA核心技术》卷一 学习笔记 scanner读取文件时的一些问题 读取命令: Scanner in = new Scanner(Paths.get("test_text.txt"),"UTF-8"); 但一开始遇到了一些问题,开始时测试文件的相对路径与java文件在同一目录下,报错。 Exception in thread "main" java.nio.file.NoSuch...

weixin_41521186的博客 242

Java学习笔记(一)之JAVA 快速入门

本文介绍了Java学习的基础入门内容,主要包括三部分:Java环境搭建、第一个Java程序的编写运行、以及变量与数据类型的基础知识。

bewhyw的博客 984

JAVA学习笔记(一)

随便写写的,嘿嘿。

qq_56051596的博客 621
上一篇: Eclipse开发C/C++程序的配置方法.(ZT)
下一篇: java中文转unicode码
轻鸿飘羽
博客等级 码龄16年 124粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值