JSP(Java Server Pages)

一、JSP是什么?

全称 Java Server Pages,服务器端负责页面展示的技术,可以嵌套java语言,和html,来生成动态页面,底层会被被转化为Servlet。

二、JSP语法

1.JSP模版元素

JSP页面中的HTML内容就是JSP模版元素。

JSP模版元素定义了网页的基本骨架,也就是定义了页面的结构和外观

2.JSP表达式

JSP脚本表达式是用来将程序数据输出到前端页面展示给用户的

JSP脚本表达式中的变量或表达式后面是没有分号的

比如:你好世界:<%="Hello World"%>

3.JSP脚本片段

JSP脚本片段,也就是在JSP页面中编写多行Java代码。

(1) JSP脚本片段中只能出现java代码

(2) JSP脚本片段中的Java代码是严格遵循Java语法的,比如每执行语句后面必须用分号结束。

语法:

<%

多行java代码

%>

案例:

1,在jsp脚本中定义一个时间变量,然后采用脚本表达式输出该变量

<%

Date date = new Date();

%>

<%=date%>

2,循环打印100行的表格

<%@ page import="java.util.Random" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>    
        <title>Title</title>
    </head>
    <body>
        <table>    
            <tr>        
                <th>姓名</th>        
                <th>性别</th>        
                <th>年龄</th>        
                <th>爱好</th>    
            </tr>    
            <%        
            String[] sex = {"男", "女"};        
            int[] ages = {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30};                      String[] hobbies = {"篮球", "足球", "购物"};    
            %>     
            <% for (int i = 1; i < 100; i++) {%>    
            <tr>        
                <td><%=i%></td>        
                <td><%=sex[new Random().nextInt(sex.length)]%></td>        
                <td><%=ages[new Random().nextInt(ages.length)]%></td>        
                <td><%=hobbies[new Random().nextInt(hobbies.length)]%></td>    
            </tr>    
            <% }%>
        </table>
    </body>
</html>

4.JSP注释

JSP注释的格式:<%-- 注释信息 --%>

JSP引擎在将JSP页面翻译成Servlet程序时,忽略JSP页面中被注释的内容.

它与HTML中的注释不同之处:

(1)HTML注释:

HTML注释是标准的HTML注释语法,它被浏览器解析,但不会显示在最终呈现的页面上。

但是可以在客户端的源代码中查看到,即在浏览器的“查看源代码”功能中可以看到它们。

HTML注释的语法是:

<!-- 这是一个HTML注释 -->

(2)JSP注释:

JSP注释只在服务器端处理,不会发送到客户端,因此在浏览器的源代码中是不可见的。

这种注释主要用于注释JSP代码,不会影响页面的输出。

JSP注释的语法是:<%-- 这是一个JSP注释 --%>

(3)总结

JSP注释和HTML注释的主要区别在于: (a)JSP注释仅在服务器端处理,客户端不可见。 HTML注释在客户端源码中可见,可用于注释HTML结构,但不适用于JSP代码逻辑的注释。

(b)注释语法的不同

5.JSP指令

JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。在JSP 2.0规范中共定义了三个指令:page指令 include指令 taglib指令

JSP指令的基本语法格式:

<%@ 指令 属性名="值" %>

举例:<%@ page contentType="text/html;charset=utf-8"%>

如果一个指令有多个属性,这多个属性可以写在一个指令中,也可以分开写。

<%@ page contentType="text/html; charset=utf-8" import="java.util.Date"%>

也可以这样写

<%@ page contentType="text/html;charset=utf-8"%>

<%@ page import="java.util.Date"%>

*page指令*

<%@ page

[ import="{package.class | package.*}, ..." ]

[ errorPage="relative_url" ]

[ isErrorPage="true | false" ]

[ contentType= "text/html ; charset=ISO-8859-1" ]

%>

*include指令*

include指令用于引入其它JSP页面,如果使用include指令引入了其它JSP页面,那么JSP引擎将把这两个JSP翻译成一个servlet。

所以include指令引入通常也称之为静态引入

语法:<%@ include file=“被包含页面的绝对URL或相对URL"%>

*taglib指令*

taglib指令用于在JSP页面中导入标签库

<%@ taglib uri="Oracle Java Technologies | Oracle" prefix="c" %>

6.JSP标签

jsp:include标签

用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入

它和includes指令引入的区别在于,标签引入是动态引入/逻辑引入,指令引入是静态引入/物理引入(在编译阶段(转换阶段)将一个资源的内容插入到包含它的页面中。这意味着包含的页面在第一次请求时会被编译成Servlet的一部分)

jsp:forward标签

用于把请求转发给另外一个资源。

语法: <jsp:forward page="relativeURL | <%=expression%>" />

page属性用于指定请求转发到的资源的相对路径

jsp:param标签

当使用jsp:include和jsp:forward标签引入或将请求转发给其它资源时,

可以使用jsp:param标签向这个资源传递参数。

语法1:

<jsp:include page="hhy.jsp | <%=expression%>">

<jsp:param name="参数名" value="参数值|<%= expression %>" />

/jsp:include

语法2:

<jsp:forward page="relativeURL | <%=expression%>">

<jsp:param name="参数名" value="参数值|<%= expression %>" />

/jsp:forward

7.JSP声明

JSP页面中编写的所有代码,默认会翻译到servlet的service方法中,

而Jsp声明中的java代码被翻译到_jsp Service方法的外面。

也就是说会被翻译成全局/成员变量

语法:

<%!

java代码

%>

8.JSP内置对象

JSP有九大内置对象

request -- HttpServletRequest,请求域对象

response -- HttpServletResponse,响应域对象

config -- ServletConfig,配置文件对象

application -- ServletContext,全局域对象

exception(只有在page指令中具有属性isErrorPage="true"时才有效)-- Exception,当前页面的异常对象

session -- HttpSession,会话域对象

page -- 当前页面域对象

out -- JspWriter,输出流对象

pageContext -- PageContext,当前页面的上下文关系对象

*格式化*

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

晓风L

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

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

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

打赏作者

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

抵扣说明:

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

余额充值