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包,這步不能忘記。
運行截圖: