當前位置:
首頁 > 知識 > JSP和Servlet初級知識點總結

JSP和Servlet初級知識點總結

一、JSP九大內置對象

輸出輸入對象

1.out:用於向客戶端、瀏覽器輸出數據。

2.request(HttpServletRequest類):用於接收客戶端請求信息。

3.response(HttpServletResponse類):封裝了伺服器的響應,用於響應客戶端。

通信控制對象

4.session(HttpSession類):保存會話信息。

5.application:相當於一個全局表量,實現不同用戶的信息共享。

6.pageContext:提供對其他八個對象的訪問。

servlet對象

7.page(Object類):代表JSP本身,相當於java中的this引用變數。

8.conf(ServletConfig類):封裝應用請求的配置信息。

異常對象

9.exception:封裝JSP執行過程中發生的異常和錯誤信息。

二、Servlet生命周期

當有一個servlet請求被Web伺服器接收到,伺服器先調用init()方法進行初始化。知道servlet對象被銷毀,init()方法只會被調用一次。

此後每次用戶請求時,Web伺服器都會調用service()方法來處理請求。service會檢查用戶請求方式,選擇調用doGet或者doPost等方法。

調用destroy()銷毀servlet對象,destroy也只調用一次,最後JVM垃圾回收器進行回收。

三、JSP和servlet的區別與聯繫

JSP(Java Server Pages):java伺服器頁面,其根本是簡化servlet的設計。

servlet:是java編寫的服務端程序,主要功能是互動式地瀏覽和修改數據,生成動態Web內容。

JSP代碼執行前,會被服務端的JSP引擎轉換為.java文件,然後由JSP引擎調用Java編譯器,將其.java文件編譯為.class文件,然後由JVM執行。

servlet本身是.java文件,編譯後由JVM執行。

JSP更擅長頁面的表示,其中也可以嵌入java代碼。而servlet主要是java代碼,負責業務邏輯控制。

四、doGet和doPost的區別

form表單中默認是get方式,超鏈接中也是get方式。

1、get提交的表單數據會存放在URL地址後,可以直接看到,安全性低。post提交的表單數據存放在http協議消息體中,無法直接看到,安全性高。

2、get提交方式數據量長度有限,一般不超過2kb,post提交方式沒有大小限制,更適合大規模的數據傳輸。

3、get方式在用戶刷新時不會有任何提示,post會彈出提示框,問用戶是否重新提交。

五、JSP四個作用域

1、page:在當前的JSP頁面有效,跳轉後無效。

2、request:從一個請求被處理到返迴響應整個過程有效。數據被轉發到其他jsp頁面依然有效。

3、session:在當前會話有效,也就是說從一個瀏覽器開啟到關閉都有效。

4、application:相當於全局變數,只要不被手動刪除,或關閉web伺服器,在任何瀏覽器中都有效。

六、轉發和重定向的區別

1、轉發是在服務端行為,客戶端並不知道。而重定向是客戶端行為。

2、轉發的速度快,重定向慢。

3、轉發是同一個請求,而重定向是兩個不同的請求。

4、轉發的URL地址欄不會變,重定向會變成請求的新地址。

5、轉發後request域中的信息可訪問到,重定向不能。

6、轉發可以訪問WEB-INF文件夾,重定向不能。

注釋:轉發和重定向原理。

轉發過程:客戶首先發送一個請求到服務端,服務端匹配servlet,servlet執行時調用getRequestDispacher()方法,把請求直接轉發給指定的test.jsp,整個流程都是在服務端進行的,也都是在同一個請求完成的,servlet和test.jsp共享同一個request。

重定向過程:客戶端發送第一個請求,服務端匹配servlet,servlet調用sendRedirect()方法,這個方法是response的方法,服務端返回這個響應,告訴客戶端你需要再發送一個請求去訪問test.jsp。客戶端接收到服務端的這個響應後,就立刻發出第二個新請求,去請求test.jsp。兩個請求互不干擾,相互獨立,所有之前的request域里的值,重定向的test.jsp都訪問不到。

七、session的失效時間設置

1、在servlet中用session.setMaxInactiveInterval(int interval)方法設置失效時間,以秒為單位的。

2、在web.xml里設置:(已分鐘為單位)

<session-config>

<session-timeout>30</session-timeout>

</session-config>

3、tomcat的conf文件夾下的web.xml里設置,同上。(已分鐘為單位)

八、亂碼問題及解決

1、JSP頁面中,設置<%@ page language="java" contentType="text/html;

charset=UTF-8" pageEncoding="UTF-8"%>

2、servlet中,request.seCharacterEncoding(「utf-8」);

3、把獲取到的字元串,轉成byte數組,在轉成」utf-8」字符集。例如:

String s = request.getgetParameter("name");

byte[] b = s.getbytes(「iso-8859-1」);

String s2 = new String(b,」utf-8」);

JSP和Servlet初級知識點總結

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

使用RedisTemplate(JDK序列化策略)緩存實體類
Python 異常處理

TAG:程序員小新人學習 |