若是一個web應用徹底由jsp來完成,jsp的工做以下:java
一、接收客戶端請求參數web
二、進行業務調用api
三、將業務數據進行傳遞到三個上下文對象中tomcat
四、進行頁面轉發session
五、接收三個上下文對象中的數據app
六、進行java對象的頁面渲染,成爲HTML。jsp
注意其中紅色的部分,並不符合JSP作爲Page的工做角色,也與java的分工協做精神相背離,咱們須要一個角色的出現,完成此部分工做。。。。。,它就是HttpServlet。ide
與JSP類似,它也是在第一次被訪問時,由Tomcat實例化(再次注意JSP不是網頁,是java的類),但不一樣的是Servlet須要以類的形式由開發者編寫並在發佈前編譯,同時其訪問的url,由開發者進行指定(jsp的url爲天然地址)。ui
類的編寫規則以下:this
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工做起來了!