servlet:
缺點:
顯示html的時候,麻煩。out.println("<html>");
優點:
servlet就是一個java類。編寫容器。
調試容易。ide。
jsp
jsp=html+java代碼
java server pages(java伺服器端頁面)
1.jsp和servlet差別:
jsp和servlet是本質相同的技術。容器負責編譯jsp-----servlet
表現形式。
servlet---java類
jsp-------文本(靜态資源)
1.jsp以源檔案部署到容器中。(servlet需要編譯成class檔案後,部署到容器中)
2.jsp部署到容器的根目錄下,和靜态資源位于相同的目錄。(web-inf/classes)
3.容器編譯jsp的源檔案到servlet class類:有第一個請求通路jsp的時候,容器編譯。如果部署到容器中的jsp源檔案被修改了,容器會重新的編譯jsp到servlet
4.jsp---servlet,類名:檔案名_jsp.java
5.jsp中的html的代碼後被jsp引擎放入到servlet的out.write()函數中。
在jsp中的嵌入java代碼必須放在指定的标記中。
1.jsp的三種原始标簽
2.jsp的指令标簽
3.jsp的動作标簽
4.在jsp2.0規範後,提出el表達式
5.自動以的标簽(jstl标簽庫,struts标簽庫,分頁标簽庫)
jsp中原始的三種标簽
<%! %>------聲明标簽,聲明變量和函數(聲明的變量是成員變量,函數是和_jspservice并列的函數體)
<% %>------腳本标簽 編譯在_jspservice函數體的内部
<%=java表達式 %>------指派标簽 out.println(add(3,4));
練習1:
以20%機率顯示你中獎了!~
練習2:
把背景顔色根據輸入的值進行改變用jsp來實作。
jsp的指令标簽:
<%@ 标簽名 屬性=值 屬性=值。、。。。 %>
page include
<%@ page language="java"%>
language="java":
import="java.util.*,com.bluedot.user,"
<%@ page import="java.util.*"%>
<%@ page import="com.bluedot.user"%>
pageencoding="utf-8"----告訴jsp引擎,在解析我們的jsp的檔案的時候用什麼編碼方式
----
contenttype="text/html; charset=utf-8"
response.setcontenttype("text/html; charset=utf-8");
練習3:
把給用戶端産生excel表格的例子改成用jsp來實作。(字元型響應)
<%@ page errorpage="error.jsp"%>
jsp中的内置對象(暗對象):9個
jsp servlet中的類型
request-------------------------httpservletrequest
response------------------------httpservletresponse
application---------------------servletcontext
session-------------------------httpsession(受指令标簽page的session屬性控制,預設可以使用)
config--------------------------servletconfig
out-----------------------------printwriter(jspwriter)
exception-----------------------exception(有條件的出現,當page指令的标簽的iserrorpage為true的時候)
page
pagecontext