JSP

1、JSP的概念

JSP全名是 Java Server Pages,称为Java的动态服务器端(Web应用服务器,例如Tomcat)网页技术。
   ●JSP它也需要依赖Web容器,才能运行
   ●动态的网页技术,JSP可以根据请求展现不同的数据
   ●JSP文件的扩展名为.jsp

JSP其实就是把Java程序嵌入到类HTML中,页面称为JSP页面。

JSP中可以包含:
   ●HTML
   ●CSS
   ●JavaScript
   ●Java代码

JSP和Servlet
   ●JSP更擅长页面展示
   ●Servlet更擅长对请求业务逻辑的处理
   ●在JSP中是网页嵌套Java代码,而在Servlet中,是Java代码嵌套HTML

2、JSP的基本语法

2.1、JSP页面中的注释

JSP页面中的注释:
   ●JSP中存在,浏览器中可以看到注释的内容
   ●<%-- JSP特有的注释 --%>,只在JSP源代码中出现,浏览器中看不到

2.2、JSP中的代码片段

语法格式:<% Java代码片段 %>

作用:
   ●当请求JSP页面时,会执行<%%>中的Java代码
   ●拼接java逻辑代码,实现嵌套html标签

代码演示:

<%@pagecontentType="text/html;charset=UTF-8"language="java"%>
<html>
<head>
    <title>JSP入门</title></head>
<body>
<!--html中的注释-->
<%--JSP中的注释--%>
<%--作用1:请求页面时,执行Java代码--%>
<%
    for (inti = 0; i < 5; i++) {
        System.out.println("HelloJSP");
    }
%>

<%--作用2:拼接java代码,实现嵌套html标签--%>
<%for (inti = 0; i < 5; i++) {%>
<h3>HelloJSP</h3>
<%}%>

</body>
</html>

2.3、 JSP中的表达式

JSP中的表达式,就是往页面中输出内容的。

语法格式:<%=Java表达式内容%>

作用:当请求该JSP页面时,会把<%=%>中的java表达式内容输出到JSP页面

代码演示:

<h3>JSP表达式</h3><hr/>

<%="zhangsan"%>
<%=100*100%>
<%=false%>
<%="lisi"+"zhangsan"%>

2.4、JSP中的声明

语法格式:<%! Java代码 %>

作用:用于定义全局变量和方法

<h3>JSP声明</h3>
<hr/>
<%!
    intnum=100;

    publicStringgetInfo() {
        return "2020年10月19号";
    }
%>

<%=num%>

<%=getInfo()%>

3、JSP页面执行的原理

通过上述的学习体验,JSP中既可以写HTML标签,也可以编写Java代码,它是如何实现的?
在这里插入图片描述
JSP页面执行的时候被转成.java文件,编译为.class

通过查看JSP的java源代码文件,可以得出结论:

   ●JSP也是一个Servlet,并且把JSP页面中相关的内容会添加到JSP的_jspService方法中,然后通过输出流把数据输出到页面中

   ●JSP中的_jspService方法中,还准备了很多其它对象,这些对象在JSP页面中都可以直接使用,这就是接下来要学习的隐式对象

4、JSP指令

指令就相当于是编译期间的命令

语法:<%@指令名 属性=“属性值” %>

JSP中常见的指令:
  ●page
  ●include
  ●taglib

4.1、 指令之page

基本格式:
<%@pagelanguage=“scriptlanguage”|
        extends=“className”|
        import=“importList”|
        buffer=“none|kbsize”|   --none:不缓冲,默认8k
        session=true|false|   --是否可以使用session,默认true
        autoFlush=true|false--缓冲区是否自动清除,默认true
        isThreadSafe=true|false|   --默认false(永远不要设成true)
        info=“infoText”|--任何字符
        errorPage=“errorPageUrl”|
        isErrorPage=true|false|
        contentType=“contentTyepInfo”|   pageEncoding=“字符集”%>

4.2、指令之include(静态包含)

include指令就是可以把指定的HTML或JSP页面中的内容,包含到当前页面。

<%@includefile=“目标url”%>

在JSP容器收到用户请求时,就会先把include指令所要包含的内容,拷贝到当前页面中,web容器再对当前JSP页面进行,转译和编译的工作,所以无论使用include指令包含jsp页面还是html页面,永远都只会生成一个java文件。

include指令不能给目标url传递数据

4.3、 指令之taglib(暂时了解)

taglib指令可以让JSP页面使用自定义标签

taglib指令的作用是在JSP页面中,将标签库描述符文件引入到该页面中,并设置前缀

利用标签的前缀去使用标签库表述文件中的标签

语法:
<%@tagliburi=“标签库表述符文件”prefix=“前缀名”%>

5、Action动作

JSP中的动作指的是在程序运行期间的一个行为(命令)

常见的动作包括:
  ●jsp:include
  ●jps:forward

5.1、 JSP动作之jsp:include

在JSP页面中,当执行到jsp:include动作时,目标页面才会被web容器进行转移编译,然后只把目标页面的结果输出到当前页面,会生成两个不同的java文件,而且使用include动作还可以给目标页面进行参数传递。

格式:

<jsp:includepage=“URLSpec”flush=true/>

<jsp:includepage=“URLSpec”flush=true>
	<jsp:paramname=“ParamName”value=“paramValue”/>
</jsp:include>

include指令和动作的区别:

  ●include指令是在JSP页面的转译时期就将file属性所指定的文件内容嵌入,然后再编译执行;

  ●include动作只有在客户端请求时期如果被执行到才会被动态的载入。

  ●include指令不能带参数,include动作可以

5.2、 JSP动作之jsp:forward

用于将一个jsp的内容传送到page所指定的JSP程序或者Servlet中处理(URL)

格式:

<jsp:forwardpage=“urlSpec”/>

<jsp:forwardpage=“urlSpec”>
	<jsp:paramname=“paramName”value=“paramValue”/>
</jsp:forward>

< jsp:param>用于指定参数和其对应的值

< jsp:forward>的实质就是请求分派

6、 JSP九大隐式对象

JSP中预先定义了9个这样的对象,分别为:request、response、pageContext、session、application、out、config、page、exception

在这里插入图片描述

对象名功能类型作用域
request向客户端请求数据javax.servlet.ServletRequestrequest
response响应客户端的请求javax.servlet.ServletResponsepage
pageContext页面作用域javax.servlet.jsp.PageContextpage
session用来保存每个用户的信息,以跟踪用户的操作javax.servlet.http.HttpSessionSession
application应用程序对象javax.servlet.ServletContextapplication
out向客户端输出数据javax.servlet.jsp.JspWriterpage
config表示servlet配置对象javax.servlet.ServletConfigpage
pageJSP实现类的实例,就是JSP本身的对象javax.lang.Objectpage
exception运行时异常java.lang.Throwablepage

输出:out、response

作用域:pageContext、request、session、application

其它:page、config、exception

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值