搜索
首页Javajava教程Struts用户和开发指南(前言之一)


  0.1概述
  本用户指南为那些热衷于Web开发的人们和想用java开发Web应用程序的人们而写。在开始阅读之前,你应该对以下这些核心技术的基础知识有所了解:
  .HTTP,Html和User Agent;
  .HTTP请求响应周期;
  .Java语言和应用程序框架;
  .JavaBeans;
  .属性文件和资源绑定;
  .Java Servlet;
  .jsp和JSP标签库;
  .xml语言;
  本章只对这些核心技术做扼要的介绍而不做详尽的描述。为了大家的方便,我们提供给大家一些可以进一步了解它们的有用链接。
  假如你已熟悉Java语言本身,而不了解这些技术,我们建议你应好好看看这本指南The Java Web Services Tutorial。 这里可以下载到它的PDF版本。
  假如你已经有开发其它平台的Web应用程序的经验,在这里你也可以找到你需要的资料。因为Struts用到的技术在其他的Java Web产品也可能要用到,这些背景知识对任何一个Java项目都是有用的。
  假如你对Java语言还是不太了解,那么我们建议你看看另一本指南The Java Tutorial。The Java Tutorial和The Java Web Services Tutarial内容可能有重叠的部分,最好结合起来看。
  假如你想了解如何开发一般的Java应用程序,那么你可以去这里看看http://developer.java.sun.com/developer/onlineTraining/new2java/divelog/part1/toc.jsp' TARGET=_blank>New to Java ,可能会给你很大帮助。
  
  0.2 HTTP,HTML和User Agents
  众所周知,互联网是建立在HTTP协议和HTML语言基础之上的。User Agent就像Web浏览器一样使用HTTP协议请求HTML文档,然后浏览器负责把其格式化并显示给用户。传输使用的HTTP协议,而HTML是Web和Web应用程序使用的通用语言。
  在进行Web应用程序开发时,一些Java程序员可能自己编写HTML语言,而有的则会交给专门的页面设计人员来编写。
  关于HTTP,HTML和User Agents更多知识可参考以下资源:
  .Getting started with HTMLDave Raggett著;
  .在Java Web Services Tutorial中的HTTP Overview ;
  .HTTP/1.1规范;
  .HTTP Basic and Digest Authentication 规范;
  .State Management Mechanism规范(Cookies);
  0.3 HTTP请求响应周期
  对于Web开发人员来说,对HTTP的最关心的就是HTTP的请求响应周期,使用HTTP提交一个请求,然后HTTP服务器(如Web服务器)返回一个响应。当我们进行Web开发设计时,我们设计成一个HTTP请求对应返回一个HTTP响应。Struts框架就是对这一周期进行抽象,而对我们来说更重要的是应该知道这一幕后发生的事情。
  假如你对HTTP请求响应周期并不熟悉,那么我们强烈推荐你去读一读Java Web Services Tutorial中的HTTP Overviewhttp://java.sun.com/webservices/docs/1.0/tutorial/doc/HTTP.html#63796
  
  0.4 Java语言和应用程序框架
  Struts框架是用时下最流行的万能编程语言(译者注:这么形容Java语言我觉得一点也
  不为过)Java写成的。Java是面向对象的编程语言,Struts正是利用了它的面向对象这一技术。另外还有,Java自身对线程的良好支持,可以在同一时刻执行多项任务。很好的理解Java语言,面向对象编程和线程,对我们把握Struts和使用本用户指南大有裨益。
  学习Java语言和线程可以参考以下资料:
  .The Java Tutorial之 Learning the Java Language ;
  .The Java Language Tutorial之Learning the Threads之Doing Two or More Tasks At Once ;
  即使你已经使用过Java和面向对象的编程,创建和使用应用程序框架对你编程也是大有帮助的。有关应用程序框架的更多知识,可以参考下面两本白皮书:
  . Designing Reusable Classes Ralph E. Johnson 和Brian Foote著;
  .Object-Oriented application Frameworks Mohamed Fayad和Douglas C. Schmidt著;假如你正在找一个服务器端框架那么这两页可能对你有些帮助:1和2
  
  0.5 JavaBeans
  正像许多Java应用程序一样,大多Struts对象也被设计为JavaBean。使用JavaBean设计模式使Struts类更易被Java开发人员和Java部署工具使用。
  JavaBan最初只是为可视化元素编程而创建的,现在这种对象设计模式已经被广泛地应用到更多可重用组件的基础设计中,如Struts框架。
  关于JavaBean更多知识,可参考:
  .java.sun.com中的The JavaBeans Component Architecture document.tion和JavaBeans 1.01 Specification;
  .The Java Tutorial中的 The JavaBean Trail ;
  .The Java Web Services Tutorial中的JavaBeans Components in JSP Pages ;
  0.5.1 反射和内省机制
  
  反射就是确定对象的哪个成员变量或方法是可用的一种处理机制。内省是JavaBean API使用的一种非凡形式的反射。使用内省我们可以知道JavaBean的哪些方法是可以被其他对象访问的。
  Struts框架使用内省机制把HTTP参数转换为JavaBean属性和使用JavaBean属性组装HTML表单域。这项技术使在JavaBean和HTML表单域之间进行“双向访问”属性更加简单。
  关于反射和内省更多,请参考:
  . The Reflection Trail ;
  .Chapter 8 of the JavaBeans API Specification ;
  0.5.2 映射(Maps)
  
  JavaBean通过使用属性来存储数据而在其他方法中操作这些数据。JavaBean是一个便捷而有强大的对象,但它不是编程人员用来存储数据的对象唯一选择。另外一个流行的对象就是映射(Map)[java.util.map]。一个映射就是一个简单的名称值对集合。映射常在“幕后”作为存储动态数据的一种便捷方法。
  
  0.5.3 动态Bean(DynaBeans)
  
  动态Bean集JavaBean的可扩展性和Map的灵活性于一身。我们知道即使要定义一个简单的JavaBean,也要新建一个类,定义一个属性变量,还有编写每个属性对应的两个访问方法(setXXX和getXXX)。而动态Bean则可以通过XML配置文件来定义属性,动态Bean的虚拟属性并不能像普通的Java方法一样来调用,而是要通过组件使用反射(Reflection)和内省(introspection)机制来进行访问。
  在Struts框架中,你可以使用动态Bean来描述一个HTML表单。这一个策略避免了我们要为一些简单的表单域创建正式JavaBean子类。 

 以上就是Struts用户和开发指南(前言之一)的内容,更多相关文章请关注PHP中文网(www.php.cn)!


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
JVM中的类加载程序子系统如何促进平台独立性?JVM中的类加载程序子系统如何促进平台独立性?Apr 23, 2025 am 12:14 AM

类加载器通过统一的类文件格式、动态加载、双亲委派模型和平台无关的字节码,确保Java程序在不同平台上的一致性和兼容性,实现平台独立性。

Java编译器会产生特定于平台的代码吗?解释。Java编译器会产生特定于平台的代码吗?解释。Apr 23, 2025 am 12:09 AM

Java编译器生成的代码是平台无关的,但最终执行的代码是平台特定的。1.Java源代码编译成平台无关的字节码。2.JVM将字节码转换为特定平台的机器码,确保跨平台运行但性能可能不同。

JVM如何处理不同操作系统的多线程?JVM如何处理不同操作系统的多线程?Apr 23, 2025 am 12:07 AM

多线程在现代编程中重要,因为它能提高程序的响应性和资源利用率,并处理复杂的并发任务。JVM通过线程映射、调度机制和同步锁机制,在不同操作系统上确保多线程的一致性和高效性。

在Java的背景下,'平台独立性”意味着什么?在Java的背景下,'平台独立性”意味着什么?Apr 23, 2025 am 12:05 AM

Java的平台独立性是指编写的代码可以在任何安装了JVM的平台上运行,无需修改。1)Java源代码编译成字节码,2)字节码由JVM解释执行,3)JVM提供内存管理和垃圾回收功能,确保程序在不同操作系统上运行。

Java应用程序仍然可以遇到平台特定的错误或问题吗?Java应用程序仍然可以遇到平台特定的错误或问题吗?Apr 23, 2025 am 12:03 AM

Javaapplicationscanindeedencounterplatform-specificissuesdespitetheJVM'sabstraction.Reasonsinclude:1)Nativecodeandlibraries,2)Operatingsystemdifferences,3)JVMimplementationvariations,and4)Hardwaredependencies.Tomitigatethese,developersshould:1)Conduc

云计算如何影响Java平台独立性的重要性?云计算如何影响Java平台独立性的重要性?Apr 22, 2025 pm 07:05 PM

云计算显着提升了Java的平台独立性。 1)Java代码编译为字节码,由JVM在不同操作系统上执行,确保跨平台运行。 2)使用Docker和Kubernetes部署Java应用,提高可移植性和可扩展性。

Java的平台独立性在广泛采用中扮演着什么角色?Java的平台独立性在广泛采用中扮演着什么角色?Apr 22, 2025 pm 06:53 PM

Java'splatformindependenceallowsdeveloperstowritecodeonceandrunitonanydeviceorOSwithaJVM.Thisisachievedthroughcompilingtobytecode,whichtheJVMinterpretsorcompilesatruntime.ThisfeaturehassignificantlyboostedJava'sadoptionduetocross-platformdeployment,s

容器化技术(例如Docker)如何影响Java平台独立性的重要性?容器化技术(例如Docker)如何影响Java平台独立性的重要性?Apr 22, 2025 pm 06:49 PM

容器化技术如Docker增强而非替代Java的平台独立性。1)确保跨环境的一致性,2)管理依赖性,包括特定JVM版本,3)简化部署过程,使Java应用更具适应性和易管理性。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具