c标签判断true false jsp_北京尚学堂卓越班252天[第042天]——Jsp
1. JSP的核心運行原理
1) 客戶端瀏覽器發送請求到服務器,訪問a.jsp文件。
http://localhost:8989/應用名/a.jsp
2) 服務器端接收到請求后所做的處理
a) 創建request和response兩個對象
b) 根據請求中的應用名找到該應用下面的web.xml文件,發現該應用的配置文件中沒有關于a.jsp路徑相關的<url-pattern>的配置,所以會去找tomcat服務器中的全局web.xml的配置。我們發現全局的web.xml配置文件中有關于a.jsp的<url-pattern>的配置內容:
根據上面這段配置我們就找到了JspServlet,這個JspServlet就是jsp引擎。它會把jsp文件轉義成一個Java文件。我們可以查看tomcat安裝目錄下的路徑:
Tomcat安裝目錄/work/catalina/localhost/jsp/org/apache/jsp
這個目錄下有一個a_jsp.java和a_jsp.class兩個文件。這就是tomcat幫我們把jsp文件轉換成的Servlet類的源文件和.class文件。
我們平時在寫Servlet時,會繼承HttpServlet,然后覆蓋service方法,但是我們發現這個a_jsp.java文件中沒有service方法,但是有一個_jspService方法。其實,a_jsp類會繼承org.apache.jasper.runtime.HttpJspBase類,這個HttpJspBase類有繼承HttpServlet類,然后HttpJspBase類中的service方法,調用了_jspService(request, response)方法。到此,我們就知道了最后調用的還是a_jsp類中的_jspService方法。這也是整個a.jsp的核心執行流程。
1. page命令(page指令的作用:設置jsp在轉譯時的一些配置信息)
A) Page命令中的屬性學習
1) <%@page language=”java”%>
聲明jsp文件轉譯的語言,language=”java”的意思是轉譯為.java文件。
2) <%@page import=”java.util.*,java.lang.*”%>
上面的import屬性還可以分開寫:
<%@page import=”java.util.*”%>
<%@page import=”java.lang.*”%>
聲明轉譯時導入的java包文件。
3) <%@page pageEncoding=”UTF-8”%>
設置Jsp的數據保存的編碼格式
4) <%@page contentType=”text/html;charset=UTF-8”%>
設置數據的響應編碼格式
注意:tomca幫我們把jsp文件轉譯為.java文件,我們查看.java文件時,發現其中有這樣一行代碼:response.setContentType(“text/html”);
pageEncoding=”UTF-8”和contentType=”text/html;charset=UTF-8”中的任何一個都可以讓這行代碼變成這樣:
response.setContentType(“text/html;charset=UTF-8”);
5) <%@page session=”false”%>
設置session的狀態,也就是轉譯成的.java文件中session是否開啟。默認為true,是開啟的,設置為false,session就是關閉的。
默認情況下是session=”true”,當session屬性取默認值的時候,jsp文件對應的.java文件中會有這樣一行代碼:
javax.servlet.http.HttpSession session = null;
session = pageContext.getSession();
當我們設置為session=”false”后,.java文件中就沒有了關于session的那兩行代碼。
6) <%@page isErrorPage=”true”%>
默認為false,如果設置為true,就等于開啟異常對象的使用
7) <%@page errorPage=”error.jsp”%>
設置當本jsp頁面出現異常或錯誤時,跳轉到的指定頁面。
B) 局部代碼塊、全局代碼塊、java腳本段(表達式)
1) 局部代碼塊<% Java代碼 %>
局部代碼塊的特點:使用局部代碼塊聲明的java代碼會原樣轉譯到_jspService方法中,也就是局部代碼。
2) 全局代碼塊<%! java代碼 %>
注意:全局代碼塊中聲明的內容,到了jsp文件轉譯為.java文件時,會放在.java文件中的成員變量的位置,如上圖中,我們就是聲明了一個成員變量和一個成員方法,如果我們想調用test方法,應該在哪里調用呢?
我們應該在局部代碼塊中對test方法進行調用。<% test(); %>
1) Java腳本段(表達式)
聲明方式:<%= 變量或調用方法 %>
作用:將java代碼的運算結果數據或者其他數據響應給瀏覽器。一般是方法的調用或者變量。如果是調用方法,則把方法的返回值響應給瀏覽器。
注意:java腳本段中不能加分號”;”。
A) Jsp的注釋
HTML注釋:<!-- -->會被轉譯也會被響應給瀏覽器,但是瀏覽器不會執行。
CSS注釋:/* */和HTML注釋一樣,會被轉譯也會被響應給瀏覽器,但是瀏覽器不會執行。
JavaScript注釋://和/* */,同HTMl注釋一樣,會被轉譯也會被響應給瀏覽器,但是瀏覽器不會執行。
Java注釋:會被轉譯,但是不會被執行。
Jsp注釋:<%-- jsp注釋 --%> 注釋內容不會被轉譯,jsp的注釋是最高級別的注釋。
總結
以上是生活随笔為你收集整理的c标签判断true false jsp_北京尚学堂卓越班252天[第042天]——Jsp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java8新特性_Java8新特性_la
- 下一篇: 中山大学计算机类专业分数线,中山大学计算