IDEA創建一個servlet項目:https://blog.csdn.net/qq_33360009/article/details/105161866
流程: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或者POSTrequest.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