JSP語法之腳本、指令、註釋的綜合例子

JSP是我們的企業級動態網頁的基本技術,實質上來說JSP在HTML靜態語言中使用java代碼的技術。所以我們需要理解java的代碼在html語言中的使用語法:
1.語法:

1)<%java代碼%> ----- 內部的java代碼翻譯到service方法的內部
2)<%=java變量或表達式> ----- 會被翻譯成service方法內部out.print()
3)<%!java代碼%> ---- 會被翻譯成servlet的成員的內容

2.JSP的原理
注意:JSP的實質就是servlet:
jsp在第一次被訪問時會被Web容器翻譯成servlet,在執行
過程:
第一次訪問—->helloServlet.jsp—->helloServlet_jsp.java—->編譯運行
PS:被翻譯後的servlet在Tomcat的work目錄中可以找到

3.指令
jsp的指令是指導jsp翻譯和運行的命令,jsp包括三大指令:
1)page指令 — 屬性最多的指令(實際開發中page指令默認)
屬性最多的一個指令,根據不同的屬性,指導整個頁面特性
格式:<%@ page 屬性名1= “屬性值1” 屬性名2= “屬性值2” …%>
常用屬性如下:
language:jsp腳本中可以嵌入的語言種類
pageEncoding:當前jsp文件的本身編碼—內部可以包含contentType
contentType:response.setContentType(text/html;charset=UTF-8)
session:是否jsp在翻譯時自動創建session
import:導入java的包
errorPage:噹噹前頁面出錯後跳轉到哪個頁面
isErrorPage:當前頁面是一個處理錯誤的頁面

2)include指令
頁面包含(靜態包含)指令,可以將一個jsp頁面包含到另一個jsp頁面中
格式:<%@ include file=”被包含的文件地址”%>

3)taglib指令
在jsp頁面中引入標籤庫(jstl標籤庫、struts2標籤庫)
格式:<%@ taglib uri=”標籤庫地址” prefix=”前綴”%>

3.JSP的隱藏默認屬性:jsp被翻譯成servlet之後,service方法中有9個對象定義並初始化完畢,我們在jsp 腳本中可以直接使用這9個對象:

名稱 類型 描述
out javax.servlet.jsp.JspWriter 用於頁面輸出
request javax.servlet.http.HttpServletRequest 得到用戶請求信息,
response javax.servlet.http.HttpServletResponse 服務器向客戶端的迴應信息
config javax.servlet.ServletConfig 服務器配置,可以取得初始化參數
session javax.servlet.http.HttpSession 用來保存用戶的信息
application javax.servlet.ServletContext 所有用戶的共享信息
page java.lang.Object 指當前頁面轉換後的Servlet類的實例
pageContext javax.servlet.jsp.PageContext JSP的頁面容器
exception java.lang.Throwable 表示JSP頁面所發生的異常,在錯誤頁中才起作用

4.例子“:”
起始頁面:
這裏寫圖片描述

結果:
這裏寫圖片描述

例子代碼:
1.forward:

<%@ 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>作業提交</h2>
<form action="checkEmail.jsp" method="post">
請輸入郵箱地址:<input name="email" type = "text" size="15"> <input type="submit" value="提交">
</form>
</body>

2.checkEmail:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
    String email = request.getParameter("email");
    if(email.equals("")){
%>
<jsp:forward page="result.jsp">
    <jsp:param value="0" name="result"/>
</jsp:forward>
<%} else {%>
<jsp:forward page="result.jsp">
    <jsp:param value="1" name="result"/>
    <jsp:param value="<%=email %>" name="email"/>
</jsp:forward>
<%}%>
</body>
</html>

3.result

<%@ 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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>提交成功結果:</h2>
<%
    String result = request.getParameter("result");
    if (result.equals("0")){
%>
<p>結果訂閱失敗!</p>
<%}else{ %>
    <p>結果:<%=request.getParameter("email") %>作業提交成功</p>
    <% }%>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章