前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

JSP

作者头像
木瓜煲鸡脚
发布2019-08-22 16:28:04
10.9K0
发布2019-08-22 16:28:04
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记

JSP

1.JSP简介

2.JSP标签元素

3.JSP指令

4.标签动作

5.隐式对象

JSP简介

什么是JSP

JSP全名为Java Server Pages

中文名叫java服务器页面

它是在传统的网页HTML文件(*.htm,*.html)中插人Java程序段和JSP标记

后缀名为(*.jsp)。

其根本是一个简化的Servlet设计

为什么要有JSP

直接使用Html文件是没有办法输出Java当中的信息

使用servlet来去输出一个网页非常的麻烦

于是就出现了jsp,又能写html,又能写Java代码

JSP的工作原理

创建JSP默认编码是ISO-8859-1可以去改一下

JSP的本质实际上是Servlet,它在第一次访问时就会被服务器容器翻译成servlet。

路径:apache-tomcat-9.0.22\work\Catalina\localhost\项目名\org\apache\jsp

因此它就是一个Servlet,在全局web.xml中配置了起到翻译功能的文件路径,当请求url是访问jsp时就会启动那个翻译

JSP的组成

静态数据,如HTML

JSP脚本元素和变量

SP指令,如include指令

JSP标签动作

用户自定义标签

JSP标签元素

在JSP当中写Java代码

代码语言:javascript
复制
  <%java代码%>
   // 内部的java代码翻译到service方法的内部
  <%=java变量或表达式>
   // 会被翻译成service方法内部out.print()


  <%!java代码%>
   // 会被翻译成servlet的成员的内容

JSP注释

代码语言:javascript
复制
<!--注释内容-->
 // HTML注释\可见范围 jsp源码、翻译后的servlet、页面
  
 "//单行注释  /*多行注释*/"
 // Java注释\可见范围 jsp源码 翻译后的servlet,页面中看不到

<%--注释内容--%>
 // Jsp注释\可见范围 jsp源码可见// 

JSP指令

什么是指令

JSP指令用于设置整个JSP页面的相关信息

以及用于JSP页面与其它容器之间的通信

有哪些指令

page指令:用于设定整个JSP页面的属性和相关功能

contentType

属性指定JSP页面的MIME和编码格式

pageEncoding

属性用来指定JSP文件的编码格式

import

在JSP中引入Java的包和类,多个包之间以逗号隔开

session

指定当前页面是否能获得当前用户的session对象缺省是true如果指定为false,那么在该页面中无法使用session,使用的话会提示500错误

errorPage

如果当前页面发生异常网页会重定向到errorPage所指定的页面进行处理

isErrorPage

允许指定的JSP页面为错误处理页面

language

指定页面中使用的脚本语言种类目前只支持java

extends

用于指定该JSP生成的servlet继承自哪个父类,必须指定包名加类名

buffer

用来设置输出流缓冲区,缓冲区的作用就是为了提高IO性能也就是说减少write的次数

autoFlush

用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区

isThreadSafe

缺省值为true指定该JSP文件是否支持多线程访问

info

用来设置该jsp文件的介绍信息

isELIgnored

用来标示是否支持EL表达式

多个属性之间使用空格隔开

include指令:表示在JSP编译时插入一个包含文件或者代码的文件,include指令所包含的文件名不能是一个变量url,只能是静态的文件名

代码语言:javascript
复制
<%@ include file="/name.jsp"%>
// 相对于复制其他文件的一段代码 

taglib指令:声明JSP文件使用了标签库。比如:JSP标准标签库、

第三方标签库、自定义标签库

标签动作

页面包含

代码语言:javascript
复制
/*
 与include指令不同,它是导入的页面已经在本文件处理了 
 而不是粘贴过来再处理 
*/
<jsp:include page="被包含的页面"></jsp:include>

请求转发

代码语言:javascript
复制
<jsp:forward page="要转发的资源"></jsp:forward>

隐式对象

jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕

out

out的类型:JspWriterout作用就是想客户端输出内容 out.write()out缓冲区默认8kb可以设置成0 代表关闭out缓冲区内容直接写到respons缓冲区out写的内容写到out缓冲区当中最后再把out缓冲区当中的内容合并到response缓冲区当中

request

得到用户请求信息对象

response

服务器向客户端的响应对象

config

服务器配置,可以取得初始化参数

session

用来保存用户会话的信息

application

所有用户的共享信息,就是servletContext工程上下文

page

指当前页面转换后的Servlet类的实例

pageContext

jsp页面的上下文对象,包含在这个jsp范围内的信息

exception

表示JSP页面所发生的异常,在错误页中才起作用,只有是错误页面的时候,才会有该对象

对于pageContext它和session,request,servletContext一样也是域对象

所以它也有这三个方法:

代码语言:javascript
复制
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)

除此之外它比较特殊的是它还能到其他域存取数据,也就是说只需要这一个对象就可以就可以传递各个参数

代码语言:javascript
复制
 /*
 setAttribute(String name,Object obj,int scope)
 removeAttrbute(String name,int scope)
 findAttribute(String name)
*/
// 比如用pageContext给resquet设信息
pageContext.setAttribute("name","zhangsan",REQUEST_scope) ;

// 它是去所有域中去找参数,找到了就停止
// 查找顺序依次从pageContext域,request域,session域,application域中获取属性
findAttribute(String name)

还可以获得其他8大隐式对象

代码语言:javascript
复制
// 比如
HttpServletRequest request = pageContext.getRequest()
HttpSession session = pageContext.getSession()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档