jsp文件1

jsp文件的本质就是servlet,但是java文件不擅长写HTML代码,并且写起来非常麻烦。java诞生初期只有servlet,servlet输出一个网页非常麻烦,出来开发出了jsp,解决了这个问题。

一、jsp脚本:

1)<%java代码%> ----- 内部的java代码翻译到service方法的内部

2)<%=java变量或表达式%> ----- 会被翻译成service方法内部out.print()

3)<%!java代码%> ---- 会被翻译成servlet的成员的内容 访问时会被写到该java文件下

jsp在第一次被访问时会被Web容器翻译成servlet,在执行过程:

第一次访问---->helloServlet.jsp---->helloServlet_jsp.java---->编译运行

PS:被翻译后的servlet在Tomcat的work目录中可以找到

二、jsp上有三大指令,jsp的指令是指导jsp翻译和运行的命令

1.page指令拥有多个属性

language:jsp脚本中可以嵌入的语言种类

pageEncoding:当前jsp文件的本身编码---内部可以包含contentType

contentType:response.setContentType(text/html;charset=UTF-8)

session:是否jsp在翻译时自动创建session,默认是自动创建的

import:导入java的包

errorPage:当当前页面出错后跳转到哪个页面 比如报错了 404 500

isErrorPage:声明当前页面是一个处理错误的页面 报错时显示这个页面

2.include指令

页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中

格式:<%@ include file="被包含的文件地址"%>

3 .taglib指令

在jsp页面中引入标签库(jstl标签库、struts2标签库)

格式:<%@ taglib uri="标签库地址" prefix="前缀"%>

三、 jsp九大内置对象(jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕,我们在jsp 脚本中可以直接使用这9个对象

 out对象,向页面输出的对象,out.writer,当servlet方法结束之后,Tomcat引擎先去response缓冲区找内容,再去out缓冲区找内容,统一刷到response缓冲区中,然后再读到页面上去,out缓冲区设置成0代表关闭该缓冲区(在jsp文件的page 结尾写buffer=“0kb”)

pageContext对象(jsp页面的上下文对象,作用域在当前jsp)

pageContext可以向指定的其他域中存取数据,它将request域 session域 application域,都封装成了成员变量 可以通过存值setAttribute(String name,Object obj,int scope),取值getAttribute(String name,int scope),删除值removeAttrbute(String name,int scope),findAttribute(String name)方法遇到name值相同的时候就会依次从request域 -session域 -application域中获取,获取到之后就不再往下一级获取

 

 

四大作用域的总结:

pageContext域:当前jsp页面范围

request域:一次请求

session域:一次会话

application域:整个web应用

posted @ 2021-03-14 20:43  Dyl啊  阅读(88)  评论(0编辑  收藏  举报