JSP入門
參考文獻:http://www.runoob.com/jsp/jsp-tutorial.html
eclipse執行JSP
-
先配置環境
-
建立一個動態專案
File-->New-->Dynamic Web Project
WebContent資料夾下新建一個
index.jsp
在<body>標籤內新增
<%
out.println("Hello World!");
%>
-
Window-->Web Browser
修改為1預設瀏覽器 -
run as
執行即可
JSP處理過程
- 瀏覽器傳送一個 HTTP 請求給伺服器。
- Web 伺服器識別出這是一個對 JSP 網頁的請求,並且將該請求傳遞給
JSP 引擎
。通過使用 URL或者.jsp
檔案來完成。 - JSP 引擎從磁碟中載入 JSP 檔案,然後將它們轉化為
Servlet
。這種轉化只是簡單地將所有模板文字改用println()
語句,並且將所有的JSP 元素
轉化成Java 程式碼
。 -
JSP 引擎
將Servlet
編譯成可執行類,並且將原始請求傳遞給Servlet 引擎
。 - Web 伺服器的某元件將會呼叫
Servlet 引擎
,然後載入並執行Servlet 類
。在執行過程中,Servlet 產生HTML 格式
的輸出並將其內嵌於HTTP response
中上交給 Web 伺服器。 - Web 伺服器以靜態 HTML 網頁的形式將
HTTP response
返回到瀏覽器中。 - 最終,Web 瀏覽器處理
HTTP response
中動態產生的HTML網頁,就好像在處理靜態網頁一樣。
JSP語法
- 指令碼程式:
<% 程式碼片段 %>
- JSP宣告:
<%! declaration; [ declaration; ]+ ... %>
(<%! int a, b, c; %> ) - JSP表示式:
<%= 表示式 %>
- JSP註釋:
<%-- 註釋 --%>
,`` - JSP指令:
<%@ directive attribute="value" %>
<%@ page ... %> #定義頁面的依賴屬性,比如指令碼語言、error頁面、快取需求
<%@ include ... %> #包含其他檔案
<%@ taglib ... %> #引入標籤庫的定義,可以是自定義標籤
- JSP行為:
<jsp:action_name attribute="value" />
jsp:include #用於在當前頁面中包含靜態或動態資源
jsp:useBean #尋找和初始化一個JavaBean元件
jsp:setProperty #設定 JavaBean元件的值
jsp:getProperty #將 JavaBean元件的值插入到 output中
jsp:forward #從一個JSP檔案向另一個檔案傳遞一個包含使用者請求的request物件
jsp:plugin #用於在生成的HTML頁面中包含Applet和JavaBean物件
jsp:element #動態建立一個XML元素
jsp:attribute #定義動態建立的XML元素的屬性
jsp:body #定義動態建立的XML元素的主體
jsp:text #用於封裝模板資料
- JSP隱含物件
request #HttpServletRequest類的例項
response #HttpServletResponse類的例項
out #PrintWriter類的例項,用於把結果輸出至網頁上
session #HttpSession類的例項
application #ServletContext類的例項,與應用上下文有關
config #ServletConfig類的例項
pageContext #PageContext類的例項,提供對JSP頁面所有物件以及名稱空間的訪問
page #類似於Java類中的this關鍵字
Exception #Exception類的物件,代表發生錯誤的JSP頁面中對應的異常物件
JSP例項
生命週期例項
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
private int initVar=0;
private int serviceVar=0;
private int destroyVar=0;
%>
<%!
public void jspInit(){
initVar++;
System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
}
public void jspDestroy(){
destroyVar++;
System.out.println("jspDestroy(): JSP被銷燬了"+destroyVar+"次");
}
%>
<%
serviceVar++;
System.out.println("_jspService(): JSP共響應了"+serviceVar+"次請求");
String content1="初始化次數 : "+initVar;
String content2="響應客戶請求次數 : "+serviceVar;
String content3="銷燬次數 : "+destroyVar;
%>
<h1>JSP 測試例項</h1>
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>
</body>
</html>
- 訪問
http://localhost:8080/test/Life.jsp
得到
jsp連線資料庫
查詢資料
- index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>
<body>
<sql:setDataSource var="snapshot" driver="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/jsp?serverTimezone=GMT%2B8"
user="root" password="root"/>
<sql:query dataSource="${snapshot}" var="result">
SELECT * from websites;
</sql:query>
<h1>JSP 資料庫例項</h1>
<table border="1" width="100%">
<tr>
<th>ID</th>
<th>站點名</th>
<th>站點地址</th>
</tr>
<c:forEach var="row" items="${result.rows}">
<tr>
<td><c:out value="${row.id}"/></td>
<td><c:out value="${row.name}"/></td>
<td><c:out value="${row.url}"/></td>
</tr>
</c:forEach>
</table>
</body>
</html>
PS:需匯入jar包:mysql-connector-java-8.0.11.jar
和jstl-1.2.jar
(放在專案的lib目錄
),一定要注意jar包的版本,不同的版本語法不一樣
插入資料
<sql:update dataSource="${snapshot}" var="result">
INSERT INTO websites (name,url,alexa,country) VALUES ('百度', 'http://www.baidu.com', 5093, 'CN');
</sql:update>
刪除資料
<sql:update dataSource="${snapshot}" var="count">
DELETE FROM websites WHERE Id = ?
<sql:param value="${11}" />
</sql:update>
修改資料
<c:set var="SiteId" value="3"/>
<sql:update dataSource="${snapshot}" var="count">
UPDATE websites SET name = '谷歌' WHERE Id = ?
<sql:param value="${SiteId}" />
</sql:update>
相關文章
- JSP_入門JS
- jsp從入門到精通JS
- JSP開發入門(三)----JSP與JavaBean (轉)JSJavaBean
- JSP開發入門(四)----JSP的內部物件 (轉)JS物件
- Tomcat 4/JSP入門指南(轉)TomcatJS
- JSP開發入門(五)----JSP其他相關資源 (轉)JS
- 新手入門經典:Jsp環境配置JS
- Web 基礎17 JSP之JSTL入門WebJS
- 20160327javaweb 之JSP入門JavaWebJS
- JSP開發入門(二)----JSP語法的基本原理 (轉)JS
- 20160329javaweb之JSP -cookie入門JavaWebJSCookie
- 20160329javaweb之JSP -session入門JavaWebJSSession
- JSP開發入門(一)----安裝好你的機器來使用JSP (轉)JS
- JSP檔案管理後門工具jsp-file-browserJS
- 入門入門入門 MySQL命名行MySql
- 高手指點:jsp程式設計師運用設計模式入門步驟JS程式設計師設計模式
- 如何入CTF的“門”?——所謂入門就是入門
- 何入CTF的“門”?——所謂入門就是入門
- scala 從入門到入門+
- makefile從入門到入門
- ACM入門之新手入門ACM
- java spring mvc jsp excel 匯入JavaSpringMVCJSExcel
- 【小入門】react極簡入門React
- gRPC(二)入門:Protobuf入門RPC
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- 新手入門,webpack入門詳細教程Web
- Android入門教程 | RecyclerView使用入門AndroidView
- linux新手入門――shell入門(轉)Linux
- jsp+servlet登入註冊頁面JSServlet
- jsp頁面表單不輸入卻能登入成功?JS
- MyBatis從入門到精通(一):MyBatis入門MyBatis
- SqlSugar ORM 入門到精通【一】入門篇SqlSugarORM
- Storm入門指南第二章 入門ORM
- VUE入門Vue
- MyBatis 入門MyBatis
- CSS 入門CSS
- JavaScript 入門JavaScript
- Nginx 入門Nginx