jsp中的java代码&JSP page指令(11、12章笔记)

pre:下面所有的jsp标准语法都有对应的xml兼容标签表示方式。


jsp中的java代码,jsp和servlet的对应关系

1、<%= Java Expression %>

eg:Current time:<%= new java.util.Date() %>

xml expression:<jsp:expression>Java Expression</jsp:expression>

                    jsp1.2及之后的版本中,只要程序设计者没有在同一页面中混合使用XML方式和标准的jsp方式(<%= ... %>),就要求服务器支持这种语法。


2、<% Java Code %>

eg:<% 

String queryData ="";

if(){}else{}

%>

xml expression : <jsp:scriptlet>Java Code</jsp:scriptlet>


3、<%! Filed or Method Definition %>

xml expression:<jsp:declaration> Filed or Method</jsp:decalration>


4、jsp/servlet对应关系

上面的1、2都会被加进编译生成的servlet类中的_jspService方法,而这个方法总会北service方法调用。

而3会独立出来编程servlet的属性或方法。

Tomcat下jsp编译后的servlet可在tomdir/work/localhost目录中查看。


jsp page指令:控制所生成的servlet的结构

<%@ page import="java.util.*,java.logging.*" %>  导入jsp变为servlet时应该导入的包。


<%@ page contentType="MIME-Type; cahrset = Character-Set" %>  和 <% response.setContentType("application/vnd.ms-execel"); %>作用相同。

jsp页面默认的MIME类型是text/html(默认字符集是ISO-8859-1)

如果只想更改字符集,可以使用<%@ page pageEncoding="Shift_JIS" %>


<%@ page session="true" %><%-- Default --%>

属性控制页面是否参与HTTP会话。


还有其他属性:

isELlgnored属性:忽略(true)JSP 2.0 表达式语言(EL),还是进行正常的求值。


 buffer属性指定out变量(类型为JspWriter)使用的缓冲区大小。服务器实际使用的缓冲区>=给定的值

<%@ page buffer="32kb" %>   表示缓存到32KB,页面完成或明确对输出执行清空(如使用response.flushBuffer),否则不降文档发送给客户。如果缓冲区禁用,要求设置包头或状态代码的jsp元素出现在文件的顶部,如果每一句输出的响应时间过长,禁用缓冲区会使客户更快看到部分结果。buffer="none"表示禁用。


autoFlush属性:控制当缓冲区充满后,是应该自动清空输出(默认true),还是溢出之后抛出一个异常。、


info属性,在servlet中通过getServletInfo方法获取的字符串。


erroePage属性用来指定页面专用的错误页面,如果要为整个web制定错误页面或者为不同类型的错误制定错误页面,需要使用web.xml中的error-page元素。

eg:

ComputeSpeed.jps:

……

<%@ page errorPage="/WEB-INF/SpeedErrors.jsp" %>

……


SpeedErrors.jsp

……

<%@ page isErrorPage="true"%><%-- Default:false --%>

……

<%= exception %>
……

<% exception.printStackTrace(new PrintWriter(out)); %>

……


isThreadSafe属性

jsp:page的isThreadSafe属性和servlet的SingleThreadModel接口一样,不推荐使用,应该使用显式的同步措施。


extends属性指定jsp页面所生成的servlet的超类。一般用不到。


language属性制定页面使用的脚本语言


jsp:page的xml兼容语法

<jsp:directive.directiveType attribute="value" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值