友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

JSP入门教程(DOC格式)-第29章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




    int b = fc + random。nextInt(bc fc);  

    return new Color(r; g; b);  

}  

%》  

   



captcha。jsp 中的代码与 servlet 基本相同,不过需要注意两点。  



    1。  在定义 Color getRandColor(int fc;int bc)的时候用到了的写法, 

       比普通多了一个叹号,这是在 jsp 中定义方法时必要的步骤,方法必 

       须写到中才能正常执行,感兴趣的话可以去 tomcat 的work 下找对 

       应生成的 java 代码来研究,看看和的代码分别生成到哪里。  

    2。  在 jsp 中使用response。getOutputStream()很可能引起一个问题。  



       getOutputStream() has already been called for this response  



                                      114 / 148  


…………………………………………………………Page 115……………………………………………………………

                                      



      在 tomcat5 下 jsp 中出现此错误,一般都是在 jsp 中使用了输出流(如输 

      出图片验证码,文件下载等)后没有妥善处理好。  



      具体的原因就是在 tomcat 中,jsp 转换成 servlet 之后在函数 

      _jspService(HttpServletRequest request; HttpServletResponse  

      response)的最后有一段这样的代码  



      finally  {  

          if  (_jspxFactory != null)  

      _jspxFactory。releasePageContext(_jspx_page_context);  

      }   



      这里是在释放在 jsp 中使用的对象,会调用response。getWriter(),因 

      为这个方法是和 response。getOutputStream()相冲突的,所以会出现以 

      上这个异常。  



      然后当然是要提出解决的办法,其实挺简单的(并不是和某些朋友说的那 

      样……将 jsp 内的所有空格和回车符号所有都删除掉),在使用完输出流以 

      后调用以下两行代码即可:  



      out。clear();  

      out = pageContext。pushBody();  



我们还需要修改 index。jsp,让其中的 img 标签请求 captcha。jsp。  



  



这里又一次证明了 html 写的仅仅是请求而已,src=〃include/captcha。jsp〃怎么 

看都不像一个图片的名称,但是它确实可以正确显示图片,因为服务器将请求交 

给 captcha。jsp,处理后得到是一个图片的数据,可以在浏览器里正常显示。  



captcha。jsp 放在 12…02/include 目录下,小项目中可以直接用它了。  



                                   115 / 148  


…………………………………………………………Page 116……………………………………………………………

                                         



                     第 13 章 剖析 el 表达式  



注意  



这里详细讲解如何在 jsp 中使用 el 表达式。  



如果你不满足以下任一条件,请继续阅读,否则请跳过此后的部分,进入下一章: 

第 14 章 生命周期。  



    1。  了解如何在 jsp 中使用及禁用 el 表达式。  

   2。  了解 el 表达式的取值方式。  



13。1。 再谈 el (Expression Language)  



我们已经知道 el 是 jsp…2。0 规范的一部分,tomcat…5。x 版本以上都已经能够支 

持 jsp…2。0 规范,但在更低版本的 tomcat 和 webphere;weblogic 中还是无法使 

用这一便捷方式。  



其实我们也可以选择在 jsp 中禁止使用 el 表达式,使用 jsp 指令(directive) 

可以对禁用某一个 jsp 中的 el 表达式。  



禁用之后的 el 表达式会以原样显示出来,如下图所示。  



                                                          



为了对照,我们还在 13…01 下放了一个可以正常使用 el 表达式的例子,运行效 

果如下图显示。  



                                                            



在 13…01/index。jsp 中禁用 el 表达式,是使用了 isELIgnore=〃true〃这样一条 

jsp 指令(directive),请注意大小写。  



  



                                      116 / 148  


…………………………………………………………Page 117……………………………………………………………

                                          



  

  

{hello}   



还有一种批量禁用 el 的方法,我们可以在WEB…INF/web。xml 中使用 

jsp…property…group 标签批量禁用 el,我们在 13…02/WEB…INF/web。xml 中进行 

如下配置。  



  

  

  

      

          

            *。jsp  

            
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!