JSP技术

 
JSP 技术
JSP是Java Server Page的缩写,它是Servlet的扩展。其目的是简化建立和管理动态网站的工作
1 JSP 简介
在传统的网页 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目录下原来的旧文件
2 JSP 的语法
JSP文件(扩展名为.jsp)可以包含如下内容:
JSP指令
JSP声明
Java程序片断
变量数据的Java表达式
隐含对象
2.1 JSP 指令
JSP 指令(在 <%@ %> 内的)用于设置和整个 JSP 网页相关的属性。 JSP 指令的一般语法形式为:
<%@ 指令名 属性 =” ”%>
1、page指令:page指令可以指定所使用的脚本语言、JSP代表的Servlet实现的接口以及导入的软件包
page指令的属性:
lauguage: 指定文件所使用的脚本语言
method :指定Java程序片断所属的方法的名称
import: 指定导入的Java软件包名或类名列表
context_type :指定响应结果的MIME类型
session 指定JSP页是否使用Session
errorPage :指定当发生异常时,客户请求被重新定向到那个网页
isErrorPage :表示此JSP网页是否为处理异常的网页
2 include 指令
JSP 可以通过 include 指令来包含其他文件,被包含的文件可以是 JSP 文件、 HTML 文件或文本文件
include 指令的语法为:
<%@ include file=”relativeURL”%>
2.2 JSP 声明
JSP 声明(在 <%! %> 内的)用于声明 JSP 代表的 Servlet 类的成员变量和方法,语法如下:
<%! declaration%>
2.3 Java 程序片断
JSP 文件中,可以在 <% %> 标记间直接嵌入任何有效地 Java 语言代码。这样嵌入的程序片断称为 Scriptlet 。如果在 page 指令中没有指定 method 属性,则生成的代码默认为 service 方法的主体
2.4 、变量数据的 Java 表达式
JSP 表达式标记为 <%= %> 。该表达式的值会显示在网页上, int float 类型的值会自动转换成字符串加以显示
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
3 JSP Cookie
Cookie 是用户访问 Web 服务器时,服务器在用户硬盘上存放的信息
浏览器可以设置是否使用 Cookie
一个 Cookie 包干一对 Key/Value 。下面的代码生成一个 Cookie 并将它写到用户的硬盘上:
Cookie theCookie=new Cookie(”cookieName”,”cookieValue”);
response.addCookie(theCookie);
如果服务器想从用户硬盘上获取 Cookie ,可以使用下面方法从客户请求中取得所有的 Cookie
Cookie cookies=request.gerCookies();
然后调用 Cookie getName 方法获得 Cookie Key ,调用 Cookie getValue 方法获得 Cookie Value 。还可以通过 Cookie setMaxAge(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> 标签以下的代码不会被执行
5 JSP 异常处理
像普通的 Java 程序一样,可以把异常引入到 JSP 中,如果在执行 JSP Java 代码时发生异常,可以通过下面的指令将 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>
 

你可能感兴趣的:(java,jsp,exception,servlet,服务器,include)