博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jsp 的三种语法
阅读量:3965 次
发布时间:2019-05-24

本文共 3371 字,大约阅读时间需要 11 分钟。

a)jsp 头部的 page 指令

jsp 的 page 指令可以修改 jsp 页面中一些重要的属性,或者行为。

<%@ page import="java.util.*" %><%@ page contentType="text/html;charset=UTF-8"         pageEncoding="UTF-8"         autoFlush="true"         buffer="8kb"         language="java" %>

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

error500.jsp文件:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    error500很抱歉,您访问的页面服务器出现错误,程序猿小哥正在努力为您抢修!!!

page.jsp文件:

<%@ page import="java.util.*" %><%@ page contentType="text/html;charset=UTF-8"         pageEncoding="UTF-8"         autoFlush="true"         buffer="8kb"         errorPage="error500.jsp"         language="java" %>
page.jsp<% int a = 10 / 0;%>

在浏览器输入http://localhost:8080/09_JSP/page.jsp

在这里插入图片描述
在这里插入图片描述
isErrorPage=“true”
设置为true后,源代码会增加这行代码
在这里插入图片描述
在这里插入图片描述

b)jsp 中的常用脚本

i. 声明脚本(极少使用)

声明脚本的格式是:<%! 声明 java 代码 %>

作用:可以给 jsp 翻译出来的 java 类定义属性和方法甚至是静态代码块。内部类等。

在声明脚本块中,我们可以干 4 件事情

  • 1.我们可以定义全局变量。
  • 2.定义 static 静态代码块
  • 3.定义方法
  • 4.定义内部类 几乎可以写在类的内部写的代码,都可以通过声明脚本来实

代码示例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    声明脚本<%--1、声明类属性 --%><%!    private Integer id;    private String username;    private static Map
map;%><%--2、声明 static 静态代码块 --%><%! static{ map = new HashMap
(); map.put("key1","value1"); map.put("key2","value2"); map.put("key3","value3"); }%><%--3、声明类方法 --%><%! public int sum(){ return 2 + 3; }%><%--4、声明内部类--%><%! public static class A{ private Integer id = 12; private String abc = "abc"; }%>

在这里插入图片描述

ii. 表达式脚本(常用)

表达式脚本的格式是:<%=表达式%>

表达式脚本的作用是: 用于向页面输出内容。 表达式脚本 翻译到 Servlet 程序的 service 方法中 以 out.print() 打印输出 out 是 jsp 的一个内置对象,用于生成 html 的源代码

注意:表达式不要以分号结尾,否则会报错

表达式脚本可以输出任意类型。

表达式脚本的特点:

  • 1、所有的表达式脚本都会被翻译到_jspService() 方法中
  • 2、表达式脚本都会被翻译成为 out.print()输出到页面上
  • 3、由于表达式脚本翻译的内容都在_jspService() 方法中,所以_jspService()方法中的对象都可以直接使用。
  • 4、表达式脚本中的表达式不能以分号结束

代码示例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    表达脚本<%!    private Map map = new HashMap
();%><%--1. 输出整型 --%><%= 12%>
<%--2. 输出浮点型 --%><%=12.2%>
<%--3. 输出字符串 --%><%="我是字符串"%>
<%--4. 输出对象--%><%=map%>
<%=request.getParameter("username")%>

在浏览器输入:http://localhost:8080/09_JSP/expressScript.jsp?username=zhangsan

在这里插入图片描述

翻译对照:

在这里插入图片描述

iii. 代码脚本

代码脚本的格式是: <% java 语句 %>

代码脚本的作用是:可以在 jsp 页面中,编写我们自己需要的功能(写的是 java 语句)。

代码脚本的特点是:

  • 1、代码脚本翻译之后都在_jspService 方法中
  • 2、代码脚本由于翻译到_jspService()方法中,所以在_jspService()方法中的现有对象都可以直接使用。
  • 3、还可以由多个代码脚本块组合完成一个完整的 java 语句。
  • 4、代码脚本还可以和表达式脚本一起组合使用,在 jsp 页面上输出数据

代码示例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    代码脚本<%--1. 代码脚本----if 语句--%><%    int i = 13;    if (i == 12) {        System.out.println("i = " + i);    } else {        System.out.println("i = " + i);    }%><%    int t = 13;    if (t == 12) {%>    <%="t = " + t%><% } else {%>    <%="t = " + t%><% }%>
<%--2. 代码脚本----for 循环语句--%><% for (int j = 0; j < 10; j++) { System.out.println("j = " + j); }%>
<%for (int j = 0; j < 10; j++) {%>
<% }%>
第 <%=j + 1%> 行
<%--3. 翻译后 java 文件中_jspService 方法内的代码都可以写--%><% String username = request.getParameter("username"); System.out.println("用户名的请求参数值是:" + username);%>

结果输出到控制台

在这里插入图片描述

代码翻译:

在这里插入图片描述

c)jsp 中的三种注释

i. html 注释

html 注释会被翻译到 java 源代码中。在_jspService 方法里,以 out.writer 输出到客户端。

在这里插入图片描述

ii. java注释

<%//    单行java注释    /*多行注释*/%>

java 注释会被翻译到 java 源代码中。

在这里插入图片描述

iii. jsp 注释

<%--这是jsp注释--%>

jsp 注释可以注掉,jsp 页面中所有代码,且不会出现在java源码中

转载地址:http://vluki.baihongyu.com/

你可能感兴趣的文章
线程池
查看>>
深入浅出:Tomcat应用服器中Servlet容器架构及工作原理剖析
查看>>
fastjson 将json和java对象相互转换
查看>>
java获取cookie
查看>>
kafaka用例&市上最全总结
查看>>
神器 PySimpleGUI 初体验
查看>>
编程 学习视频教程大全
查看>>
查找最快的docker镜像
查看>>
AssignProcessToJobObject 错误码5 的解决办法
查看>>
windows LibreOffice 6.3.5 安装出错1355 问题解决
查看>>
libreoffice/openoffice c/c++转换office格式为pdf
查看>>
Tomcat 7.0 64位免安装解压版 安装及配置
查看>>
Android 网络编程 初级入门(一)
查看>>
No enclosing instance of type Demo06 is accessible.
查看>>
计算机发展中的两大“杀手”
查看>>
《奔跑吧,兄弟》之王祖蓝的"钥匙配箱子"概率统计问题--->>回眸
查看>>
MDK5(Keil for ARM) 工程建立时遇到的问题集锦
查看>>
(正则表达式)邮件地址爬虫
查看>>
c 编译器及#define和typedef
查看>>
Ubuntu下安装GTK+及Glade开发C应用界面
查看>>