jsp

一、JSP技术

1、JSP的脚本

(1)< % java代码 %>:内部的java代码会被翻译到service方法内部
(2)<%= java变量或表达式 >:会被翻译成service方法内部的out.print()
(3)<%! java代码%>:会被翻译成servlet的成员内容

2、JSP中的注释(可见范围不同)

(1)html注释:<!-- -->——可见范围:jsp源码、翻译后的servlet(在work工作区间内)、页面显示的html源码
(2)java注释:单行注释// 多行注释/* */——可见范围:jsp源码、翻译后的servlet
(3)jsp注释:<%-- -->——可见范围:jsp源码

3、JSP运行原理

jsp**第一次**被访问时会被翻译成servlet再执行。
过程:第一次访问——helloServlet.jsp——helloServlet_jsp.java——编译运行。(第一次访问会去work目录下查找是否有相应的_jsp.java文件,如果有则访问它,没有的话就将jsp翻译成servlet即_jsp.java文件再执行它)

4、JSP指令

(1)page指令(实际开发中page指令默认即可
属性最多的一个指令,根据不同的属性来指导页面翻译。
格式:< %@ page 属性名1=”属性值1” 属性名2=”属性值2” 属性名3=”属性值3”%>
常用属性如下:
language:jsp脚本中可以嵌入的语言种类。//没卵用
contentType——等同于response.setContentType(“text/html;charset=UTF-8”)的作用。在翻译时会直接翻译成这段代码。
pageEncoding:当前jsp文件本身的编码格式。(此属性内部包含contentType)。
session:默认true。(设置jsp翻译时是否会自动创建session)
import:设置jsp翻译时导入的包。
errorPage:设置jsp中java代码出错后的跳转页面
isErrorPage:当前页面是不是一个处理错误的页面,true of false
(2)include指令
页面包含(静态包含)指令,可以将一个jsp包含到另一个Jsp内
格式:<%@ include file=”被包含的文件地址”%>
(3)taglib指令
在jsp中引入标签库(jstl标签库、struts2标签库)
格式:<%@ taglib uri=”” prefix=”前缀” %>

5、JSP内置/隐式对象(9个)#重要

jsp被翻译成servlet之后,service方法中会定义并初始化一些对象。
这里写图片描述
out对象:向客户端输出内容。类型是jspWriter。有write()方法:out.write();
out缓冲区默认8kb。设置为0kb表示关闭Out缓冲区,内容直接写进response缓冲区。(tomcat访问response数据时先访问response缓冲区,然后才将out缓冲区的内容加在response缓冲区的后面)
pageContext对象:
jsp页面的上下文对象。
(1)pageContext是一个域对象(存数据的区域)作用范围是当前页面。
setAttribute、getAttribute、removeAttribute。
重载的setAttribute(String name , Object obj , int scope)——可以向其他域存取数据。
findAttribute(String name)从所有的域中寻找对应name的属性。
(2)内部维护着其他八大隐式对象的索引。写框架的时候会用到。


四大域:
page域(pageContext):当前jsp页面范围
request域:一次请求
session域:一次会话
application域(ServletContext):整个web应用

5、JSP标签(动作)

(1)页面包含(动态包含):< jsp:include page=”被包含的页面”/>
区别静态包含:把要包含的页面中的内容copy到发出包含命令的页面中才会进行翻译;动态包含:先将两个各自翻译成servlet后再分别显示在页面中。
这里写图片描述
(2)请求转发:< jsp:forward page=”要转发的资源”/>
地址没变,相当于request.getDepa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值