jsp&servlet知識點簡明扼要


JSP精華知識點總結

標簽: jspsessionservletstringmvcapplication 4126人閱讀 評論(6)收藏舉報 本文章已收錄於: 分類: 作者同類文章X

    目錄(?)[+]

    1. Servlet三個要素
    2. 四種會話跟蹤方式
    3. 內部跳轉和外部跳轉
    4. JspJava Server Page
    5. 頁面構成7種元素
    6. Jsp的執行過程
    7. 腳本
    8. 指令
    9. 隱式對象
    10. JavaBean
    11. Jsp中的標准動作
    12. 表達式語言
    13. 自定義標簽
    14. 標准標簽庫
    15. 過濾器
    16. 配置
    17. 幾個重要的接口
    18. 過濾器鏈
    19. MvC設計模式

    Servlet三個要素

    [java] view plain copyprint?
    1. 1.必須繼承自HttpServlet  
    2. 2.必須實現doGet()或者doPost()  
    3. 3.必須在web.xml中配置Servlet  
    4. <servlet>  
    5. <servlet-name></servlet-name>  
    6. <servlet-class></servlet-class>  
    7. </servlet>  
    8. <servlet-mapping>  
    9. <servlet-name></servlet-name>  
    10. <url-pattern></url-pattern>  
    11. </servelt-mapping>  
    12.   
    13. HttpServeltRrequest:請求對象  
    14. getParameter():獲得表單元素的值  
    15. getAttribute():獲得request范圍中的屬性值  
    16. setAttribute():設置reqeust范圍中的屬性值  
    17. setCharacterEncoding():設置字符編碼  
    18.   
    19. HttpSerletResponse:相應對象  
    20. sendRedirect():外部跳轉  
    21. getWriter():獲得輸出流對象  
    22. setContentType("text/html; charset=utf-8"):設置相應內容格式和編碼  

    四種會話跟蹤方式

    [java] view plain copyprint?
    1. 1.Session  
    2. HttpSession session = request.getSession();  
    3. session.setAttribute("name""zhangsan");  
    4. session.setAttribute("pwd""aaa");  
    5. String name = (String) session.getAttribute("name");  
    6.   
    7. 2.cookie:  
    8. //創建Cookie  
    9. Cookie cookie = new Cookie("name""zhangsan");  
    10. //設置Cookie的超時時間  
    11. cookie.setMaxAge(24 * 60 * 60 *60);  
    12. //把Cookie發送到客戶端  
    13. response.addCookie(cookie);  
    14.   
    15. //得到客戶端發送的Cookie  
    16. Cookie [] cookies = request.getCookies();  
    17. for(int i=0; i<cookies.length; i++) {  
    18.   Cookie temp = cookies[i];  
    19.   String key = temp.getName();  
    20.   String value = temp.getValue();  
    21. }  
    22.   
    23. 3.隱藏表單域  
    24. <input type="hidden" name="name" value="zhangsan" />  
    25. request.getParameter("name");  
    26.   
    27. 4.Url重寫  
    28. 問號傳參  
    29. LoginServlet?username=zhangsan&pwd=123  
    30. String name = request.getParameter("username");  
    31. String pwd =request.getPareameter("pwd");  

    內部跳轉和外部跳轉

    [java] view plain copyprint?
    1. 內部跳轉:  
    2. LoginServlet  
    3. request.getRequestDispatcher("index.jsp").forward(request, resposne);  
    4. 外部跳轉:  
    5. response.sendRedirect("index.jsp");  
    6. 內部跳轉是一次請求和一次響應  
    7. 外部跳轉是兩次請求和兩次響應  

    [java] view plain copyprint?
    1. ServletContext:Servlet上下文對象  
    2. 它是一個公共區域,可以被所有的客戶端共享  
    3. setAttribute():向公共區域里放入數據  
    4. getAttribute():從公共區域里取數據  
    5.   
    6. 三個標准范圍:request, session, ServletContext  
    7.   共同點:都有setAttribute(), getAttribute()  
    8.   區別:范圍不同,request < session < servletContext  
    9. 服務器上的五大對象  
    10.   request, response, servlet, session, servletContext  

    Jsp:Java Server Page

    頁面構成:7種元素

    [java] view plain copyprint?
    1. 1.靜態內容:html  
    2. 2.指令:page, include, taglib:  
    3. <%@ 指令名 屬性1="屬性值1" 屬性2="屬性值2" %>  
    4. 3.表達式:<%=表達式 %>  
    5. 4.Scriptlet<% Java代碼 %>  
    6. 5.聲明:<%! %>:變量和方法  
    7. 6.動作:<jsp:動作名 屬性="屬性值"></jsp:動作名>  
    8. 7.注釋:  
    9. 客戶端看不到的:<%-- --%>  
    10. 客戶端可以看到的:<!-- -->  

    Jsp的執行過程

    [java] view plain copyprint?
    1. 1.轉譯:Jsp--->Servlet  
    2. 2.編譯:Servlet---->.class  
    3. 3.執行:.class  
    4. 第一次訪問jsp的時候響應速度較慢,后面請求時響應速度快  

    腳本

    [java] view plain copyprint?
    1. 表達式:<%= %>  
    2. Scriptlet:<% %>  
    3. 聲明:<%! %>  

    指令

    [java] view plain copyprint?
    1. page:language, import, errorPage, isErrorpage  
    2. include:file  
    3. taglib:uri:指定標簽庫描述符的路徑 prefix:指定標簽的前綴  

    隱式對象

    [java] view plain copyprint?
    1. 分類:  
    2. 1.輸入和輸出對象:request(HttpServletRequest),   
    3.   response(HttpServletResponse),   
    4.   out(JspWriter), servlet中的out是PrintWriter  
    5. 2.作用域通信對象:pageContext, request,   
    6.   session(HttpSession),  
    7.   application(ServletContext)  
    8. 3.Servlet對象:page(this), config  
    9. 4.錯誤對象:exception  

    JavaBean

    [java] view plain copyprint?
    1. 一個標准的JavaBean有三個條件  
    2. 1.共有的類  
    3. 2.具有不帶參數的公共的構造方法  
    4. 3.具有set()和get()方法  
    5. 4.私有屬性  

    Jsp中的標准動作

    [java] view plain copyprint?
    1. 1.useBean:創建JavaBean的一個實例  
    2. <jsp:useBean id="stu" class="com.westaccp.test.Student" scope="page/session/application/request" />  
    3. 2.setProperty:給JavaBean的屬性賦值  
    4. <jsp:setProperty name="stu" property="stuName" value="zhangsan" />  
    5. <jsp:setProperty name="stu" property="stuName" param="txtName" />  
    6. value和param不能同時使用  
    7. 偷懶的方法:<jsp:setProperty name="stu" property="*" />  
    8. 這個時候需要注意的是,表單元素的名字必須和JavaBean的屬性值  
    9. 一模一樣  
    10. 3.getProperty:獲得JvaBean的屬性值  
    11. <jsp:getProperty name="stu" property="stuName" />  
    12. 4.forward:內部跳轉,相當於request.getRequestDispatcher().forward(request, response);  
    13. <jsp:forward page="index.jsp" />  
    14. 5.include:包含  
    15. <jsp:include page="header.jsp" flush="true" />  

    表達式語言

    [java] view plain copyprint?
    1. EL: Expression Language  
    2. 語法格式: ${表達式 }  
    3. 表示式 = 運算符 + 操作數  
    4. 運算符:跟Java比較,多了一個empty, 少了一個賦值運算符  
    5. ${empty ""} : true  
    6. ${empty null} :true  
    7. 操作數:  
    8. -->常量:布爾型(true/false), 整型, 浮點型, 字符串(可以用'', 還可以用""), Null  
    9. -->變量:  
    10.   1.指的是放在四個標准范圍里的屬性(page, request, session, application)  
    11.   2.在編准范圍內的搜索順序:page-->request--->session--->application  
    12.   3.怎么取得變量值:點運算符., 還以用[]  
    13.   <%   
    14.   request.setAttribute("name""lisi");  
    15.   %>  
    16.   ${requestScope.name}  
    17.   或者  
    18.   ${requestScope["name"]}  
    19. -->隱式對象  
    20.   1.pageContext:通過它可以訪問request, session, servletContext  
    21.   2.跟范圍由關的:pageScope, requestScope, sessionScope, applicationScope  
    22.   3.跟輸入有關的:param, paramValues  
    23.   4.其他的:header, cookie, headervalues,  
    24.   
    25. EL表達式適用的場合:  
    26. 1.可以在靜態文本中使用  
    27. 2.與自定義標簽結合使用  
    28. 3.和JavaBean結合使用  
    29. <jsp:userBean id="stu" class="com.westaccp.test.Student" scope="session" />  
    30. <jsp:setProperty name="stu" property="stuName" value="hello" />  
    31. ${stu.stuName}  

    自定義標簽

    [java] view plain copyprint?
    1. 1.標簽處理程序實現  
    2. --->實現:繼承自BodyTagSupport或者TagSupport  
    3.   一般會重寫doStartTag(), doEndTag(), doAfterBody()  
    4. --->描述:在標簽庫描述符文件中描述(.tld)  
    5.   <taglib>  
    6.   <tlib-version>1.0</tlib-version>  
    7.   <jsp-version>2.0</jsp-version>  
    8.   <short-name>simpletag</short-name>  
    9.      
    10.   <tag>  
    11.   <name>showbody</name>  
    12.   <tag-class>com.westaccp.test.ShowBodyTag</tag-class>  
    13.   <body-content>empty/jsp</body-content>  
    14.   <attribute>  
    15.   <name>color</name>  
    16.   </attribute>  
    17.   </tag>  
    18.   </taglib>  
    19. --->使用:<%@ taglib uri="WEB-INF/mytag.tld" prefix="my" %>  
    20.   <my:showbody />  
    21. 2.標簽文件  
    22. --->實現和描述  
    23.   在.tag文件中實現  
    24.   設置主體內容:<%@ body-content="empty/scriptless" %>  
    25.   設置屬性:<%@ attribute name="name" required="true" rtexprvalue="true" %>  
    26.   有主體內容:<jsp:doBody scope="session" var="theBody" />  
    27.   <%  
    28.   String body = (String) session.getAttribute("theBody");  
    29.   %>  
    30. --->使用  
    31.   WEB-INF/tags/sayhello.tag  
    32.   <%@ taglib tagdir="/WEB-INF/tags/" prefix="you" %>  
    33.   <you:sayhello />  
       

    標准標簽庫

    [java] view plain copyprint?
    1. 1.核心標簽庫  
    2. -->通用:  
    3.   set:<c:set var="" value="" scope="" />  
    4.   out:<c:out value="" />  
    5.   remove: <c:remove var="" scope="" />  
    6. -->條件:  
    7.   if:<c:if test="">.....</c:if>   
    8.   choose: <c:choose>  
    9.   <c:when test="">...</c:when>  
    10.   <c:when test="">...</c:when>  
    11.   <c:when test="">...</c:when>  
    12.   .....  
    13.   <c:otherwise>...</otherwise>    
    14.   </c:choose>  
    15. -->迭代:  
    16.   forEach:<forEach var="" items="" varStatus="" begin="" end="">  
    17.   foTokens:<foTodens var="" items="" delim=",;|"></foTodens>  
    18.   Java,C#;SQL|C  
    19. 2.I18N與格式化標簽庫  
    20. -->setLocale:設置本地區域  
    21. -->bundle:設置資源包  
    22. -->setBundle:設置資源包  
    23. -->message:輸出消息  
    24. 3.SQL標簽庫  
    25. -->setDataSource:設置數據源,用於獲得與數據庫的連接  
    26. -->query:執行查詢  
    27. -->update:執行增,刪,改  
    28. -->transaction:事務  
    29. -->param:參數  
    30. 4.XML標簽庫  

    過濾器

    [java] view plain copyprint?
    1. 生命周期:  
    2. 1.實例華:  
    3. 2.初始化:init()  
    4. 3.過濾:doFilter()  
    5. 4.銷毀:destroy()  
    6. 5.不可用  

    配置

    [java] view plain copyprint?
    1. <filter>  
    2. <filter-name></filter-name>  
    3. <filter-class></filter-class>  
    4. </filter>  
    5. <filter-mapping>  
    6. <filter-name></filter-name>  
    7. <url-pattern></url-pattern>  
    8. </filter-mapping>  

    幾個重要的接口

    [java] view plain copyprint?
    1. 1.Filter:init(), doFilter(), destroy()  
    2. 2.FilterChain: doFilter(request, response)  
    3. 3.FilterConfig:getFilterName(), getInitParameter(),  


    過濾器鏈

    --->1--->2--->3--->Servlet 請求

    <----1<---2<---3<--- 響應
       

    MvC設計模式

    [java] view plain copyprint?
    1. 1.ModelI:jsp+JavaBean  
    2. 2.ModelII:jsp+Servlet+JavaBean  
    3.   jsp---view  
    4.   servlet---control  
    5.   javabean---model  
    6.   
    7. MVC:  
    8. M--Model:模型:訪問后台數據庫  
    9. V--view:視圖:展示  
    10. C--control:控制器:控制程序流程  
    11.   
    12. ModelII和MVC的關系:  
    13. MVC是一種設計模式,ModelII它是MVC的一種具體的實現  



    7
    1
       

    我的同類文章

    http://blog.csdn.net

    注意!

    本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



     
    粤ICP备14056181号  © 2014-2020 ITdaan.com