JSP的基本语法

Scriptlet:<%%>里面就是普通的Java代码。所谓的Scriptlet就是放在<%%>标记中的Java代码。

表达式:1.<%=%>特殊的写法,就是一个表达式。例如:<%=document。getId()%>,就等于<%out.println(document.getId());%>.比较不同之处:表达式里面是不需要在后面增加分号的!JSP表达式在编译的时候,将其变成out.print(document.getId()).如果在后面增加分号的话,out.print(document.getId();)是不会编译通过。同理,如果在表达式中放一个返回类型为VOID的函数,也会得到一个错误。这三个里面只有一个合法的,是哪一个:a.<%="27"%>,<%=40*30%>,<$=Math.random();$>.

2.<%@page%>指令,把JSP变成Servlet的组件,变成Servlet的时候要注意的事件:

a.例如:<%page import="java.lang.*,com.samsung.dao.*"%>.

b.PAGE指令可以使用12个不同的属性,import只是其中一个:(1)import 定义要import的包,有些包是默认引入的,(2)isThreadSafe是否是实现前面说的SingleThreadModel接口,默认是true,不继承SingleThreadModel。如果设置为false,编译的时候,就会让你集成SingleThreadModel,(3)contentType一般使用text/html。(4)isELIgnored是否忽略EL表达式?下面会有EL表达式的内容。(5)isErrorPage这个其实就是是否让exception隐藏对象暴露出来的一个开关。(6)errorPage如果这个JSP页面增加了这个PAGE命令。出现了exception就扔到这个资源上去。(7)language这个值目前只有一个。(8)extends因为JSP实际上就是Servlet了,Servlet可以继承的,所以.JSP里面也是能继承的,但是真的很少用。(9)session定义是否将这个SESSION隐藏对象可被调用?默认是可以的。(10)buffer定义out对象如何处理缓存(JspWriter的引用),这个也就是为啥比较Servlet的out和Jsp的out的时候,说差别可能在缓存上的原因了。(11)autoFlush定义缓存的输出是否自动刷新输出,默认是true的。(12)info,资料上描述,这个放置抓换之后的字符串,可以在生成的Servlet的getServletInfo()得到这个字符串。(13)pageEncoding定义JSP的字符编码,默认是"ISO-8859-1".

c.PAGE用来定义页面特定的属性,比如编码字符,是否隐藏隐式对象之类的。

d.注意import里面的连接词。

e.让编译之后的JSP代码找到需要调用的JAVA类有两个方法。

3.触发时机:页面转换时向容器提供特殊的指令。page指令中使用的链接符是逗号,scriptlet中的链接符是分号。include指令,taglib指令。

HTML:<table>...</table>,变化之后就变成out.println("<table>...</table>")


Declaration:<%! int a=5;%>会原封不动的放到生成之后的servlet当中了。在这里为什么不直接提供<%int a=5;%>语法。因为如果这样写,将编译为_jspService()方法中必须有一种机制,让这种声明跳出方法,成为成员变量。这样写,因为在JSP里面,这个不是线程安全的,等于很多线程共享了同一个成员变量。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值