JSP編程html
1 jsp 進入 Java Server Pagesjava
Servlet做用: 用java語言開發動態資源( java 流 )的技術.web
JSP 做用:用java語言開發動態(java 流)+靜態資源(html)的技術編程
2 JSP特徵瀏覽器
JSP 必須交個tomcat服務器解析tomcat
JSP 能夠寫java代碼和HTMl代碼服務器
3 JSP 執行的過程cookie
1session |
http://IP地址:端口號/項目名稱/jsp文件app |
2 |
tomcat中掃描到index.jsp文件 |
3 |
tomcat將index.jsp文件解析爲index_jsp.java 文件 |
4 |
tomcat的JDK將 index_jsp.java轉換字節碼 index_jsp.class文件 |
5 |
tomcat構造和初始化index_jsp對象,其實能夠理解爲servlet對象 |
6 |
tomcat調用index_jsp.class中的service方法 |
7 |
tomcat的service方式會經過輸出流返回HTML代碼到瀏覽器 |
8 |
瀏覽器接收HTML 而且解析成頁面效果顯示 |
4 JSP生命週期
1> 翻譯 jsp--->java文件
2 編譯 java-->class文件( servlet程序)
3 構造方法(第一次訪問)
4 _jspInit方法 (第一次訪問)
5 _jspService方法
6_jspDestory() 方法
JSP語法
1 JSP 模板
JSP 頁面中會自動添加HTML代碼,該JSP是模板形式
2 JSP表達式
語法:<%=變量或者表達式%>
做用:向瀏覽器輸出變量或者表示式經過計算後的結果
A 表達式的原理就是翻譯成out.prin()流輸出HTML/TEXT格式到頁面。
B 表達後面是不須要用分號結束的。
3 JSP 腳本
語法:<% java代碼 %>
做用:執行java代碼
4JSP聲明
語法:<% ! 變量或者方法 %>
做用:聲明變量和方法 後面JAVA程序能夠調用
5JSP註釋
語法:<%-- 註釋--%>
6 JSP 編譯指令 編譯前執行
語法:<%@ %>
1 include指令
<%@ include file="top.jsp" %>
在編譯成.class文件以前,鍵將top.jsp裏面的全部代碼拷貝到當前位置
2 page指令
語法 <%@ page %>
做用:告訴tomcat如何翻譯當前jsp文件
<%@ page language="java" --使用的語言 import="java.util.*" --須要導入的類 pageEncoding="UTF-8" --jsp編碼方式 contentType="text/html; charset=UTF-8" --tomcat將html流發送給瀏覽器的文件類型和編碼方式 errorPage="error.jsp" --當前jsp頁面解析錯誤的時候就會跳轉到error.jsp去 isErrorPage="false" --當前頁面是否是錯誤導向頁面 %> |
3 taglib指令
語法<%taglib %>
做用:標籤指令 用來解析標籤效果
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
7 動做指令 編譯後執行
<jsp:動做 />
<jsp:useBean> 用來實例化一個對象 對象名用id表示 class類路徑
<jsp:setProperty> 將一個對象中的屬性賦值
<jsp:getProperty> 取對象中屬性的值
<jsp:useBean id="s3" class="com.bw.bean.Student" ></jsp:useBean>
<jsp:setProperty property="name" name="s3" value="shunge" />
<jsp:getProperty property="name" name="s3"/>
<jsp:forward> 轉發到另外的頁面 直接跳轉到指定的頁面
<jsp:forward page="index.jsp"></jsp:forward>
<jsp:include> 包含編譯後另一個頁面的信息
<jsp:forward page="index.jsp">
<jsp:param name="username" value="god" />
<jsp:param name="pwd" value="123456" />
</jsp:forward>
<jsp:par
JSP 內置對象
九大內置對象
jsp |
servlet |
|
對象名 |
類型 |
使用範圍 |
request |
HttpServletRequest |
請求 瀏覽器--->服務器 |
response |
HttpServletResponse |
返回 服務器--->瀏覽器 |
config |
ServletConfig |
用來獲取web.xml中的信息 |
application |
ServletContext |
整個項目中的全局信息 |
exception |
Thrawable |
捕獲異常 try/catch throws |
page |
this |
當前對象,當前頁面對象 |
out |
JspWriter---->PrintWriter |
當前頁面輸出流 |
pageContext |
PageContext |
當前頁面的上下文,整個頁面 |
Session |
HttpSession |
會話 瀏覽器和服務器通信 |
1 out 對象 JspWriter 帶緩衝的PrinterWriter 就是輸出流
使用範圍是當前頁面,超出了當前頁無效
PrinterWriter 直接向瀏覽器輸出內容
JspWriter 向Jsp 緩衝區寫內容
‘out.print()
‘out.println();
2 pageContext 對象 當前頁面的上下文
使用範圍是當前頁面,超出了當前頁無效
存值 pageContext.setAttribute("username","zhangsan"); |
取值pageContext.getAttribute("username") |
3 page==this 對象 通常用在編譯指令中 <%@ page %>
4 request 請求 瀏覽器到服務器
當前請求存屬性值 |
request.setAttribute("name","godyang"); |
當前請求取值 |
request.getAttribute("name") |
請求傳遞參數 |
<a href="b.jsp?name=shunshun"> b.jsp</a> 或者 <form action="b.jsp" method=post > <input type=text name="name" value="shunshun" /> </form>
|
取得請求參數的值 |
request.getParameter(參數名); request.getParameterValues(參數名) |
5 reponse 返回 服務器返回到瀏覽器
獲取返回流 |
PrintWriter out = response.getWriter(); |
返回內容形式 |
response.setContentType("text/html"); |
返回的編碼 |
response.setCharacterEncoding("UTF-8"); |
頁面重定向 |
response.sendRedirect("index.jsp"); |
瀏覽器端保存cookie對象 |
response.addCookie() |
|
|
6 session 會話 瀏覽器和服務器通信 當瀏覽器關閉的時候會話結束
當瀏覽器第一訪問服務器的時候就會產生一個會話
保存會話信息 |
session.setAttribute("uname","abc"); |
獲取會話信息 |
session.getAttribute("uname"); |
7 application 應用 tomcat啓動的時候整個項目就是一個應用
當把值存入應用中,只有當tomcat關閉的時候才銷燬
保存應用信息 |
application.setAttribute("app","appInfo"); |
獲取應用信息 |
application.getAttribute("app"); |