1. 概念:
    • Java Server Pages:java服务器端页面

      • 可以理解为:一个特殊页面,其中既可以指定定义HTML标签,又可以定义java代码
      • 用于简化书写
    1. 原理:
    • JSP本质上就是一个Servlet
    1. JSP的脚本:JSP定义Java代码的方式
    2. <% 代码 %>:定义的java代码,在service方法中,service方法中可以定义什么,该脚本就可以定义什么
    3. <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置
    4. <%= 代码 %>:定义的java代码,会输出到页面上,输出语句中可以定义什么
    1. JSP的内置对象
    • 在jsp页面中不需要创建和获取,可以直接使用的对象
    • jsp一共有9个内置对象
    • request
    • response
    • out:字符输出流对象,可以将数据输出到页面上,和response.getWriter()类似
      • response.getWriter()和 out write()的区别:

        • 在Tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据
        • response.getWriter()数据输出永远在 out.write()之前
    1. 指令
    • 作用:用于配置JSP页面,导入资源文件
    • 格式:<%@指令名称 属性名1=属性值1 属性名2=属性值2. . . %>
    • 分类
      1. page :配置JSP页面

        * contentType:等同于response.setContentType()

        1. 设置响应体的mime类型以及字符集
        2. 设置当前jsp页面的编码(只能是高级的IDE才能生效,如果使用低级工具,则需要设置pageEncoding属性设置当前页面的字符集)
      * import:导包
      * errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
      * isErrorPage:标识当前页面是否是错误页面
      * true:是,可以使用内置对象exception
      * false:否,默认值,不可以使用内置对象exception
      1. include :页面包含的,导入页面的资源文件

        • <%@include file="top.jsp"%>
      2. taglib :导入资源
    1. 注释
    2. html注释

      * :只能注释html片段
    3. jsp注释:推荐使用

      * <%-- --%>:可以注释所有
    1. 内置对象
    • 在jsp页面中不需要创建,直接使用的对象
    • 一共有9个

      变量名 真实类型 作用

      • pageContext PageContext 当前页面共享数据,还可以获取其他8个内置对象
      • request HttpServletRequest 一次请求访问的多个资源(转发)
      • session Httpsession 一次会话的多个请求间
      • application ServletContext 所有用户间共享数据
      • response HttpServletResponse 响应对象
      • page Object 当前页面(Servlet)的对象 this
      • out JspWriter 输出对象,数据输出到页面上
      • config ServletConfig Servlet的配置对象
      • exception Throwable 异常对象

代码如下

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@include file="top.jsp"%>
<html>
<head>
<title>Title</title>
</head>
<body>
<h3>主题信息</h3>
<% pageContext.setAttribute("msg","hello"); %>
<%=pageContext.getAttribute("msg") %>
</body>
</html>
----------------------------------------------------------------------
<%@ page contentType="text/html;charset=UTF-8" isErrorPage="true" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>服务器正忙...</h1>
<%
String message = exception.getMessage();
out.print(message);
%>
</body>
</html>

Java-JSP既可以指定定义HTML标签,又可以定义java代码的更多相关文章

  1. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  2. 12 自定义标签/JSTL标签库/web国际化/java web之设计模式和案例

    EL应用      自定义一个标签,实现两个字符串的相加 1回顾      1.1servlet生命周期           init(ServletConfig)           service ...

  3. [原创]java WEB学习笔记41:简单标签之带属性的自定义标签(输出指定文件,计算并输出两个数的最大值 demo)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  4. Java jsp页面中jstl标签详解

    JSLT标签库,是日常开发经常使用的,也是众多标签中性能最好的.把常用的内容,放在这里备份一份,随用随查.尽量做到不用查,就可以随手就可以写出来.这算是Java程序员的基本功吧,一定要扎实. JSTL ...

  5. Java jsp 自定义标签

    1 自定义标签 1.1 引入 需求: 向浏览器输出当前客户的IP地址 (只能使用jsp标签) 1.2 第一个自定义标签开发步骤 1)编写一个普通的java类,继承SimpleTagSupport类,叫 ...

  6. java:jsp: 一个简单的自定义标签 tld

    java:jsp: 一个简单的自定义标签 tld 请注意,uri都是:http://www.tag.com/mytag,保持统一,要不然报错,不能访问 tld文件 <?xml version=& ...

  7. JSP进阶 之 SimpleTagSupport 开发自定义标签

    绝大部分 Java 领域的 MVC 框架,例如 Struts.Spring MVC.JSF 等,主要由两部分组成:控制器组件和视图组件.其中视图组件主要由大量功能丰富的标签库充当.对于大部分开发者而言 ...

  8. JSP第七篇【简单标签、应用、DynamicAttribute接口】

    为什么要用到简单标签? 上一篇博客中我已经讲解了传统标签,想要开发自定义标签,大多数情况下都要重写doStartTag(),doAfterBody()和doEndTag()方法,并且还要知道SKIP_ ...

  9. JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)

    JSTL  JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用:   提供给Java Web开发者一个标准通用的标签函数库   和E ...

  10. java框架之Struts2(4)-拦截器&标签库

    拦截器 概述 Interceptor (拦截器):起到拦截客户端对 Action 请求的作用. Filter:过滤器,过滤客户端向服务器发送的请求. Interceptor:拦截器,拦截的是客户端对 ...

随机推荐

  1. P3622 [APIO2007] 动物园 -题解

    好写 爱写 没事干 所以有了这篇题解 洛谷P3622 [APIO2007] 动物园 题解 $Link$ hzoi题库 洛谷 题目说的挺繁琐,其实就传达了一个很简单的信息: \(n\)个动物,\(c\) ...

  2. 智能制造 | AIRIOT智慧工厂管理解决方案

      工厂生产运转中,设备数量多,环境复杂.企业往往需要承担很高的维修.保养.备件和人力成本.传统的工厂改革遇到了诸多前所未有的挑战:   1.管理系统较多,数据隔离,系统集成困难重重: 2.大量老旧设 ...

  3. AIRIOT物联网低代码平台如何配置三菱PLC驱动?

    三菱PLC驱动配置使用三菱Melsec协议(MC协议)从三菱PLC读取数据,仅支持以太网方式.三菱PLC都可以通过此协议访问,但是需要对PLC进行设置. AIRIOT物联网低代码平台如何配置三菱PLC ...

  4. 【漏洞复现】用友NC-Cloud PMCloudDriveProjectStateServlet接口存在JNDI注入漏洞

    阅读须知 花果山的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站.服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作.利用此 ...

  5. 解决“在windows里的记事本里编辑的汉字文本文件,上传到linux服务器上出现乱码“问题

    目录 一.前期准备 二.编码转换 一.前期准备 1.首先在windows环境下打开记事本,然后创建一个包含汉字和英文的文本文件,输入内容"测试在windows里的记事本里编辑的文本文 件,上 ...

  6. C# 【思路】分享 构造可进行单元测试的波形数据

    需要单元测试自己写的识别特殊波峰的算法,所以必须构造波形数据. 一开始是自己在控件上手绘波形,虽然这种方便,但是能绘制的点太少,每次手画显得麻烦. 过后,又采用随机数构造波峰,这种虽说能构造很多点,产 ...

  7. Linux运维面试总结

    1.Linux系统相关日志 /var/log/message:系统信息日志,包含错误信息 /var/log/secure:系统登录日志 /var/log/maillog:邮件日志 /var/log/c ...

  8. [C#] 禁用控制台关闭按钮

    禁用控制台关闭按钮 internal class Program { [DllImport("user32.dll", EntryPoint = "FindWindow& ...

  9. NOIP模拟95(多校28)

    T1 嗑瓜子 解题思路 \(f_{i,j}\) 表示操作 \(i\) 次,拿走了 \(j\) 个瓜子的概率,转移就比较直接了: \[f_{i+1,j+1}\leftarrow f_{i,j}\time ...

  10. 剑指Offer-47.求1+2+3+...+n(C++/Java)

    题目: 求1+2+3+...+n,要求不能使用乘除法.for.while.if.else.switch.case等关键字及条件判断语句(A?B:C). 分析: 利用短路与来判断n是否大于0,从而实现递 ...