Struts,JSP和XML解析三个问题
来源:互联网 发布:淘宝佣金是多少 编辑:程序博客网 时间:2024/05/01 16:39
1.struts的结构体系,每个结构的简介
MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。MVC的工作原理,如下图所示:
Struts是MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的体系结构与工作原理如下图所示:
从图中我们可以知道,Struts的体系结构包括模型(Model),视图(View)和控制器(Controller)三部分。
下面让我们从MVC角度来看看struts的体系结构与工作原理:
① 模型(Model)
在Struts的体系结构中,模型分为两个部分:系统中的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组Actionform Bean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。当逻辑简单时这个方法很合适。建议用户将事务逻辑与Action类所扮演的角色分开。
②视图(View)
视图主要有JSP建立,struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。目前的标签库包括:Bean Tags、HTML tags、Logic Tags、Nested Tags以及Template Tags等。
③控制器(Controller)
在struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要有Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。struts-config.xml文件配置控制器。
Struts体系结构中的组件
上图显示了ActionServlet(Controller)、Actionform(form State)和Action(Model Wrapper)之间的最简关系。
体系结构中所使用的组件如下表:
ActionServlet 控制器
ActionClass 包含事务逻辑
Actionform 显示模块数据
ActionMapping 帮助控制器将请求映射到操作
ActionForward 用来指示操作转移的对象
ActionError 用来存储和回收错误
Struts标记库 可以减轻开发显示层次的工作
2.jsp有几个内置对象,简要介绍它们的功能:
内置对象特点:
1. 由JSP规范提供,不用编写者实例化。
2. 通过Web容器实现和管理
3. 所有JSP页面均可使用
4. 只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)
常用内置对象:
1. 输出输入对象:request对象、response对象、out对象
2. 通信控制对象:pageContext对象、session对象、application对象
3. Servlet对象:page对象、config对象
4. 错误处理对象:exception对象
对象常用方法说明:
1.out对象(数据流 javax.servlet.jsp.jspWriter)
方法名
说明
print或println
输出数据
newLine
输出换行字符
flush
输出缓冲区数据
close
关闭输出流
clear
清除缓冲区中数据,但不输出到客户端
clearBuffer
清除缓冲区中数据,输出到客户端
getBufferSize
获得缓冲区大小
getRemaining
获得缓冲区中没有被占用的空间
isAutoFlush
是否为自动输出
2.request对象(请求信息 javax.servlet.http.HttpServletrequest)
方法名
说明
isUserInRole
判断认证后的用户是否属于某一成员组
getAttribute
获取指定属性的值,如该属性值不存在返回Null
getAttributeNames
获取所有属性名的集合
getCookies
获取所有Cookie对象
getCharacterEncoding
获取请求的字符编码方式
getContentLength
返回请求正文的长度,如不确定返回-1
getHeader
获取指定名字报头值
getHeaders
获取指定名字报头的所有值,一个枚举
getHeaderNames
获取所有报头的名字,一个枚举
getInputStream
返回请求输入流,获取请求中的数据
getMethod
获取客户端向服务器端传送数据的方法
getParameter
获取指定名字参数值
getParameterNames
获取所有参数的名字,一个枚举
getParameterValues
获取指定名字参数的所有值
getProtocol
获取客户端向服务器端传送数据的协议名称
getQueryString
获取以get方法向服务器传送的查询字符串
getRequestURI
获取发出请求字符串的客户端地址
getRemoteAddr
获取客户端的IP地址
getRemoteHost
获取客户端的名字
getSession
获取和请求相关的会话
getServerName
获取服务器的名字
getServerPath
获取客户端请求文件的路径
getServerPort
获取服务器的端口号
removeAttribute
删除请求中的一个属性
setAttribute
设置指定名字参数值
3.response对象(响应 javax.servlet.http.HttpServletResponse)
方法名
说明
addCookie
添加一个Cookie对象
addHeader
添加Http文件指定名字头信息
containsHeader
判断指定名字Http文件头信息是否存在
encodeURL
使用sessionid封装URL
flushBuffer
强制把当前缓冲区内容发送到客户端
getBufferSize
返回缓冲区大小
getOutputStream
返回到客户端的输出流对象
sendError
向客户端发送错误信息
sendRedirect
把响应发送到另一个位置进行处理
setContentType
设置响应的MIME类型
setHeader
设置指定名字的Http文件头信息
4.session对象(会话 javax.servlet.http.HttpSession)
方法名
说明
getAttribute
获取指定名字的属性
getAttributeNames
获取session中全部属性名字,一个枚举
getCreationTime
返回session的创建时间
getId
获取会话标识符
getLastAccessedTime
返回最后发送请求的时间
getMaxInactiveInterval
返回session对象的生存时间单位千分之一秒
invalidate
销毁session对象
isNew
每个请求是否会产生新的session对象
removeAttribute
删除指定名字的属性
setAttribute
设定指定名字的属性值
5.pageContext对象(页面上下文 javax.servlet.jsp.PageContext)
方法名
说明
forward
重定向到另一页面或Servlet组件
getAttribute
获取某范围中指定名字的属性值
findAttribute
按范围搜索指定名字的属性
removeAttribute
删除某范围中指定名字的属性
setAttribute
设定某范围中指定名字的属性值
getException
返回当前异常对象
getRequest
返回当前请求对象
getResponse
返回当前响应对象
getServletConfig
返回当前页面的ServletConfig对象
getServletContext
返回所有页面共享的ServletContext对象
getSession
返回当前页面的会话对象
6.application对象(应用程序 javax.servlet.ServletContext)
方法名
说明
getAttribute
获取应用对象中指定名字的属性值
getAttributeNames
获取应用对象中所有属性的名字,一个枚举
getInitParameter
返回应用对象中指定名字的初始参数值
getServletInfo
返回Servlet编译器中当前版本信息
setAttribute
设置应用对象中指定名字的属性值
7.config对象(Servlet的配置信息 javax.servlet.ServletConfig)
方法名
说明
getServletContext
返回所执行的Servlet的环境对象
getServletName
返回所执行的Servlet的名字
getInitParameter
返回指定名字的初始参数值
getInitParameterNames
返回该JSP中所有的初始参数名,一个枚举
8.page对象(当前JSP的实例,java.lang.object)
它代表JSP被编译成Servlet,可以使用它来调用Servlet类中所定义的方法
9.exception对象(运行时的异常,java.lang.Throwable)
被调用的错误页面的结果,只有在错误页面中才可使用,
即在页面指令中设置:<%@page isErrorPage=“true”%>
Request(Javax.servlet.ServletRequest)它包含了有关浏览器请求的信息.通过该对象可以获得请求中的头信息、Cookie和请求参数。
Response(Javax.servlet.ServletResponse)作为JSP页面处理结果返回给用户的响应存储在该对象中。并提供了设置响应内容、响应头以及重定向的方法(如cookies,头信息等)
Out(Javax.servlet.jsp.JspWriter)用于将内容写入JSP页面实例的输出流中,提供了几个方法使你能用于向浏览器回送输出结果。
pageContext(Javax.servlet.jsp.PageContext)描述了当前JSP页面的运行环境。可以返回JSP页面的其他隐式对象及其属性的访问,另外,它还实现将控制权从当前页面传输至其他页面的方法。
Session(javax.servlet.http.HttpSession)会话对象存储有关此会话的信息,也可以将属性赋给一个会话,每个属性都有名称和值。会话对象主要用于存储和检索属性值。
Application(javax.servle.ServletContext)存储了运行JSP页面的servlet以及在同一应用程序中的任何Web组件的上下文信息。
Page(Java.lang.Object)表示当前JSP页面的servlet实例
Config(javax.servlet.ServletConfig)该对象用于存取servlet实例的初始化参数。
Exception(Javax.lang.Throwable)在某个页面抛出异常时,将转发至JSP错误页面,提供此对象是为了在JSP中处理错误。只有在错误页面中才可使用<%@page isErrorPage=“true”%>
Jsp内置对象
功能
主要方法
out
向客户端输出数据
print() println() flush() clear() isAutoFlush() getBufferSize() close() …………
request
向客户端请求数据
getAttributeNames() getCookies() getParameter() getParameterValues() setAttribute() getServletPath() …………..
response
封装了jsp产生的响应,然后被发送到客户端以响应客户的请求
addCookie() sendRedirect() setContentType()
flushBuffer() getBufferSize() getOutputStream()
sendError() containsHeader()……………
application
config
表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet
getServletContext() getServletName() getInitParameter() getInitParameterNames()……………
page
Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问
flush()………
pagecontext
为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问
forward() getAttribute() getException() getRequest() getResponse() getServletConfig()
getSession() getServletContext() setAttribute()
removeAttribute() findAttribute() ……………
session
用来保存每个用户的信息,以便跟踪每个用户的操作状态
getAttribute() getId() getAttributeNames() getCreateTime() getMaxInactiveInterval()
invalidate() isNew()
exception
反映运行的异常
getMessage()…………
- Struts,JSP和XML解析三个问题
- JSP和Struts解决用户退出问题
- JSP和Struts解决用户退出问题
- JSP和Struts解决用户退出问题
- 一个struts问题!配置了web.xml和struts-config.xml后,运行简单的测试页面(test.jsp)出问题100分急求!!!
- struts.xml解析
- struts.xml解析
- Struts.xml解析
- 解析struts.xml
- 解析struts.xml
- Struts\jsp\xml\SQL知识点
- 三个事和三个问题
- 三个事和三个问题
- 三个事和三个问题
- 三个事和三个问题
- 三个事和三个问题
- 三个事和三个问题
- 三个事和三个问题
- Java工程资源文件路径设置
- android字体大小根据分辨率自动调整
- Java 生产者消费者问题
- 转载:oracle: 浅谈sqlnet.ora文件的作用,及SQLNET.AUTHENTICATION_SERVICES设置
- Struts,JSP和XML解析三个问题
- valgrind-运行时诊断工具Memory Leak Check Tool
- •Web 服务器上的请求筛选被配置为拒绝该请求,因为查询字符串过长。
- 多线程GCD的使用
- 图算法三之BFS
- 我们都曾回不到的过去就这样慢慢地淡下来了
- Git远程操作详解
- linux脚本的几种执行方式
- List view 和 RichTextBox