淺說Servlet

如果一個web應用完全由jsp來完成,jsp的工作如下:

1、接收客戶端請求參數

2、進行業務調用

3、將業務數據進行傳遞到三個上下文對象中

4、進行頁面轉發

5、接收三個上下文對象中的數據

6、進行java對象的頁面渲染,成爲HTML。

注意其中紅色的部分,並不符合JSP做爲Page的工作角色,也與java的分工協作精神相背離,我們需要一個角色的出現,完成此部分工作。。。。。,它就是HttpServlet。


與JSP相似,它也是在第一次被訪問時,由Tomcat實例化(再次注意JSP不是網頁,是java的類),但不同的是Servlet需要以類的形式由開發者編寫並在發佈前編譯,同時其訪問的url,由開發者進行指定(jsp的url爲自然地址)。


類的編寫規則如下:

public class TestServlet extends HttpServlet {//必須繼承HttpServlet
//請求爲GET時執行
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//request和response就是jsp中的那兩個內置對象
HttpSession session=request.getSession();//這是session
ServletContext application=this.getServletContext();//這是application
/*
那些仍然可以使用的api
request.getParameter("xxx");
request.setAttribute("key", "value");
request.getAttribute("kkk");
session.setAttribute("mm", "value");
request.getRequestDispatcher("url").forward(request, response);
*/
}
//請求爲GET時執行
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}


該類的實例化工作及方法的調用,由tomcat根據客戶端的請求自動調用。但必須加以配置工作的參數,才能讓tomcat知道它的存在。配置的方式如下(WEB-INF/web.xml):


<!-- 指定TestServlet在 Tomcat中的名字爲“TestServlet” -->
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>ui.TestServlet</servlet-class>
</servlet>
<!-- 指定它的url爲"/test" -->
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>

經過以上的兩個步驟,就可以讓這個Servlet工作起來了!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章