<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<tit1e>This 1s my first page</title>
</head>
<body>
NOW: <%= new java.util.Date() %>
</body>
</html>
關係
區別
JSP 與 Servlet 區別
Tomcat會將xxx.jsp轉換成Java程式碼,進而編譯成.class檔案執行,最終將執行結果通過response響應給用戶端。
JSP實現原理
<html>
<head><title>Hello World</title></head>
<body>
Hello World!<br/>
<%
int a =10; //這是一個區域性變數
//jsp中,使用小指令碼嵌入java程式碼!
out.println(a);//列印內容在用戶端頁面
System.out.println(a);//列印內容在控制檯
%>
</body>
</html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>指令碼的使用</title>
</head>
<body>
<%!
int b = 20;//這是一個全域性變數
public void paly(){
System.out.println("paly...............");//在控制檯輸出
}
public int num(){
return 100;
}
%>
<%
out.println(b);
paly(); //呼叫 宣告指令碼中的無返回值方法
int num = num();////呼叫 宣告指令碼中的有返回值方法
out.println(num);
%>
<%=num()%>
</body>
</html>
注意:宣告指令碼宣告的變數是全域性變數。(宣告指令碼 只能定義變數與函數,不能做存取的操作)
宣告指令碼的內容必須在普通指令碼<%%>中呼叫。
如果宣告指令碼中的函數具有返回值,可以使用輸出指令碼呼叫<%= %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<tit1e>This 1s my first page</title>
</head>
<body>
NOW: <%= new java.util.Date() %>
</body>
</html>
語法 | 描述 |
---|---|
<%-- 註釋 --%> | JSP註釋,註釋內容不會被髮送至瀏覽器甚至不會被編譯 |
< !-- 註釋 --> | HTML註釋,通過瀏覽器檢視網頁原始碼時可以看見註釋內容 |
<%@ page language:"java" contentType="text/htnil; charset=UTF-8
pageEncoding="UTF-8"%>
<html>
<head>
<title>指令碼的使用</title>
</head>
<body>
<%-- JSP註釋在網頁中不會被顯示--%>
<!-- HTML註釋在網頁原始碼中會顯示-->
<p>
NOW: <%= new java.util.Date() %>
</p>
</body>
</html>
指令 | 描述 |
---|---|
<%@ page …%> | 定義頁面的依賴屬性,比如指令碼語言、error頁面、快取需求等等 |
<%@ include…%〉 | 包含其他檔案 |
<%@ taglib… %> | 引入標籤庫的定義,可以是自定義標籤 |
語法:<%@ page attributel=「value1」 attribute2=「value2」 %>
Page指令爲容器提供當前頁面的使用說明。一個JSP頁面可以包含多個page指令。
屬性 | 描述 |
---|---|
contentType | 指定當前JSP頁面的MIME型別和字元編碼格式 |
error Page | 指定當JSP頁面發生異常時需要轉向的錯誤處理頁面 |
isErrorPage | 指定當前頁面是否可以作爲另一個JSP頁面的錯誤處理頁面 |
import | 匯入要使用的Java類 |
language | 定義JSP頁面所用的指令碼語言,預設是Java |
session | 指定JSP頁面是否使用session。預設爲true立即建立,false爲使用時建立 |
pageEncoding | 指定JSP頁面的解碼格式 |
語法:<%@ include file =「被包含的JSP路徑」 %>
通過indude指令來包含其他檔案。
被包含的檔案可以是JSP檔案、HTML檔案或文字檔案。包含的檔案就好像是當前JSP檔案的一部分,會被同時編譯執行(靜態包含)。
<%@ include file="header.jsp"%>
...
...
<%@ include file="footer.jsp" %>
語法:<%@ taglib uri=「外部標籤庫路徑」 prefix=" 字首"%>
引入JSP的標準標籤庫
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
語法:<jsp:action_name attribute=「value」 />
動作標籤指的是JSP頁面在執行期間的命令
• < jsp:indude>動作元素會將外部檔案輸出結果包含在JSP中(動態包含)。
屬性 | 描述 |
---|---|
page | 包含在頁面中的相對URL地址。 |
< jsp :include page="index.jsp"/>
語法:<jsp:useBean id=「name」 class=「package.className」 />
jsp:useBean動作用來載入一個將在JSP頁面中使用的JavaBean。
<jsp:useBean id="user" class="com.wlw.entity.User"/>
屬性 | 描述 |
---|---|
name | name屬性是必需的。它表示要設定屬性的是哪個Bean。 |
property | property屬性是必需的。它表示要設定哪個屬性。 |
value | value屬性是可選的。該屬性用來指定Bean屬性的值。 |
<jsp:useBean id="user" class="com.wlw.entity.User" />
<jsp:setProperty name="user" property="name" value="gavin" />
屬性 | 描述 |
---|---|
name | 要檢索的Bean屬性名稱。Bean必須已定義。 |
property | 表示要提取Bean屬性的值 |
<jsp:useBean id="user" class="com.wlw.entity.User" />
<jsp:setProperty name="user" property="name" value="gavin" /> <jsp:getProperty name="user" property= "name1" />
語法:<jsp:forward page="相對 URL 地址」 />
jsp:forward動作把請求轉到另外的頁面。
屬性 | 描述 |
---|---|
page | page屬性包含的是一個相對URL。 |
<jsp:forward page="index.jsp" />
語法:<jsp:param name=" " value=""/〉
在轉發動作內部使用,做參數傳遞
<jsp :forward page="index. jsp">
<!-- http請求參數傳遞-->
<jsp:param name="sex" value= "nan" />
</jsp:forward>
物件名 | 型別 | 說明 |
---|---|---|
request | javax.servlet.http.HttpServletRequest | |
response | javax.servlet.http.HttpServletResponse | |
session | javax.servlet.http.HttpSession | 由 session=「true」開關 |
application | javax.servlet.ServletContext | |
config | javax.servlet.ServletConfig | |
exception | java.Iang.Throwable | 甶 isErrorPage=「false」開關 |
out | javax.servlet.jsp.JspWriter | javax.servlet.jsp.JspWriter |
pageContext | javax.servlet.jsp. PageContext | |
page | java.lang.Object 當前物件 this | 當前servlet實f列 |
<%
pageContext.setAttribute( name , value) ;//當前頁面作用域有效
%>
<%
pageContext .getRequest();//返回request內物件
pageContext .getResponse();//返回response內S物件
pageContext .getServletConfig();//返回config內建物件
pageContext .getException();//返回exception內建物件
pageContext .getPage();//返回page內建物件 (this)
pageContext .getOut();//返回out內建物件
pageContext .getServletContext();//返回 application 內建物件
pageContext .getSession();//返回session內建物件
%>
<%
pageContext.setAttribute("page","123");//當前JSP有效
pageContext.setAttribute("req","aaa",PageContext.REQUEST_SCOPE);//request作用域
pageContext.setAttribute("sess","bbb",PageContext.SESSION_SCOPE);//session作用域
pageContext.setAttribute("app","ccc",PageContext.APPLICATION_SCOPE); //application作用域
// String req = (String)request.getAttribute("req");
// String sess = (String)session.getAttribute("sess");
// String app = (String) application.getAttribute("app");
String page= (String)pageContext .getAttribute("page"); //當前頁面作用域
String req = (String) pageContext.getAttribute("req",PageContext.REQUEST_SCOPE);//request作用域
String sess = (String) pageContext.getAttribute("sess",PageContext.SESSION_SCOPE);//session作用域
String app = (String) pageContext.getAttribute("app",PageContext.APPLICATION_SCOPE);//application作用域
//pageContext、request、session、application
String result = (String)pageContext.findAttribute("app");
%>
<h1>request:<%=req%></h1>
<h1>session:<%=sess%></h1>
<h1>application:<%=app%></h1>
<h1>find:<%=result%></h1>
<%@ page import="java.util.List" %>
<%@ page import="com.wlw.emp.entity.Emp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>顯示所有員工</title>
</head>
<body>
<table border="1">
<tr>
<td>編號</td>
<td>姓名</td>
<td>工資</td>
<td>年齡</td>
<td colspan="2">操作</td>
</tr>
<%
List<Emp> emps = (List<Emp>)request.getAttribute("emps");
for (Emp emp:emps){
%>
<tr>
<td><%=emp.getId()%></td>
<td><%=emp.getName()%></td>
<td><%=emp.getSalary()%></td>
<td><%=emp.getAge()%></td>
<td><a href="<%= request.getContextPath()+"/manager/safe/removeEmpController?id="+emp.getId()%>">刪除</a></td>
<td><a href="<%= request.getContextPath()+"/manager/safe/showEmpController?id="+emp.getId()%>">修改</a></td>
</tr>
<%
}
%>
</table>
</body>
</html>
<%@ page import="com.wlw.emp.entity.Emp" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>修改員工資訊頁面</title>
</head>
<body>
<%
Emp emp = (Emp) request.getAttribute("emp");
%>
<!--<form action="/empproject/manager/safe/updateEmpController" method="post"> -->
<form action="<%=request.getContextPath()+"/manager/safe/updateEmpController" %>" method="post">
編號:<input type="text" name="id" value="<%=emp.getId()%>" readonly><br/>
姓名:<input type="text" name="name" value="<%=emp.getName()%>"><br/>
工資:<input type="text" name="salary" value="<%=emp.getSalary()%>"><br/>
年齡:<input type="text" name="age" value="<%=emp.getAge()%>"><br/>
<input type="submit" value="修改">
</form>
</body>
</html>