JSP学习笔记(一)

JSP页面结构组成
一、HTML标记符
二、变量和方法声明
三、Java程序片
四、Java表达式
五、JSP标记
六、注释

一、HTML标记符

省略不讲

二、变量和方法声明

1.在<%! %>之间声明变量和方法
2.声明的变量对整个JSP页面内部有效

(JSP引擎为每个用户启动一个线程,并且这些线程共享JSP页面的成员变量,这些变量占有内存空间直到JSP引擎关闭才释放) (可以用于登记网站访问人数:您是第xx个访问本站的用户等)

3.定义的方法对整个JSP页面有效
4.如果不希望多个用户同时调用方法产生不良的影响,可以使用synchronized修饰方法,即:
<%! int count = 0;
	synchronized void setCount() {
		count++;
	}
%>

如果两个线程同时调用count++的话,它自增完后先后进行了赋值,于是做了两次把count=1赋给count,最后count还是1而不是2,而使用synchronized修饰后,其他线程必须等待,直到正在调用方法的线程执行完才可以调用该方法

三.Java程序片

1.Java程序片写在<% %>之间
2.程序片按顺序执行,程序片中的变量为局部变量

即每个用户线程对局部变量的操作不会影响到其他用户线程

四.Java表达式

1.<%=x %>
2.在JSP中表达式的值为字符串,因为由容器将表达式结果转换成字符串后才发给用户浏览器

五·.JSP标记

1.page指令标记

page指令标记用来定义整个JSP页面的一些属性和这些属性的值(对整个JSP页面有效)

[1]contentType属性
Tomcat需要负责告知用户浏览器用什么样的方式来处理所接受到的信息,如:
<% @ page contentType = "text/html;charset = UTF-8"%>(用html解析器)
<% @ page contentType = "application/msword"%>(用MS-Word应用程序)
注意:contentType只允许在一个JSP页面中使用一次,不能重复指定不同的属性值
[2]language属性
目前只能取Java
[3]import属性
导入Java类
[4]session属性
设置是否需要用session,默认是true
[5]buffer属性

<% @ page buffer = "24KB"%>

[6]autoFlush属性
是否在缓冲区满时自动刷新缓冲区
[7]isThreadSafe属性
设置是否可以多线程访问,默认true
[8]info属性
info的值是一个字符串,其目的是准备一个常用但可能要经常修改的字符串,如:

<% @ page info = "abc" %>

可以使用getServletInfo来获取info的值

2.include指令标记

[1]<% @ include file = "url" %>
[2]作用是在出现该指令的位置静态插入一个文件
所谓静态插入,就是将当前JSP页面和插入的文件合并成一个新的JSP页面。因此要保证新合成的页面符合JSP的语法规则,如一个的contentType值是application,另一个是text那么合并后就会因为重复设定了不同的属性值而出现语法错误

3.include动作标记

[1]<jsp:include page = "url"/>

[2]include动作标记是在JSP运行时才处理文件,而include指令是在编译阶段就处理的文件

4.param动作标记
<jsp: param name = "" value = "">

与jsp:include一起使用时可以将值传递到要加载的文件中去

5.forward动作标记

[1]<jsp:forward page = "url"/>
[2]从该指令处停止当前页面的执行,转向page指定的页面
[3]转向后,浏览器地址栏仍然是转向前的地址,用户刷新后会重新执行转向前的JSP页面

6.注释

注释分两种:

1.HTML注释
<!-- 注释内容 -->

JSP引擎把HTML注释交给用户,因此用户通过浏览器查看JSP源文件可以看到

2.JSP注释
<%-- 注释内容 --%>

JSP引擎忽略JSP注释,即在编译JSP页面时忽略JSP注释,所有用户看不到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值