master-struts(6)

2019-04-01 23:11

<%! String name = new String(\

当文件被载入时,JSP被转换成servlet代码,声明放在servlet的声明区域内。 它在所有的JSP组件中均可使用,相当于类的成员变量。

注意:所有的JSP声明定义为类水平的,因此JSP的所有表达式和脚本中均有效。

表达式

JSP表达式在容器中计算。它在请求时进行计算,计算结果插入到JSP文件的表达式位置上。如果表达式结果不能被转换成字符串,translation-time错误会产生。 表达式语法如下: <%= expression %> 表达式代码片段:

Hello <%= getName() %> JPS文件中的表达式:

<%! public String getName() { return \Hello <%= getName() %>

脚本

脚本用来把所有的JSP元素放在一起,它们在请求时被执行。他们在所有的JSP组件中使用。脚本语法如下:Scriptlets are the JSP components that bring all the JSP elements together. <% scriptlet source %>

当JSP脚本代码被转换成servlet代码时,它生成servlet的service()方法。下面的JSP代码片段用来向客户端打印出“Hello Bob”。

<% out.println(\

你会注意到JSP脚本功能非常强大,在JSP中使用脚本来实现你的逻辑会使你的WEB应用很难管理。因为这个原因,导致了我们要创建定义的标签库。

JSP错误处理

象所有的开发方法一样,JSP需要一种比较完善的错误处理机制。JSP体系结构中提供了一种错误处理解决方案,它通过在JSP中专门指明处理错误的JSP文件来实现。

JSP错误出现最多的是运行时错误,它通常由JSP页面或则是被JSP页面调用的一些对象所引起的。请求时错误(Request-time errors)是因为异常抛出的,它可以在被调用的JSP页面中捕获和处理。异常若未被处理会被传送到客户端。

创建 JSP错误页面

下面创建的JSP错误页面只进行很简单的处理:创建简单的JSP页,告诉JSP引擎这是一个错误处理页面,你需要设置属性isErrorPage=true。代码如下:

列表2.6 errorpage.jsp.

----------------------------------------------------------------------------------

<%@ page isErrorPage=\

Error: <%= exception.getMessage() %> has been reported.

第一行JSP代码告诉编译器,这个JSP页面是一个错误处理页面。 代码片段如下:

<%@ page isErrorPage=\

第二段JSP代码使用了隐含异常对象来输出未在JSP页面中被捕获异常消息,这个隐含的异常对象在所有的JSP错误处理页面都可以使用。

使用JSP错误处理页面

为了查看错误处理页面是如何工作的,让我们来创建JSP页面,它包含一个未捕获的异常。JSP页面如下:

列表2.7: testerror.jsp.

------------------------------------------------------------------------------------

<%@ page errorPage=\<%

if ( true ) {

// Just throw an exception

throw new Exception(\} %>

-----------------------------------------------------

注意:第一行代码设置isErrorPage=”errorpage.jsp”,是为了指明如果JSP页面出现异常,将由errorpage.jsp来处理异常。本例中JSP抛出Exception,将由errorpage.jsp来处理。 把testerror.jsp和errorpage.jsp复制到:

/webapps/wileyapp/ 目录下, and open the testerror.jsp 在浏览器中打开,你可以看到浏览器中显示了异常。

隐含对象(Implicit Objects)

作为JSP开发人员,你经常会隐含的访问那些在所有的JSP文件中都可以使用的对象。 如果你使用了这些对象,它们会被JSP引擎分析出,并在生成servlet时插入到对应的位置。

Out对象

Out隐含对象来源于java.io.Writer类,它用于发送输出流到客户端。 最通用的时out.println()方法,它来打印文本信息到客户端浏览器。

列表2.8显示了使用out隐含对象的例子:

-------------------------------------------------------------------------- <%@ page errorPage=\

Use Out <%

// Print a simple message using the implicit out object. out.println(\\%>

-------------------------------------------------------------------- 为了执行这个例子,复制文件到

/webapps/ wileyapp/ 目录下,在浏览器中输入如下地址: http://localhost:8080/wileyapp/out.jsp 你会看到:Hello Wiley Reader!

Request对象

这个隐含对象来源于javax.servlet.http.HttpServletRequest接口。它被关联到每一个HTTP请求。常用它来访问请求参数。你可以调用request对象的带参数名称的getParameter()方法,它将返回一个和参数名称匹配的字符串。 Request对象的使用例子如下 列表2.9: request.jsp.

----------------------------------------------------------------------- <%@ page errorPage=\

UseRequest <%

out.println(\

request.getParameter(\%>

----------------------------------------------------

JSP通过参数user调用request.getParameter()方法。这个方法寻找参数列表中的键值user来返回数据。在浏览器中输入如下:

http://localhost:8080/wileyapp/request.jsp?user=Robert 可以看到输出:Welcome:Robert。

Response对象

response隐含对象来源于javax.servlet.http.HttpServletResponse。response对象用于把取得的数据返回到客户端。这个隐含对象可以实现HttpServletRequest所有的功能,和你在servlet处理没有什么区别。Response对象经常用于向客户端输出信息。然而JSP API已经提供了一个流对象out来输出信息到客户端。

PageContext对象

PageContext对象提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。比较常用的是使用setAttribute() 和getAttribute()方法设置和寻找对象。

Session对象

Session对象来源于javax.servlet.http.HttpSession。它用于存储客户端请求的信息,因此它是有状态交互式的。 Session对象列表如下:


master-struts(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2010年全国硕士研究生入学统一考试数学二试题参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: