Javaweb开发学习笔记(五)

jsp语法基础
jsp的介绍
1.JSP的概念
什么是jsp
1)什么是JSP?JSP的全名为Java Server Page,是为了简化Servlet的工作而出现的替代品。

在JSP中java代码与HTML共同存在,其中HTML代码用于展示静态的内容,java代码用来展示动态的内容。
2)为什么出现JSP技术?

1997年Java Web中之哟Servlet,生成html技术也需要Servlet中完成,虽然Servlet也可以完成所有的输出工作,但是使用过程比较复杂,部署也比较复杂。为了克服这些缺点,1999年SUN公司推出了JSP技术。该技术在生成HTML代码的时候相比Servlet方便了许多。
3)对于Servlet和JSP技术的理解:

Servlet:在java代码中嵌入html代码,更擅长编写java业务代码

JSP:在html中潜入java代码,更擅长页面展示

3)对于Servlet和JSP技术的理解:

Servlet:在java代码中嵌入html代码,更擅长编写java业务代码

JSP:在html中潜入java代码,更擅长页面展示

		JSP运行原理
			JSP在第一次被访问时,会被Web容器翻译成Servlet,即JSP本质上就是Servlet。

过程:

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

被翻译后的Servlet在Tomcat的work目录中可以找到。
使用IDEA会单独为项目维护一个目录:
C:\Users\bijin.IntelliJIdea14\system\tomcat\Tomcat_9_0_13_HelloWorld\work\Catalina\localhost\ROOT

通过观察发现JSP会转化为java文件,并且间接的继承了HttpServlet,实现了其中的主要方法,init、service、destroy,并且将html代码通过java方式输出给浏览器
2.JSP脚本和注释
JSP脚本

<%Java代码%>----内部的java代码翻译到service方法的内部
<%=Java变量或表达式%>----会被翻译成service方法内部的out.print()
<%!Java代码%>----会被翻译成servlet的成员变量,存在线程安全问题,不建议使用
JSP注释

Html注释: ,可见范围jsp源码、翻译后的servlet、页面显示html源码
Java注释://单行注释 /多行注释/,可见范围jsp源码、翻译后的servlet
JSP注释:<%–注释内容–%>,可见范围jsp源码可见,仅开发人员可见,更安全,建议使用
3.JSP指令
JSP指令是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分,JSP包括三大指令:
Page指令——属性最多的指令(实际开发中page指令使用默认值即可)

根据不同的属性,指导整个页面特性

格式:<%@page 属性名1=“属性值1” 属性名2=“属性值2” … %>

常见属性如下:

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

contentType:response.setContentType(“text/html;charset=utf-8”)

session:是否JSP内置session对象

import:导入java的包

errorPage:当前页面出错后跳转到哪个页面
include指令——静态包含

页面包含指令,可以将一个jsp页面包含到另一个jsp页面中,项目中往往会有很多相同界面,用此标签可以简化页面

格式:<%@ include file=“被包含的文件地址” %>
taglib指令

在JSP页面中引入标签库(jstl标签库,struts2标签库)

格式:<%@ tablib uri=“标签库地址” prefix=“前缀” %>
4.JSP标签
1.什么是JSP标签?
JSP标签用来控制JSP的行为,执行一些常用的JSP页面动作,通过标签可以实现很多行java代码才能实现的功能,比如请求转发的功能。
常用的JSP标签
1)页面包含——动态包含

<jsp:include page=“被包含的页面” /> 2)请求转发

<jsp:forward page=“要转发的资源” />
JSP支持的九大隐式
JSP支持的九大隐式对象:

JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。
pageContext对象pageContext对象是javax.servlet.jsp.PageContext类的实例,表示jsp页面的上下文
功能强大,几乎可以操作各种内置对象。
pageContext可以获取其他对象

getRequest():返回当前页面的request对象
getResponse():返回当前页面的response对象
getServetConfig():返回当前页面的servletConfig对象
getServletContext():返回当前页面的ServletContext对象,这个对象是所有的页面共享的
getSession():返回当前页面的session对象
pageContext可以向指定的其他域中存取数据

setAttribute(String name,Object obj,int scope)
getAttritute(String name,int scope)
removeAttribute(String name,int scope)
findAttribute(String name):获取顺序依次从pageContext域,request域,session域,application域
JSP中四个作用域
所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效。
JSP中九个内置对象及其相应所属作用域如下表:

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十三幺Shisanyao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值