JSP学习笔记-JSP原理,基本语法和指令
2022/8/11 6:25:42
本文主要是介绍JSP学习笔记-JSP原理,基本语法和指令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
jsp
1. 什么是jsp
jsp:Java Server Pages 也就是java服务器端的页面,也和Servlet一样,用于动态web技术!
最大的特点:
- 写jsp页面就感觉在写HTML页面一样。
- 区别:
- HTML只给用户提供静态数据,并且HTML页面不能写java代码。
- jsp页面能写java代码,可以为用户提供动态的数据。
2. jsp的原理
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet。所以当访问一个jsp页面的时候,其实也是在访问一个Servlet。服务器执行jsp时,会把jsp翻译成成Servlet。
2.1 jsp是怎么样子执行的
- 首先代码层面没有任何的问题
- 服务器内部
- 当第一次执行jsp页面时启动Tomcat会在IDEA的Tomcat中产生一个work目录,work目录下的\Catalina\localhost\ROOT\org\apache\jsp 发现jsp页面被转换成了java程序。
- jsp最终也会转换成一个java类。
3. jsp本质上就是一个Servlet
//初始化 public void _jspInit() { } //销毁 public void _jspDestroy() { } //JSPService public void _jspService(.HttpServletRequest request,HttpServletResponse response)
- 内置的一些对象
final javax.servlet.jsp.PageContext pageContext; //页面上下文 javax.servlet.http.HttpSession session = null; //session final javax.servlet.ServletContext application; //applicationContext final javax.servlet.ServletConfig config; //config javax.servlet.jsp.JspWriter out = null; //out final java.lang.Object page = this; //page:当前 HttpServletRequest request //请求 HttpServletResponse response //响应
- 输出页面前增加的代码
response.setContentType("text/html"); //设置响应的页面类型 pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out;
以上的这些对象我们都可以在jsp中直接使用!
在JSP页面中;
只要是 JAVA代码就会原封不动的输出;
如果是HTML代码,就会被转换为:
out.write("<html>\r\n");
这样的格式,输出到前端!
4. jsp的基本语法
任何语言都有自己的语法,JAVA中有,。 JSP 作为java技术的一种应用,它拥有一些自己扩充的语法(了解,知道即可!),Java所有语法都支持!
4.1 注释
注释分为输出注释和隐藏注释
- 输出注释:输出注释是指会在客户端(浏览器)显示的注释。
- 语法:
- 隐藏注释:隐藏注释是指注释虽然写在JSP程序中,但是不会发送给客户。
- 语法:<%-- --%> <%-- 在页面源代码中,这个注释是看不见的 --%>
4.2 jsp声明
在JSP中,声明表示一段Java源代码,用来定义类的属性和方法,声明后的属性和方法可以在JSP文件的任意地方使用。
语法:<%! 声明 %>
<%! static { System.out.println("Loading Servlet!"); } private int globalVar = 0; public void kuang(){ System.out.println("进入了方法Kuang!"); } %>
JSP声明:会被编译到JSP生成Java的类中!其他的,就会被生成到_jspService方法中!
在JSP,嵌入Java代码即可!
4.3 java脚本片段
脚本程序是一段在客户端请求时先被服务器执行的Java代码,它可以产生输出,并把输出发送到客户的输出流,同时也可以是一段流程控制语句。
语法:<% 代码块 %>
<%--jsp脚本片段--%> //隐藏注释 <% int sum = 0; for (int i = 1; i <=100 ; i++) { sum+=i; } out.println("<h1>Sum="+sum+"</h1>"); %>
4.3.3脚本片段的在实现
<% int x = 10; out.println(x); %> <p>这是一个JSP文档</p> <% int y = 2; out.println(y); %> <hr> <%--在代码嵌入HTML元素--%> <% for (int i = 0; i < 5; i++) { %> <h1>Hello,World <%=i%> </h1> <% } %>
5.jsp指令
5.1 page指令
page指令作用于整个JSP页面,定义了许多与页面相关的属性,这些属性将被用于和JSP容器通信,描述了和页面相关的指示信息。在一个JSP页面中,page指令可以出现多次,但是该指令中的属性只能出现一次,重复的属性设置将覆盖先前的设置。
语法: <%@ page attr1="value1" attr2="value2" … %>
注:page 指令的作用对整个页面有效,与其书写的位置无关,但习惯把 page 指令写****在 JSP 页面的最前面。
5.1.2 page常用的属性
-
contentType属性
-
contentType
属性设置JSP页面和生成的响应页面的字符编码。 默认内容类型为:text/html
,它是HTML页面的标准内容类型。如果要从JSP输出为XML,请使用以下
page
指令<%@ page contentType = "text/xml" %>
-
errorPage属性
-
如果希望在当前页面运行时出现错误时,指定一个错误提示页面,那么
errorPage
属性告诉JSP引擎显示哪个页面。errorPage
属性的值是相对URL。当抛出所有未捕获的异常时,以下指令用于在页面出错时指定显示
MyErrorPage.jsp
的内容<%@ page errorPage = "MyErrorPage.jsp" %>
-
5.2 include指令
include指令用于在JSP页面中静态包含一个文件,该文件可以是JSP页面、HTML网页、文本文件或一段Java代码。使用了include指令的JSP页面在转换时,JSP容器会在其中插入所包含文件的文本或代码,同时解析这个文件中的JSP语句,从而方便地实现代码的重用,提高代码的使用效率。
i语法: <%@ include file="relativeURL" %>
<%@ include file="date.jsp" %> <h1> 阳光明媚 </h1>
include指令的主要功能会将两个页面合二为一 上面的代码就是会将date.jsp页面和 < h1>所在的页面合二为一。
5.3 include动作
该动作标签告诉 JSP 页面动态包含一个文件,即 JSP 页面运行时才将文件加入。与静态插入文件的 include 指令标签不同,当 JSP 引擎把 JSP 页面转译成 Java 文件时,不把JSP 页面中动作指令 include 所包含的文件与原 JSP 页面合并一个新的 JSP 页面,而是告诉Java 解释器,这个文件在 JSP 运行时(Java 文件的字节码文件被加载执行)才包含进来。如果包含的文件是普通的文本文件,就将文件的内容发送到客户端,由客户端负责显示;如果包含的文件是 jsp 文件,JSP 引擎就执行这个文件,然后将执行的结果发送到客户端,并由客户端负责显示这些结果。
<jsp:include page="/common/header.jsp"/> <h1>网页主体</h1> <jsp:include page="/common/footer.jsp"/>
page: 要包括的页面的相对URL。
jsp:include:拼接页面,本质还是三个 和include指令有一定的区别 前后是拼接,后者是将网页合并
这篇关于JSP学习笔记-JSP原理,基本语法和指令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Vue2面试真题详解与实战教程
- 2024-12-27Vue3面试真题详解与实战攻略
- 2024-12-27JS大厂面试真题解析与实战指南
- 2024-12-27JS 大厂面试真题详解与实战指南
- 2024-12-27React 大厂面试真题详解及应对策略
- 2024-12-27Vue2 大厂面试真题详解及实战演练
- 2024-12-27Vue3 大厂面试真题详解及实战指南
- 2024-12-27Vue3大厂面试真题详解与实战攻略
- 2024-12-26React入门教程:从零开始搭建你的第一个React应用
- 2024-12-25Vue2入门教程:轻松掌握前端开发基础