中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

h5自適應網(wǎng)站源碼seo的重要性

h5自適應網(wǎng)站源碼,seo的重要性,網(wǎng)頁制作基礎(chǔ)教程書籍,福州網(wǎng)站建設(shè)方案書系列文章目錄 1、JavaWeb基礎(chǔ)專項復習1——XML文件-CSDN博客 2、JavaWeb基礎(chǔ)專項復習2——JSP文件-CSDN博客 3、JavaWeb基礎(chǔ)專項復習2——Servlet相關(guān)知識-CSDN博客 4、JavaWeb基礎(chǔ)專項復習4——會話對象Session and Cookie-CSDN博客 文章目錄 系列文章目錄文章目錄1、Tom…

系列文章目錄

1、JavaWeb基礎(chǔ)專項復習1——XML文件-CSDN博客

2、JavaWeb基礎(chǔ)專項復習2——JSP文件-CSDN博客

3、JavaWeb基礎(chǔ)專項復習2——Servlet相關(guān)知識-CSDN博客

4、JavaWeb基礎(chǔ)專項復習4——會話對象Session and Cookie-CSDN博客


文章目錄

  • 系列文章目錄
  • 文章目錄
  • 1、Tomcat 請求響應機制
  • 2、HttpServletRequest 功能
  • 2.1 獲取請求頭數(shù)據(jù)
  • 2.2 獲取請求相關(guān)其他方法
  • 3、HttpServletRequest獲取參數(shù)
  • 3.1 傳遞參數(shù)方式
  • 3.2 獲取參數(shù)方法
  • 3.3 中文亂碼處理
  • 3.3.1 POST 請求:
  • 3.3.2 GET 請求:
  • 3.6 HttpServletRequest請求轉(zhuǎn)發(fā)
  • 3.7 request 作用域
  • 4、HttpServletResponse 功能
  • 4.1 功能介紹
  • 4.2 設(shè)置狀態(tài)碼和其他方法
  • 4.3?設(shè)置響應頭信息
  • 4.4 中文亂碼問題
  • 4.5 重定向

1、Tomcat 請求響應機制

Web 服務器接收到客戶端的 HTTP 請求后,會為每次請求創(chuàng)建requestresponse對象,分別用于獲取客戶端數(shù)據(jù)和向客戶端輸出數(shù)據(jù)。

2、HttpServletRequest 功能

HttpServletRequest在JavaWeb中非常重要的一個類。它是Servlet的service()方法的參數(shù)之一。所以必須要掌握它

request的功能可以分為以下幾種:

  • 封裝了請求頭數(shù)據(jù);
  • 封裝了請求正文數(shù)據(jù),如果是GET請求,那么就沒有正文;
  • request是一個域?qū)ο?/strong>,可以把它當成Map來添加獲取數(shù)據(jù);
  • 做請求的轉(zhuǎn)發(fā)(一次請求一次數(shù)據(jù))·(重定向(兩次請求,兩次數(shù)據(jù)))

2.1 獲取請求頭數(shù)據(jù)

通過request.getHeader("請求頭名稱")獲取指定請求頭數(shù)據(jù)

request.getHeaderNames()可獲取所有請求頭名稱。

response.setContentType("text/html;charset=utf-8");
Enumeration names = request.getHeaderNames();
while(names.hasMoreElements()) {String name = (String)names.nextElement();String value = request.getHeader(name);System.out.println(name + ": " + value);response.getWriter().println(name + ": " + value + "<br/>");
}

2.2 獲取請求相關(guān)其他方法

涵蓋獲取請求正文字節(jié)數(shù)、請求類型、請求方法、客戶端 IP 地址等眾多方法,還能操作請求 URL 各部分信息。

  • int getContentLength():獲取請求正文的字節(jié)數(shù),GET請求沒有正文,沒有正文返回-1;
  • String getContentType()獲取請求類型,如果請求是GET,那么這個方法返回null;如果是POST請求,那么默認為application/x-www-form-urlencoded(理解為字符串類型),其它類型以后再學;
  • String getMethod():返回請求方法,例如:GET post delete put?
  • Locale getLocale():返回當前客戶端瀏覽器支持的Locale。java.util.Locale表示國家和言語,這個東西在國際化中很有用;
  • String getCharacterEncoding()獲取請求編碼,如果沒有setCharacterEncoding(),那么返回null。表示使用ISO-8859-1編碼;GBK UTF-8
  • void setCharacterEncoding(String code):設(shè)置請求編碼,只對正文有效!注意,對于GET而言,沒有正文!!!所以此方法只能對POST請求中的參數(shù)有效!
  • http://localhost:8080/hello/oneServlet?name=zhangSan
  • String getContextPath()返回上下文路徑,例如:/項目名稱
  • String getQueryString():返回請求URL中的參數(shù),例如:name=zhangSan
  • String getRequestURI():返回請求URI路徑,例如:/hello/oneServlet
  • StringBuffer getRequestURL():返回請求URL路徑,例如:http://localhost/hello/oneServlet,即返回除了參數(shù)以外的路徑信息;
  • String getServletPath():返回Servlet路徑,例如:/oneServlet
  • String getRemoteAddr():返回當前客戶端的IP地址;
  • String getRemoteHost():返回當前客戶端的主機名,但這個方法的實現(xiàn)還是獲取IP地址;
  • int getRemotePort():返回客戶端的端口號,每次請求都會變;
  • String getSchema():返回請求協(xié)議,例如:http;
  • String getServerName():返回主機名,例如:localhost
  • int getServerPort():返回服務器端口號,例如:80

3、HttpServletRequest獲取參數(shù)

3.1 傳遞參數(shù)方式

GET 和 POST,GET 可在地址欄、超鏈接、表單中傳遞參數(shù);POST 主要在表單中傳遞。

GET:

  • 地址欄中直接給出參數(shù):http://localhost/param/ParamServlet?p1=v1&p2=v2;
  • 超鏈接中給出參數(shù):

<a href=” http://localhost/param/ParamServlet?p1=v1&p2=v2”>點一下</a>

  • 表單中給出參數(shù):<form method=”GET” action=”ParamServlet”>…</form>
  • Ajax

POST:

  • 表單中給出參數(shù):<form method=”POST” action=”ParamServlet”>…</form>
  • Ajax

3.2 獲取參數(shù)方法

  • String getParameter(String name)獲取單值參數(shù);
  • String[] getParameterValues(String name)獲取多值參數(shù)(如復選框);
  • Enumeration getParameterNames()獲取所有參數(shù)名;
  • Map getParameterMap()獲取所有參數(shù)的 Map 集合。

單值參數(shù)接收示例

前臺接收

<form action="ParamServlet" method="post"><input type="text" name="p1"/><br/><input type="text" name="p2"/><br/><input type="submit" value="提交"/><br/>
</form>
<a href="ParamServlet?p1=v1&p2=v2">Param</a>

后臺接收

String s1 = request.getParameter("p1");
String s2 = request.getParameter("p2");
response.getWriter().print("p1 = " + s1 + "<br/>");
response.getWriter().print("p2 = " + s2 + "<br/>");
Enumeration names = request.getParameterNames();
while(names.hasMoreElements()) {String name = (String)names.nextElement();String value = request.getParameter(name);System.out.println(name + " = " + value);
}Map<String, String[]> map = request.getParameterMap();
Set<String> keySet = map.keySet();
for(String key : keySet){String[] vals = map.get(key);System.out.print(key+" :");System.out.println(key+" :" + Arrays.toString(vals));System.out.println();
}

多值參數(shù)接收

多值參數(shù)主要就是多選checkbox

例如在注冊表單中,如果讓用戶填寫愛好,那么愛好可能就是多個。那么hobby參數(shù)就會對應多個值:

前臺接收

<form action="ParamServlet" method="post">上網(wǎng):<input type="checkbox" name="hobby" value="netplay" /><br/>踢球:<input type="checkbox" name="hobby" value="football" /><br/>看書:<input type="checkbox" name="hobby" value="read" /><br/>編程:<input type="checkbox" name="hobby" value="programme" /><br/><input type="submit" value="提交"/><br/>
</form>

后臺接收

String[] hobbies = request.getParameterValues("hobby");
System.out.println(Arrays.toString(hobbies));Map<String, String[]> map = request.getParameterMap();
Set<String> keySet = map.keySet();
for(String key : keySet){String[] vals = map.get(key);System.out.println(key+" :" + Arrays.toString(vals));
}

3.3 中文亂碼處理

3.3.1 POST 請求

我們知道,請求信息中,只有POST存在正文,所謂POST參數(shù)編碼就是就是請求正文的編碼。默認情況下,使用getParameter()獲取POST請求參數(shù)時,使用的是ISO-8859-1編碼

方法一,針對字符串本身進行手動轉(zhuǎn)碼

String name = request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("name:"+name);

方法二,在獲取參數(shù)前使用request.setCharacterEncoding("UTF-8")設(shè)置編碼。

request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
System.out.println("name:"+name);

對于每個請求,只需要調(diào)用request的setCharacterEncodng()一次,然后所有g(shù)etParameter()都會使用這個編碼來解讀參數(shù)。但要注意,只對請求正文有效,即POST參數(shù)。

該方法 必須放在獲取參數(shù)值之前

3.3.2 GET 請求

方法一,對字符串單獨解碼

String name = request.getParameter("name");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("name:"+name);

方法二,在 Tomcat 的server.xml中配置URIEncoding="UTF-8",但 Tomcat8.5 及以上版本無需設(shè)置即可支持 URL 傳遞中文。(不建議使用get請求傳遞中文參數(shù)

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/>

3.6 HttpServletRequest請求轉(zhuǎn)發(fā)

用于在 Servlet 中執(zhí)行后臺業(yè)務邏輯后跳轉(zhuǎn)頁面,地址欄不變,可跳轉(zhuǎn)到靜態(tài)頁面或 Servlet,還能在請求域內(nèi)設(shè)置和獲取屬性值。

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

此時我們可以給request來設(shè)置當前域中的屬性值,在該域之內(nèi)(當前請求完成之前)都能獲得到該屬性值。

request.setAttribute("name", "txjava");
request.getAttribute("name");

3.7 request 作用域

范圍是一次請求響應內(nèi),每個線程請求會新生成HttpServletRequestHttpServletResponse對象。

ServletContext
ServletContext 代表整個 Web 應用程序的上下文,在服務器啟動時為每個 Web 應用創(chuàng)建一個 ServletContext 對象,所有 Servlet 共享這個對象。它主要用于在整個 Web 應用的不同部分之間共享數(shù)據(jù)、獲取 Web 應用的全局信息等。

HttpSession
HttpSession 用于在服務器端跟蹤客戶端的會話狀態(tài)。每個客戶端訪問服務器時,服務器會為其創(chuàng)建一個唯一的 HttpSession 對象,通過會話 ID 來識別不同的客戶端。它可以在用戶的多次請求之間保持數(shù)據(jù),適用于存儲用戶的登錄信息、購物車內(nèi)容等。

HttpServletRequest
HttpServletRequest 代表客戶端的請求,當客戶端向服務器發(fā)送請求時,服務器會創(chuàng)建一個 HttpServletRequest 對象,該對象封裝了客戶端請求的所有信息,如請求頭、請求參數(shù)、請求方法等.

4、HttpServletResponse 功能

request是請求對象,而response是響應對象。

response對象用于響應client請求,向客戶輸出信息。

他封裝了JSP產(chǎn)生的響應,并發(fā)送到client以響應client請求。

4.1 功能介紹

用于響應客戶端請求,包括設(shè)置響應頭信息、發(fā)送狀態(tài)碼、設(shè)置響應正文、重定向等功能。

  • 設(shè)置響應頭信息;addHeader(“reFresh”, “5;URL=xxxx”);
  • 發(fā)送狀態(tài)碼;sendError(404);
  • 設(shè)置響應正文;getWriter().print(fdsfdsa);
  • 重定向:sendRedirect(path);

4.2 設(shè)置狀態(tài)碼和其他方法

  1. response.setContentType("text/html;charset=utf-8")設(shè)置響應類型和編碼
  2. response.setCharacterEncoding(“utf-8”):如果響應類型為文本,那么就需要設(shè)置文本的編碼類型,然后瀏覽器使用這個編碼來解讀文本。注意!如果沒有設(shè)置contentType,那么瀏覽器會認為contentType為text/html,如果沒設(shè)置編碼,那么默認為ISO-8859-1編碼。所以以上兩點在使用response返回結(jié)果之前必須設(shè)置。
  3. response.setStatus(200):設(shè)置狀態(tài)碼
  4. response.sendError(404, “您要查找的資源不存在”):發(fā)送錯誤狀態(tài)碼并顯示錯誤信息。

4.3?設(shè)置響應頭信息

  • response.setHeader(“contentType”, “text/html;charset=utf-8”):與setContentType()方法的功能相同。setContentType()方法屬于便捷方法;
  • 刷新(定時重定向):response.setHeader("Refresh","5; URL=http://www.baidu.com"):5秒后自動跳轉(zhuǎn)到百度主頁。

4.4 中文亂碼問題

通過setContentType("text/html;charset=utf-8")setCharacterEncoding("UTF-8")解決。

response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("張三");

4.5 重定向

使用sendRedirect方法,可重定向到不同主機,會使request中的屬性失效并開啟新的request對象。

這一點與轉(zhuǎn)發(fā)不同。在client瀏覽器上將會得到跳轉(zhuǎn)后的地址,并又一次發(fā)送請求鏈接;用戶能夠從瀏覽器的地址欄中看到跳轉(zhuǎn)后的地址

response.sendRedirect("/param_demo/success.html");

http://www.risenshineclean.com/news/49582.html

相關(guān)文章:

  • 企業(yè)網(wǎng)站怎樣做免費公司軟文代寫
  • 哪個企業(yè)的網(wǎng)站做的比較好無錫百姓網(wǎng)推廣
  • 免費空間 個人網(wǎng)站 google廣告聯(lián)盟營銷管理
  • 家紡 網(wǎng)站建設(shè) 中企動力百度旗下有哪些app
  • 北京網(wǎng)站建設(shè)q479185700棒寧波seo外包服務商
  • 徐州英文網(wǎng)站優(yōu)化google海外版入口
  • 網(wǎng)站建設(shè)使用的技術(shù)搜索歷史記錄
  • WordPress批量定時發(fā)布文章seo美式
  • 游戲網(wǎng)站建設(shè)方案書百度seo關(guān)鍵詞點擊軟件
  • 做石材外貿(mào)用什么網(wǎng)站宣傳推廣圖片
  • 如何做網(wǎng)站頁面免費的人民日報官網(wǎng)
  • 網(wǎng)絡銷售網(wǎng)站網(wǎng)站推廣引流最快方法
  • 德陽北京網(wǎng)站建設(shè)計算機培訓短期速成班
  • 克隆視廳網(wǎng)站怎么做佛山seo整站優(yōu)化
  • 網(wǎng)站開發(fā)成本評估百度網(wǎng)站收錄入口
  • 做網(wǎng)站是哪個專業(yè)互聯(lián)網(wǎng)項目推廣是什么
  • 大良網(wǎng)站建設(shè)市場上海最專業(yè)的seo公司
  • 像淘寶類別網(wǎng)站怎么做seo網(wǎng)站關(guān)鍵詞優(yōu)化排名
  • 搜索引擎seo是什么意思seo外包優(yōu)化網(wǎng)站
  • 要求維護公司做網(wǎng)站整改的函百度信息流
  • 延吉網(wǎng)站建設(shè)移動端排名優(yōu)化軟件
  • 用什么工具做網(wǎng)站百度站長
  • 自己做的手工放在哪個網(wǎng)站賣站長工具seo綜合查詢騰訊
  • 網(wǎng)站建設(shè)是哪個專業(yè)最新新聞熱點事件2022
  • 做外貿(mào)用哪個網(wǎng)站好數(shù)據(jù)分析工具
  • 東營兩學一做測試網(wǎng)站360建站官網(wǎng)
  • 自己做網(wǎng)站app騰訊疫情實時數(shù)據(jù)
  • 切圖做網(wǎng)站過時了嗎seo手機關(guān)鍵詞網(wǎng)址
  • 知名網(wǎng)站排行榜北京百度搜索優(yōu)化
  • 上海市住房與城鄉(xiāng)建設(shè)委員會網(wǎng)站國際外貿(mào)網(wǎng)絡交易平臺