Struts作为Java Web应用的框架,Struts大大的提高了Web应用开发的速度,它是一群经验丰富的开发专家集体的智慧结晶,在全世界范围内得到了广泛的应用.要学习Struts首先就要了解Java Web应用.Java Web应用的核心技术是JSP和Servlet,此外开发一个完整的JavaWeb应用还要涉及JavaBean组件,EJB组件,自定义JSP标签,XML,Web服务器.
Servlet在Web应用中是一个很重要的技术,Servlet运行在Servlet容器中可以被Servlet动态的加载,当用户访问某个Servlet的时候,Servlet容器会创建一个ServletRequest对象和ServletResponse对象,请求对象封装了用户的请求信息,然后容器把ServletRequest和ServletResponse对象传递给用户所请求的Servlet,Servlet把响应结果写到ServletResponse中,然后容器把响应结果传递给用户.Servlet重要的东东是:
HttpServletRequest:Servlet容器把HTTP请求信息包存在这个对象中,Servlet组件从request对象中读取用户的请求数据.
1)HttpServletReponse:用于生成HTTP应答.
2)HttpSession:Servlet容器为每个HTTP会话创建了一个HttpSession对象,HttpSession可以存放session范围的共享数据.
3)ServletContext:Servlet为每个Web创建了一个ServletContext,共享applcation范围.
设置和共享对象的方法是setAttribute(String key,Object value)读取对象的方法是getAttribute(String key);
JSP就是在HTML网页中加入了JSP标签和JAVA代码.JAVA程序可以操纵数据库,重新定向网页及其发送E-mail.所有的程序都是在服务器执行,网络上传送给客户端结果,JSP技术大大的降低了对客户浏览器的要求,即使对象的浏览器不支持JAVA也可以访问JSP网页.当JSP接受到用户的请求的时候,JSP容器对JSP文件进行语法分析,并生成Servlet源文件,然后对其编译.一般的情况下Servlet源文件的生成和编译是在初次调用JSP的时候发生,如果原始的JSP文件被更改,JSP容器讲渐次所有的更新,在执行它之前重新生成Servlet并且进行编译.
共享数据在Web应用中的范围主要是4种范围:
1) page:共享数据的有效范围是用户请求访问的当前网页.
2) request:共享数据的范围是用户请求访问当前的Web组件,就是共享一次请求,如果生成了应答对象,共享结束.
3) session:在整个HTTP会话的生存周期,同一个HTTP会话种的Web组件共享它.session实际上就是存放在HttpSession对象种的数据.
4) application:共享数据就是ServletContext.invalidate()方法可以关闭一个会话.
JavaBean就是一个符合相应犯规的JAVA类罢了,不是很难理解,在JSP中调用Bean主要是通过 标签,id设置bean的使用引用,scope是设置bean的搜索范围,class是bean的具体路径.可以通过 name表示Bean引用property具体的属性,value具体设置的值来设置Bean.还可以通过 name表示Bean应用property要返回的具体属性,
客户JSP标签是在JSP1.1版本技术中出现的,它支持用户在JSP中自定义客户化标签,这些可重用的标签能够处理复杂的逻辑,让页面变得更加整洁.Strtus主要包括了5种功能强大的标签库,包括Bean,Html,Logic,Nested,Tiles标签库.
EJB组件是基于标准分布式对象计算技术,CORBA和RMI的服务器JAVA组件,EJB组件类似JavaBean都是用于实现企业的业务逻辑的区别就是EJB是分布式的要求运行在EJB服务器,通常说是应用服务器.而JavaBean组件可以和Servlet或者JSP运行在Servlet/JSP容器中.EJB组件主要是来完成MVC的模型层.
XML语言是可扩展标记语言,是一种用来创建自定义标记的标记语言.XML在Web应用及其服务开发中得到了广泛的应用,可用来描述结构化的数据.可以理解成一种配置的标签,貌似简单其实嗷嗷复杂.
Web服务器和应用服务器,任何一个Web应用都离不开Web服务器以及应用服务器.Web服务器用于处理HTTP请求,应用服务器可以提供和Web相关的服务,如EJB容器是一种处理业务逻辑和事务的应用服务器.
Web应用程序如此强大的原因之一是它们能彼此连接和聚合信息资源,组要有三种关系.1)请求转发.2)URL重定向.3)包含.
请求转发允许把请求转发给同一个应用程序中的其他Web组件,这种技术通常用于Web应用控制层Servlet控制器.它检查HTTP请求数据,并将请求转发到合适的目标组件,目标组件执行具体的请求处理操作.并且生成响应结果.Servlet中使用RequestDispatcher对象forward()方法来转发它所受到HTTP请求.转发目标组件将处理结果生成应答.在JSP中可以通过 标签来进行转发.
请求重定向类似转发,但是也有一些重要的区别,Web组件可以将请求重定向到任何的URL,而不仅仅是同一应用中的URL.重定向的源组件和目标组件之间不共同一个Request对象,因此不能共享Request的资源.重定向是返回一个应答给客户端,然后在重新一个请求发送给目标URL.所以地址栏会有显示,而转发是直接把这个请求转发给领一个URL所以地址栏没有显示.
包含关系允许一个Web组件聚集来自同一个应用中其他的Web组件输出数据,并使用被聚集的数据来创建响应结果.在Servetl中可以表用RequestDispatcher.include()方法包含其他的Web组件.可以写成RequestDispatcher rd=request.getRequestSispatcher(值)来获取一个包含对象,然后调用rd.include(request,response)包含.在JSP中使用标签<%@ include file=”文件”>这样来包含一个文件.
MVC是Model-View-Controller的简称即模型-视图-控制器.MVC是一种设计模式,它强制性的把应用程序和输入处理和输出分开.1)模型:程序的主题部分,模型表示业务数据和业务逻辑.一个模型可以为多个视图提供数据.2)视图:是客户看到并与其交互的界面.3)控制器:接受用户输入并调用模型和视图去完成用户的请求.当Web用户单击Web页面中的提交按钮来发送HTML表单的时候,控制器接受并调用相应的模型组件去处理请求,然后调用响应的视图来显示模型返回数据.
当建构师开始一个建构项目的时候,首先设计建筑框架.Struts就是一种很不错的框架,它基于MVC模式.Struts实际上是在JSP Model2的基础上实现的一个框架.在Struts框架中模型由显示业务逻辑的JavaBean或者Ejb构成.控制器由ActionServlet和Action来实现.视图由一组JSP文件构成.