jsp空间(什么是jsp虚拟空间)
一、jsp有哪些内置对象作用分别是什么
jsp内置对象
定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量
JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号方法说明
1 object getAttribute(String name)返回指定属性的属性值
2 Enumeration getAttributeNames()返回所有可用属性名的枚举
3 String getCharacterEncoding()返回字符编码方式
4 int getContentLength()返回请求体的长度(以字节数)
5 String getContentType()得到请求体的MIME类型
6 ServletInputStream getInputStream()得到请求体中一行的二进制流
7 String getParameter(String name)返回name指定参数的参数值
8 Enumeration getParameterNames()返回可用参数名的枚举
9 String[] getParameterValues(String name)返回包含参数name的所有值的数组
10 String getProtocol()返回请求用的协议类型及版本号
11 String getScheme()返回请求用的计划名,如:http.https及ftp等
12 String getServerName()返回接受请求的服务器主机名
13 int getServerPort()返回服务器接受此请求所用的端口号
14 BufferedReader getReader()返回解码过了的请求体
15 String getRemoteAddr()返回发送此请求的客户端IP地址
16 String getRemoteHost()返回发送此请求的客户端主机名
17 void setAttribute(String key,Object obj)设置属性的属性值
18 String getRealPath(String path)返回一虚拟路径的真实路径
2.response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。
序号方法说明
1 String getCharacterEncoding()返回响应用的是何种字符编码
2 ServletOutputStream getOutputStream()返回响应的一个二进制输出流
3 PrintWriter getWriter()返回可以向客户端输出字符的一个对象
4 void setContentLength(int len)设置响应头长度
5 void setContentType(String type)设置响应的MIME类型
6 sendRedirect(java.lang.String location)重新定向客户端的请求
3.session对象
session对象指的是客户端与服务器的一次会话,从客户端连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession类的实例.
序号方法说明
1 long getCreationTime()返回SESSION创建时间
2 public String getId()返回SESSION创建时JSP引擎为它设的惟一ID号
3 long getLastAccessedTime()返回此SESSION里客户端最近一次请求时间
4 int getMaxInactiveInterval()返回两次请求间隔多长时间此SESSION被取消(ms)
5 String[] getValueNames()返回一个包含此SESSION中所有可用属性的数组
6 void invalidate()取消SESSION,使SESSION不可用
7 boolean isNew()返回服务器创建的一个SESSION,客户端是否已经加入
8 void removeValue(String name)删除SESSION中指定的属性
9 void setMaxInactiveInterval()设置两次请求间隔多长时间此SESSION被取消(ms)
4.out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
序号方法说明
1 void clear()清除缓冲区的内容
2 void clearBuffer()清除缓冲区的当前内容
3 void flush()清空流
4 int getBufferSize()返回缓冲区以字节数的大小,如不设缓冲区则为0
5 int getRemaining()返回缓冲区还剩余多少可用
6 boolean isAutoFlush()返回缓冲区满时,是自动清空还是抛出异常
7 void close()关闭输出流
5.page对象
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
序号方法说明
1 class getClass返回此Object的类
2 int hashCode()返回此Object的hash码
3 boolean equals(Object obj)判断此Object是否与指定的Object对象相等
4 void copy(Object obj)把此Object拷贝到指定的Object对象中
5 Object clone()克隆此Object对象
6 String toString()把此Object对象转换成String类的对象
7 void notify()唤醒一个等待的线程
8 void notifyAll()唤醒所有等待的线程
9 void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒
10 void wait()使一个线程处于等待直到被唤醒
11 void enterMonitor()对Object加锁
12 void exitMonitor()对Object开锁
6.application对象
application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。它是ServletContext类的实例。
序号方法说明
1 Object getAttribute(String name)返回给定名的属性值
2 Enumeration getAttributeNames()返回所有可用属性名的枚举
3 void setAttribute(String name,Object obj)设定属性的属性值
4 void removeAttribute(String name)删除一属性及其属性值
5 String getServerInfo()返回JSP(SERVLET)引擎名及版本号
6 String getRealPath(String path)返回一虚拟路径的真实路径
7 ServletContext getContext(String uripath)返回指定WebApplication的application对象
8 int getMajorVersion()返回服务器支持的Servlet API的最大版本号
9 int getMinorVersion()返回服务器支持的Servlet API的最大版本号
10 String getMimeType(String file)返回指定文件的MIME类型
11 URL getResource(String path)返回指定资源(文件及目录)的URL路径
12 InputStream getResourceAsStream(String path)返回指定资源的输入流
13 RequestDispatcher getRequestDispatcher(String uripath)返回指定资源的RequestDispatcher对象
14 Servlet getServlet(String name)返回指定名的Servlet
15 Enumeration getServlets()返回所有Servlet的枚举
16 Enumeration getServletNames()返回所有Servlet名的枚举
17 void log(String msg)把指定消息写入Servlet的日志文件
18 void log(Exception exception,String msg)把指定异常的栈轨迹及错误消息写入Servlet的日志文件
19 void log(String msg,Throwable throwable)把栈轨迹及给出的Throwable异常的说明信息写入Servlet的日志文件
7.exception对象
exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
序号方法说明
1 String getMessage()返回描述异常的消息
2 String toString()返回关于异常的简短描述消息
3 void printStackTrace()显示异常及其栈轨迹
4 Throwable FillInStackTrace()重写异常的执行栈轨迹
8.pageContext对象
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫pageContext。
序号方法说明
1 JspWriter getOut()返回当前客户端响应被使用的JspWriter流(out)
2 HttpSession getSession()返回当前页中的HttpSession对象(session)
3 Object getPage()返回当前页的Object对象(page)
4 ServletRequest getRequest()返回当前页的ServletRequest对象(request)
5 ServletResponse getResponse()返回当前页的ServletResponse对象(response)
6 Exception getException()返回当前页的Exception对象(exception)
7 ServletConfig getServletConfig()返回当前页的ServletConfig对象(config)
8 ServletContext getServletContext()返回当前页的ServletContext对象(application)
9 void setAttribute(String name,Object attribute)设置属性及属性值
10 void setAttribute(String name,Object obj,int scope)在指定范围内设置属性及属性值
11 public Object getAttribute(String name)取属性的值
12 Object getAttribute(String name,int scope)在指定范围内取属性的值
13 public Object findAttribute(String name)寻找一属性,返回起属性值或NULL
14 void removeAttribute(String name)删除某属性
15 void removeAttribute(String name,int scope)在指定范围删除某属性
16 int getAttributeScope(String name)返回某属性的作用范围
17 Enumeration getAttributeNamesInScope(int scope)返回指定范围内可用的属性名枚举
18 void release()释放pageContext所占用的资源
19 void forward(String relativeUrlPath)使当前页面重导到另一页面
20 void include(String relativeUrlPath)在当前位置包含另一文件
9.config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
序号方法说明
1 ServletContext getServletContext()返回含有服务器相关信息的ServletContext对象
2 String getInitParameter(String name)返回初始化参数的值
3 Enumeration getInitParameterNames()返回Servlet初始化所需所有参数的枚举
二、什么是动态java和空间html
目前,最常用的三种动态网页语言有ASP(Active Server Pages),JSP(JavaServer Pages),PHP(Hypertext Preprocessor)。
简介:
ASP全名Active Server Pages,是一个WEB服务器端的开发环境,利用它可以产生和执行动态的、互动的、高性能的WEB服务应用程序。ASP采用脚本语言VBScript(Java script)作为自己的开发语言。
PHP是一种跨平台的服务器端的嵌入式脚本语言。它大量地借用C,Java和Perl语言的语法,并耦合PHP自己的特性,使WEB开发者能够快速地写出动态产生页面。它支持目前绝大多数数据库。还有一点,PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://)自由下载。而且你可以不受限制地获得源码,甚至可以从中加进你自己需要的特色。
JSP是Sun公司推出的新一代网站开发语言,Sun公司借助自己在Java上的不凡造诣,将Java从Java应用程序和Java Applet之外,又有新的硕果,就是JSP,Java Server Page。JSP可以在Serverlet和JavaBean的支持下,完成功能强大的站点程序。
三者都提供在 HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。但JSP代码被编译成 Servlet并由Java虚拟机解释执行,这种编译操作仅在对JSP页面的第一次请求时发生。在ASP、PHP、JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的 HTML页面只依赖于Web服务器,而ASP、PHP、JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP、PHP、JSP三者都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。
技术特点
ASP:
1.使用VBScript、 JScript等简单易懂的脚本语言,结合HTML代码,即可快速地完成网站的应用程序。
2.无须compile编译,容易编写,可在服务器端直接执行。
3.使用普通的文本编辑器,如Windows的记事本,即可进行编辑设计。
4.与浏览器无关(Browser Independence),客户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。Active ServerPages所使用的脚本语言(VBScript、 Jscript)均在WEB服务器端执行,客户端的浏览器不需要能够执行这些脚本语言。
5.Active Server Pages能与任何ActiveX scripting语言兼容。除了可使用VB Script或JScript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其它脚本语言,譬如REXX、Perl、Tcl等。脚本引擎是处理脚本程序的COM(Component Object Model)对象。
6.可使用服务器端的脚本来产生客户端的脚本。
7. ActiveX Server Components(ActiveX服务器组件)具有无限可扩充性。可以使用Visual Basic、Java、Visual C++、COBOL等程序设计语言来编写你所需要的ActiveX Server Component。
PHP:
1?数据库连接
PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的群组合。你还可以自己编写外围的函数去间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松地修改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。但PHP提供的数据库接口支持彼此不统一,比如对Oracle, MySQL,Sybase的接口,彼此都不一样。这也是PHP的一个弱点。
JSP:
1?将内容的产生和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和Beans中,那么其它人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的产生。在服务器端,JSP引擎解释JSP标识,产生所请求的内容(例如,通过存取JavaBeans群组件,使用JDBC技术存取数据库),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
2?强调可重用的群组件
绝大多数JSP页面依赖于可重用且跨平台的组件(如:JavaBeans或者Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。
3?采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的程序设计人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容产生所需要的。标准的JSP标识能够存取和实例化 JavaBeans组件,设定或者检索群组件属性,下载Applet,以及执行用其它方法更难于编码和耗时的功能。
通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java 2EE的一个成员,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java程序设计语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用。
应用范围
ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统,只能执行于微软的服务器产品,IIS(Internet Information Server)(windows NT)和PWS(Personal Web Server)(windows 98)上。Unix下也有ChiliSoft的组件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的群组合来扩充,Unix下的COM实现起来非常困难。
PHP3可在Windows,Unix,Linux的Web服务器上正常执行,还支持IIS,Apache等一般的Web服务器,用户更换平台时,无需变换PHP3代码,可即拿即用。
JSP同PHP3类似,几乎可以执行于所有平台。如Win NT,Linux,Unix。在NT下IIS通过一个外加服务器,例如JRUN或者ServletExec,就能支持JSP。知名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用在NT、Unix和Linux上,因此JSP有更广泛的执行平台。虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很大,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台,JSP和JavaBean甚至不用重新编译,因为Java字节码都是标准的与平台无关的。
性能比较
有人做过试验,对这三种语言分别做回圈性能测试及存取Oracle数据库测试。
在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而ASP、PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒和84秒。(参考PHPLIB)。
数据库测试中,三者分别对 Oracle 8进行 1000次 Insert,Update,Select和Delete: JSP需要 13秒,PHP需要 69秒,ASP则需要 73秒。
前景分析
目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。
采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,群组成二维数组。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。
ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。
三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere。它们都是通过CGI来提供支持的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。
总之,ASP,PHP,JSP三者都有相当数量的支持者,由此也可以看出三者各有所长。正在学习或使用动态页面的朋友可根据三者的特点选择一种适合自己的语言。
HTML(Hypertext Markup Language、超文本标记语言)是Web诞生与发展的要素之一,它旨在使得Web页面能显示在任何HTML使能的浏览器中,而与连网的机器平台无关。HTML并不是一个程序设计语言,而是一个标记语言,它所提供的标记是由SGML(Standard Generalized Markup Language,标准的通用标记语言)定义的。SGML是ISO(国际标准化组织)在1986年推出的一个用来创建标记语言的语言标准,它源自IBM早在1969年开发的GML(Generalized Markup Language),该语言的名称也正好包含了三位创始人姓字的第一个字母,他们分别是Charles F. Goldfarb, Edward Mosher,Raymond Lorie。SGML是一种元语言,即用来定义标记语言的语言,它提供了一种将数据内容与显示分离开来的数据表示方法,使得数据独立于机器平台和处理程序。这些特性促使Tim Berners-Lee采用SGML来创建称之为HTML的标记语言。1993年形成HTML 1.0,以后不断完善,HTML 4.0发表于1997年。特别需要指出的是HTML提供的链接机制是Web的本质特性之一。但是,HTML更多的关注Web浏览器如何在页面上安排文本、图象和按钮等,过多地考虑外观使其缺乏对结构化数据的表示能力。另外,HTML中有限的标记不能满足很多Web应用的需要,如基于Web的大型出版系统和新一代的电子商务,而为各种应用需要不断地往HTML中增加标记显然不是最终的解决方法,究其原因是HTML缺乏可扩展性。解决方案应该是简化SGML使之能应用到Web上。为此,从1996年开始,W3C(World Wide Web Consortium)的一个工作组在Jon Bosak的领导下致力于设计一个超越HTML能力范围的新语言,这个语言后来被命名为XML(Extensible Markup Language,可扩展标记语言)。1998年2月,W3C发布了XML 1.0作为其推荐标准。现在,W3C已经用XML设计出一个与HTML4.01功能等价的语言,称为XHTML1.0(Extensible HyperText Markup Language)。
三、jsp网站空间产品有哪些类型
1、JSP-200型:200M独立网站空间赠送100M SQL数据库支持JSP脚本语言独享Tomcat资源流量限制30G(约30万次访问)电信高速机房
2、JSP-300型:300M独立网站空间赠送100M SQL数据库支持JSP脚本语言独享Tomcat资源流量流量限制40G(约40万次访问)电信高速机房
3、JSP-1000型:1G独立网站空间赠送100M SQL数据库支持JSP脚本语言独享Tomcat资源流量独立公网IP一个流量50G/月(约50万次访问多线机房全国高速访问
4、JSP-2000型:JSP-2000型赠送100M SQL数据库支持JSP脚本语言独享Tomcat资源流量独立公网IP一个流量流量80G/月(约80万次访问)多线机房全国高速访问