jsp筆記1(基本原理與語法)

来源:https://www.cnblogs.com/eleven258/archive/2018/01/04/8195579.html
-Advertisement-
Play Games

web.xml文件配置管理的範圍: 1.配置jsp 2.配置和管理Servlet 3.配置和管理Listener 4.配置和管理Filter 5.配置標簽庫 6.配置jsp屬性 7.配置和管理JAAS授權認證 8.配置和管理資源引用 9.web應用首頁 10.Servlet3.0規範中,新增了met ...


web.xml文件配置管理的範圍:
  1.配置jsp
  2.配置和管理Servlet
  3.配置和管理Listener
  4.配置和管理Filter
  5.配置標簽庫
  6.配置jsp屬性
  7.配置和管理JAAS授權認證
  8.配置和管理資源引用
  9.web應用首頁
  10.Servlet3.0規範中,增了metadata-complete:true或false,當為true,不會載入註解配置的Web組件(如Servlet,Listener,Filter等)



JSP基本原理:

  1.jsp的本質是Servlet,web應用中的每個jsp頁面都會由Servlet容器編譯成對應的Servlet,然後Servlet使用輸出流來動態生成HTML頁面。        

  2.jsp頁面的內容組成:

    1.靜態部分:不受java程式控制的,比如標準的html標簽、靜態的頁面內容
    2.動態部分:受java程式控制的內容

  3.當一個jsp頁面被編譯成Servlet時,此時的文件存放在tomcat的work路徑下麵,會生成Servlet對應的兩個文件,一個java,一個class文件,在java文件中主要包含三個方法(去除方法名中的_jsp首碼,再將首字母小寫)
    1.init():初始化jsp/Servlet的方法
    2.service():對用戶請求生成響應的方法
    3.destroy():銷毀jsp/Servlet之前的方法

  4.jsp頁面工作原理:

  



jsp的4種基本語法:
  
1.jsp註釋:<%-- jsp註釋 --%>
對比html的註釋<!--html註釋-->,區別在於,html的註釋是可以通過查看源代碼查看到的,但jsp的註釋就看不到,這說明jsp註釋不會被髮送到客戶端。

  2.jsp聲明:<%! 聲明部分 %>,jsp頁面的聲明部分將轉為Servlet的成員變數或成員方法

  3.輸出jsp表達式:<%=表達式 %>,可用jsp的輸出表達式來替換out.println()來進行結果的輸出;

  4.jsp腳本:<% java代碼部分 %>,jsp腳本部分的代碼會轉換成Serlvet里service()方法的代碼,故在jsp腳本裡面可以聲明變數,對應著Servlet方法中的局部變數,但是jsp腳本中不能定義方法,因為java語法中不允許在方法里定義方法

  腳本示例:連接資料庫與執行資料庫操作

<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.ResultSet" %><%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2018/1/4
  Time: 16:46
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>資料庫連接與操作</title>
</head>
<body>
    <%
        //1.註冊資料庫驅動
        Class.forName("com.mysql.jdbc.Driver");
        //2.獲取資料庫連接
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456");
        //3.創建Statement
        Statement statement = connection.createStatement();
        //4.執行查詢
        ResultSet rs = statement.executeQuery("select * from user");

    %>
    <table width="300" border="1" bgcolor="#9999dd">
        <%
            while(rs.next()){
        %>
            <tr>
                <td><%=rs.getString(1)%></td>
                <td><%=rs.getString(2)%></td>
                <td><%=rs.getString(3)%></td>
            </tr>
        <%    }
        rs.close();
        statement.close();
        connection.close();
        %>
    </table>
</body>
</html>

  由於操作了資料庫,故還要導入mysql驅動的jar包,這步不能忘記。  

  運行截圖:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 寫在前面的話 2017年對我來說真是多災多難的一年,在這過去的一年裡發生的種種不幸,促使我下定決心一切要重新開始。在去年的夏天從公司裸辭後,來到了一個陌生的城市開啟了新的求職歷程,萬萬沒想到的是,求職之路竟然如此艱難,以至於現在想起來還心有餘悸。新的一年,我希望自己能有一個全新的面貌,那麼就從堅持分 ...
  • UserAction類代碼: 調用UserService類中crud各種方法 UserService類代碼: 調用UserDao介面 介面實現類UserDaoImplements 運行Apach伺服器,地址欄輸入action 控制台結果 Spring Hibernate Struts2等的 xml配 ...
  • 1.介面Comparable<T> API 此介面強行對實現它的每個類的對象進行整體排序。這種排序被稱為類的自然排序,類的compareTo()方法被稱為它的自然比較方法。 實現此介面的對象列表(和數組)可以通過 Collections.sort(和 Arrays.sort)進行自動排序。實現此介面 ...
  • django2 快速安裝指南 1. 安裝 作為一個 Python Web 框架,Django需要Python的支持。請參閱 "我可以在Django中使用哪些Python版本?" 瞭解詳情。Python包含一個名為 SQLite 輕量級的資料庫,因此你不需要設置資料庫。 請通過 "https://ww ...
  • 題目是:Java中怎麼在一行中輸入指定個數的數字,數字之間用空格隔開 編寫之後的結果是: 1 package test; 2 3 import java.util.Scanner; 4 5 public class ShuChuZhiDingGeShu { 6 public static void ...
  • python pip install linux 安裝 ...
  • 如果你需要在Linux中操作windows下的文件,那麼你可能會經常遇到文件編碼轉換的問題。Windows中預設的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下麵介紹一下,在Linux中如何查看文件的編碼及如何進行對文件進行編碼轉換。 查看文件編碼在Linux中查看文件編碼可以 ...
  • 一、前言 如果我們希望即使在RabbitMQ服務重啟的情況下,也不會丟失消息,我們可以將Queue與Message都設置為可持久化的(durable),這樣可以保證絕大部分情況下我們的RabbitMQ消息不會丟失。當然還是會有一些小概率事件會導致消息丟失。 二、隊列持久化 2.1 查看存在的隊列和消 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...