servlet知識點摘記

IDEA創建一個servlet項目:https://blog.csdn.net/qq_33360009/article/details/105161866

github:https://github.com/xaioheilj/HelloServlet.git

流程:Servlet實例化-》初始化init(ServletConfig) 方法-》實現service方法執行服務 -》銷燬destroy()-》回收

中文問題:

1.<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

2.request.setCharacterEncoding("UTF-8");  

3.response.setContentType("text/html; charset=UTF-8");

在Servlet中進行服務端跳轉的方式:

request.getRequestDispatcher("success.html").forward(request, response);

在Servlet中進行客戶端跳轉的方式:

response.sendRedirect("fail.html");

 

配置servlet自動化:

在web.xml中,配置Servlet的<servlet></servlet>,增加一句

<load-on-startup>10</load-on-startup>

10表示啓動順序
如果有多個Servlet都配置了自動啓動,數字越小,啓動的優先級越高 ,取值範圍是1-99,即表明該Servlet會隨着Tomcat的啓動而初始化。(之前只有訪問頁面的時候才能進行servlet初始化)

request常用方法:

request.getRequestURL(): 瀏覽器發出請求時的完整URL,包括協議 主機名 端口(如果有)"
request.getRequestURI(): 瀏覽器發出請求的資源名部分,去掉了協議和主機名"
request.getQueryString(): 請求行中的參數部分,只能顯示以get方式發出的參數,post方式的看不到
request.getRemoteAddr(): 瀏覽器所處於的客戶機的IP地址
request.getRemoteHost(): 瀏覽器所處於的客戶機的主機名
request.getRemotePort(): 瀏覽器所處於的客戶機使用的網絡端口
request.getLocalAddr(): 服務器的IP地址
request.getLocalName(): 服務器的主機名
request.getMethod(): 得到客戶機請求方式一般是GET或者POST

request.getParameter(): 是常見的方法,用於獲取單值的參數
request.getParameterValues(): 用於獲取具有多值的參數,比如註冊時候提交的 "hobits",可以是多選的。
request.getParameterMap(): 用於遍歷所有的參數,並返回Map類型。 

request.getHeader() 獲取瀏覽器傳遞過來的頭信息。
比如getHeader("user-agent") 可以獲取瀏覽器的基本資料,這樣就能判斷是firefox、IE、chrome、或者是safari瀏覽器
request.getHeaderNames() 獲取瀏覽器所有的頭信息名稱,根據頭信息名稱就能遍歷出所有的頭信息

request.setAttribute和request.getAttribute可以用來在進行服務端跳轉的時候,在不同的Servlet之間進行數據共享

response常用方法:

response.getWriter(); 獲取一個PrintWriter 對象,可以使用println(),append(),write(),format()等等方法設置返回給瀏覽器的html內容 

response.setContentType("text/html");
"text/html" 是即格式 ,在request獲取頭信息 中對應的request.getHeader("accept").

 

設置響應編碼有兩種方式

1. response.setContentType("text/html; charset=UTF-8");//不僅發送到瀏覽器的內容會使用UTF-8編碼,而且還通知瀏覽器使用UTF-8編碼方式進行顯示

2. response.setCharacterEncoding("UTF-8");//僅僅是發送的瀏覽器的內容是UTF-8編碼的

 

客戶端有兩種跳轉
302 表示臨時跳轉:response.sendRedirect(".html");
301 表示永久性跳轉:

response.setStatus(301);

response.setHeader("Location", "fail.html");

 

設置不使用緩存

用緩存可以加快頁面的加載,降低服務端的負擔。但是也可能看到過時的信息,可以通過如下手段通知瀏覽器不要使用緩存
response.setDateHeader("Expires",0 );

response.setHeader("Cache-Control","no-cache");

response.setHeader("pragma","no-cache");

1.利用DiskFileItemFactory實現文件上傳:https://blog.csdn.net/u014785687/article/details/73863964 

     注意:如果創建的不是Maven類型的項目是沒有pom.xml文件的,需要將commons-io-1.4.jar和commons-fileupload-         1.2.2.jar兩個jar包額外添加到web->WEB-INF->lib目錄下

servlet實現CRUD:https://how2j.cn/k/servlet/servlet-query/563.html?p=68555

   使用IDEA創建的工程代碼 Github:https://github.com/xaioheilj/ServeletCRUDandJSON.git 

 

 

 

 

 

 

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