JSP——JSP原理、基本语法、三大指令

Java中的动态网页

1.Servlet动态网页 = Java代码(主) + html代码(辅): (在Servlet中编写html代码)
    *.Servlet擅长的事情:
        1.获取参数,将其封装成对象
        2.处理业务逻辑,处理请求
        3.控制页面跳转,跳转到某一个JSP中做页面的输出操作
      
2.JSP动态页面=Java代码(辅)+html(主):(在html中编写java代码)
Servlet不擅长做页面输出,JSP最擅长做页面输出
责任分离思想:各自做各自最擅长的事情.

JSP的原理

1.JSP(Java Server Page): Java的服务页面,Java动态网页.
    JSP本质就是Servlet
    服务器会解析请求中是否含有.jsp文件
    如果有,则将其编译为java文件
    再将java文件编译为class文件,供浏览器访问
    ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200429102318443-1390903877.png)

JSP的基本语法

1.JSP语法:
    1.JSP的注释:注释Java脚本代码
        <%--注释--%>
    2.JSP的Java脚本表达式:输出数据到页面上
        <%=代买%> (实际上就是调用输出流打印到页面上) out.print(表达式);
    3.JSP中的Java脚本片段:(实际开发中,应做到JSP中不能出现一行Java脚本片段):书写Java代码逻辑
        <%代码%>
        原理:其中的语句会原封不动的被服务器翻译到对应的Servlet的_jspService方法中。
    4.JSP的声明::定义类的成员
        <%!代码%> 
    ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200429103652205-495358708.png)

JSP三大指令

1.特点
    1.并不向客户端产生任何输出,
    2.指令在JSP整个文件范围内有效
    3.为翻译阶段提供了全局信息
2.指令语法格式: <%指令名称 属性名='属性值' 属性名='属性值'....%>
3.page指令:表示JSP的相关配置
    <%page contentType='text/html' charset='UTF-8' language='java'%>
        contentType:表示文件的MIME类型
        charset:表示文档的字符集
        language:表示JSP文档编写的脚本语言
        import:用于导入JSP脚本中使用到的类,等价于Java代码中的: import 类的全限定名;
        errorPage:如果服务器发生错误,会自动跳转到指定页面
        isErrorPage:判断页面是否为错误页面,
            true:是,则可以判断内置对象为Exception
            false:不是,默认值,不可以使用
        
4.include指令:
    1.静态包含:使用JSP的include指令
        <%@include file='被包含的文件'%>
        特点:
            在编译阶段就将多个JSP文件,合并成一个java类
    2.动态包含:使用JSP的动作指令    
        <%jsp: include='被包含的文件'%>
        特点:
            把每一个JSP编译成Servlet类,在编译过程中,动态的合并在一起,最终得到多个java类(动态包含会包含多个java类)

    3.动态包含和静态包含的选择:
        如果在包含的时候,需要传递数据,此时只能使用动态包含.(
        如果被包含的页面如果是静态页面,那么使用静态包含
        如果被包含的如果是动态页面,那么使用动态包含
    4.注意:在实际开始中通常将被包含的jsp页面的后缀名设置为jspf

5.taglib:导入标签资源(相当于导包)
格式:<%@taglib prefix='c' uri="http://java.sun.com/jsp/jstl/core"%>
prefix:前缀名

原文地址:https://www.cnblogs.com/linjing111/p/12800769.html