JSP技术

来源:互联网 发布:福建中锐网络 编辑:程序博客网 时间:2024/04/29 13:26
 
JSP技术
JSP是Java Server Page的缩写,它是Servlet的扩展。其目的是简化建立和管理动态网站的工作
1JSP简介
在传统的网页HTML文件中加入Java程序片断和JSP标签,就构成了JSP网页。Java程序片断可以操纵数据库,重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支持Java,也可以访问JSP网页
JSP的优点:把HTML编码和业务逻辑有效地分离。通常,JSP负责生成动态HTML页面,业务逻辑由其他可重用的组件(如:Servlet、Java Bean)和其他Java程序来实现,JSP可以通过Java程序片断访问这些业务组件
Tomcat服务器接受到Web客户的一个JSP文件请求时,它对JSP文件进行语法分析并生成Java Servlet源文件,然后对其进行编译。一般情况下,Servlet源文件的生成和编译仅在初次调用JSP时发生。如果原始的JSP文件被更新,Tomcat服务器检测所做的更新,在执行它之前重新生成Servlet并进行编译
Tomcat把由JSP生成的Servlet源文件和类文件放于<CATALINA_HOME>/work目录下,通常情况下,如果修改了JSP文件,Tomcat会重新编译JSP,并把编译生成的新文件覆盖work目录下原来的旧文件
2JSP的语法
JSP文件(扩展名为.jsp)可以包含如下内容:
JSP指令
JSP声明
Java程序片断
变量数据的Java表达式
隐含对象
2.1JSP指令
JSP指令(在<%@%>内的)用于设置和整个JSP网页相关的属性。JSP指令的一般语法形式为:
<%@ 指令名属性=””%>
1、page指令:page指令可以指定所使用的脚本语言、JSP代表的Servlet实现的接口以及导入的软件包
page指令的属性:
lauguage:指定文件所使用的脚本语言
method:指定Java程序片断所属的方法的名称
import:指定导入的Java软件包名或类名列表
context_type:指定响应结果的MIME类型
session指定JSP页是否使用Session
errorPage:指定当发生异常时,客户请求被重新定向到那个网页
isErrorPage:表示此JSP网页是否为处理异常的网页
2include指令
JSP可以通过include指令来包含其他文件,被包含的文件可以是JSP文件、HTML文件或文本文件
include指令的语法为:
<%@ include file=”relativeURL”%>
2.2JSP声明
JSP声明(在<%!%>内的)用于声明JSP代表的Servlet类的成员变量和方法,语法如下:
<%! declaration%>
2.3Java程序片断
JSP文件中,可以在<%%>标记间直接嵌入任何有效地Java语言代码。这样嵌入的程序片断称为Scriptlet。如果在page指令中没有指定method属性,则生成的代码默认为service方法的主体
2.4、变量数据的Java表达式
JSP表达式标记为<%=%>。该表达式的值会显示在网页上,intfloat类型的值会自动转换成字符串加以显示
2.5、隐含对象
在编写JSP程序时,可以直接使用Servlet/JSP容器提供的隐含对象。使用这些对象的引用变量时不需要做任何变量声明
javax.servlet.HttpServletRequest request
javax.servlet.HttpServletRespponse response
javax.servlet.ServletContext application
javax.servlet.jsp.JspWriter out
javax.servlet.http.HttpSession session
java.lang.Exception exception
3JSPCookie
Cookie是用户访问Web服务器时,服务器在用户硬盘上存放的信息
浏览器可以设置是否使用Cookie
一个Cookie包干一对Key/Value。下面的代码生成一个Cookie并将它写到用户的硬盘上:
Cookie theCookie=new Cookie(”cookieName”,”cookieValue”);
response.addCookie(theCookie);
如果服务器想从用户硬盘上获取Cookie,可以使用下面方法从客户请求中取得所有的Cookie
Cookie cookies=request.gerCookies();
然后调用CookiegetName方法获得CookieKey,调用CookiegetValue方法获得CookieValue。还可以通过CookiesetMaxAge(int expiry)方法来设置Cookie的有效期,超过有效期,Cookie就会失效
4、转发JSP请求
<jsp:forward>标签用于将客户请求重定向到其他的HTML文件、JSP文件或者Servlet文件。<jsp:forward>语法为:
<jsp:forward page=”重新定向的文件”/>
<jsp:forward>标签从一个JSP文件向另一个文件传递包含用户请求的request对象。如果JSP文件中包含<jsp:forward>标签,那么这个JSP文件中的所有输出数据都不会被发送到客户端,并且<jsp:forward>标签以下的代码不会被执行
5JSP异常处理
像普通的Java程序一样,可以把异常引入到JSP中,如果在执行JSPJava代码时发生异常,可以通过下面的指令将HTTP请求转发给另一个专门处理异常的网页:
<%@ page errorPage=”errorpage.jsp”%>
在处理异常的网页中可以直接访问exception隐含对象,获取详细的异常信息
6、部署JSP
部署JSP很简单,只需把jsp文件拷贝到webapp应用的根目录下即可。
部署Servlet时,必须在web.xml中加入<servlet><servlet-mapping>元素,其中<servlet-mapping>元素可以用来设定访问Servlet<url-pattern>。事实上,也可以为JSP配置<servlet><servlet-mapping>元素,从而设定访问JSP<url-pattern>