Servlet簡介
Servlet是服務器小應用程序
用來完成B/S架構下,客戶端請求的響應處理
平臺獨立,性能優良,能以線程方式運行
Servlet API為Servlet提供了統一的編程接口
Servlet一般在容器中運行
常見的Servlet容器
Tomcat
Jetty / Resin
//創建servlet
1.XXX extends HttpServlet
2.Override doGet doPost
3.copy to WEB-INF/classes
4.web.xml
(1)<servlet><servlet-name><servlet-class></servlet>
(2)<servlet-mapping><url-pattern> /
5.restart server
用于HTTP的Servlet編程都通過繼承 javax.servlet.http.HttpServlet
//jsp---Java Server Pages
擁有servlet的特性與優點(本身就是一個servlet)
直接在HTML中內嵌JSP代碼
基本語法:
--------------<%! %>成員變量 成員方法
說明:在此聲明的變量、方法都會被保留成唯一的一份,直到JSP程序停止執行
例:
<%!
int i;
public void setName(){… …}
%>
--------------<%程序代碼區%>
可以放入任何的Java程序代碼
例:
<%
這里聲明的變量相當于是Service里面的局部變量
for (int i=0;i<10,i++)
{
… …
}
%>
------------<%=… …%>----------------PRintln()
=后面必須是字符串變量或者可以被轉換成字符串的表達式
不需要以;結束
只有一行就是輸出
例:
<%=“hello world”%>
<%=i+1%>
<%=request.getParameter(“name”)%>
----------<%@---- %>
里面是導包或編輯設置
<jsp:forward>與response.sendRedirect的區別
--------------------<jsp:forward>-----------------
使用同一個request的請求及其數據,是邏輯上的相同
forward后的語句不會繼續發送給客戶端
速度快
服務器內部轉換,
可以傳參數
-----------------response.sendRedirect-------------
是不同的request
send后的語句會繼續執行,除非return
速度慢
需要到客戶端的往返,可以轉到任何頁面
可以傳參數,直接寫在url后面
Bean實體類的構成
(1)無參構造
(2)全參構造
(3)getter()和setter()
(4)toString()
----------------request--------------------
request內置對象表示的是調用JSP頁面的請求。通常,request對象是javax.servlet.http.HttpServletRequest接口的一個實例
典型應用:通過request.getParameter(“paramName”)可以獲得Form提交過來的參數值
可以用此對象取得請求的Header、信息(如瀏覽器版本、語言和編碼等)、請求的方式(get/post)、請求的參數名稱、參數值、客戶端的主機名稱等
常用方法:
getMethod():返回客戶端向服務器端傳送數據的方法
getParameter(String paramName):返回客戶端向服務器端傳送的參數值,該參數由paramName指定
getParameterNames():獲得客戶端傳送給服務器端的所有參數的名字,結果是一個枚舉類型數據(Enumeration)
---------------response-------------------
表示的是返回給客戶端的響應
是javax.servlethttp.HttpServletResponse接口的一個實例
servlet和jsp的通信
從JSP調用Servlet可用<jsp:forward>請求信息自動傳遞到Servlet
或者通過sendRedirect
從Servlet調用JSP使用
RequestDispatcher接口的forward(req, res)方法
請求信息需要顯式傳遞(在req、res參數中)
或者通過sendRedirect
新聞熱點
疑難解答