Jsp如何轉換為Servlet
jsp的底層技術是servlet,他們的生命周期是相同的。服務器負責實例化jsp/servlet,激活init()方法,準備處理客戶端請求。可以通過編寫service()方法處理自己的事物邏輯,或者自己編寫doGet()、doPost()方法。服務器激活destroy()方法時,jsp/servlet被銷毀,啟動gc使用finalize()方法清理內存。
jsp會被轉換到適當的servlet代碼,即一個.java文件。許多應用服務器保存生成的.java文件,一旦他轉換到.java文件被編譯為字節碼.class。.class文件被支持輸出成html文檔返回給客戶端。
HttpServlet基本結構
編寫一個HttpServlet時,通常需要許該的方法:
Void init(ServletConfig sc) throws ServletException;
Void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
Void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
Void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;
html表單(form)擁有一種成為“method”屬性,用于定義如何想服務器發送數據。Get用于將數據追加入url的方式向服務器發送數據。Post用于將數據打包發送給服務器。
理解jsp應用模型
什么是應用模型:對jsp如何相互交互的一種描述。
1.簡單模型:單一的jsp構成。
2.N層模型:添加了類似JavaBean的服務端資源。
3.松散耦合模型:允許位于遠程系統的jsp做對等交互,或者擁有一種C/S關系。
通過html或者xml的http通訊,每個jsp應用都與其他jsp應用保存隔離。
4.包含請求模型:一個jsp可以負責請求和響應,但是包含其他jsp的輸出。通過include行為實現。
5.轉發請求模型:重定向,通過forward行為實現。
理解Jsp的布局
標簽可以是html標簽,也可以是jsp標簽。
jsp標簽可以有作用域 <jsp: useBean name="myClass" class="SimpleClass" scope="page" />
注釋:
1.html:<!-- -->
2.jsp: <%-- --%>
3.java: // or /**/
jsp解剖:
html代碼----負責頁面整個布局和外觀
jsp標簽----負責scriptlet、表達式、聲明、行為和指令
jsp隱式對象----例如:request對象、response對象、session對象、config對象
JavaBean----實現事物邏輯
理解jsp標簽元素
jsp有兩種形式:<%%>、<jsp:tagid/>
1.jsp聲明標簽用法:(定義變量)
<%!
declaration_statement(s)
%>
<jsp:declaration>
</jsp:declaration>
2.jsp表達式標簽用法:(引用變量)
<%=expression%>
<jsp: expression> expression </jsp: expression>
3.jsp scriptlet標簽用法:(編寫java代碼,差不多就是用標簽把java代碼包起來,標簽會截斷標簽)
<%
boolean isPasswordAnyGood(String password)
{
return false;
}
%>
<%
if(isPasswordAnyGood("123"))
{
%>
<H1>Welcome<H1/>
<%
}
else
{
%>
<H1>Press Login</H1>
<%
}
%>
4.jsp指令標簽:(預處理命令之類)
<%@ page import="com.macmilan.jspln24.*" %>
5.jsp行為標簽(允許jsp使用java創建對象,包含jsp,轉發jsp,java交互)
六種:useBean setProperty getProperty include forward plugin
Jsp內置對象用法:
內置對象提供來自瀏覽器的請求并且動態響應的功能:
request out response pageContext session application config page
JavaBean規范(這是個大議題,據說有兩種用法,一種可以直接無視,把javabean當不同java類在jsp中導入來用。一種是遵循javabean規范使用標簽來訪問)
7