日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

获取请求参数通用方式|| 中文乱码问题||请求转发

發布時間:2025/4/16 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 获取请求参数通用方式|| 中文乱码问题||请求转发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 獲取請求參數通用方式:不論get還是post請求方式都可以使用下列方法來獲取請求參數

? ? ? ? ? ? 1. String getParameter(String name):根據參數名稱獲取參數值 ? ?username=zs&password=123
?? ??? ??? ?2. String[] getParameterValues(String name):根據參數名稱獲取參數值的數組 ?hobby=xx&hobby=game
?? ??? ??? ?3. Enumeration<String> getParameterNames():獲取所有請求的參數名稱
?? ??? ??? ?4. Map<String,String[]> getParameterMap():獲取所有參數的map集合

regist2.html

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>注冊頁面</title> </head> <body><form action="/day14/requestDemo6" method="post"><input type="text" placeholder="請輸入用戶名" name="username"><br><input type="text" placeholder="請輸入密碼" name="password"><br><input type="checkbox" name="hobby" value="game">游戲<input type="checkbox" name="hobby" value="study">學習<br><input type="submit" value="注冊"></form></body> </html>

?RequestDemo6.java

package cn.itcast.web.request;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.BufferedReader; import java.io.IOException; import java.util.Enumeration; import java.util.Map; import java.util.Set;@WebServlet("/requestDemo6") public class RequestDemo6 extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//post 獲取請求參數//根據參數名稱獲取參數值/* String username = request.getParameter("username");System.out.println(username);*//*//根據參數名稱獲取參數值的數組String[] hobbies = request.getParameterValues("hobby");for (String hobby : hobbies) {System.out.println(hobby);}*///獲取所有請求的參數名稱/*Enumeration<String> parameterNames = request.getParameterNames();while(parameterNames.hasMoreElements()){String name = parameterNames.nextElement();System.out.println(name);String value = request.getParameter(name);System.out.println(value);System.out.println("----------------");}*/// 獲取所有參數的map集合Map<String, String[]> parameterMap = request.getParameterMap();//遍歷Set<String> keyset = parameterMap.keySet();for (String name : keyset) {//獲取鍵獲取值String[] values = parameterMap.get(name);System.out.println(name);for (String value : values) {System.out.println(value);}System.out.println("-----------------");}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//get 獲取請求參數//根據參數名稱獲取參數值/* String username = request.getParameter("username");System.out.println("get");System.out.println(username);*/this.doPost(request,response);} }

???



?中文亂碼問題:

? ??? ??? ??? ?* get方式:tomcat 8 已經將get方式亂碼問題解決了
?? ??? ??? ??? ?* post方式:會亂碼
?? ??? ??? ??? ??? ?* 解決:在獲取參數前,設置request的編碼request.setCharacterEncoding("utf-8");



?? ??? ?2. 請求轉發:一種在服務器內部資源跳轉方式


?? ??? ??? ?1. 步驟:
?? ??? ??? ??? ?1. 通過request對象獲取請求轉發器對象:RequestDispatcher getRequestDispatcher(String path)
?? ??? ??? ??? ?2. 使用RequestDispatcher對象來進行轉發:forward(ServletRequest request, ServletResponse response)?

?? ??? ??? ?2. 特點:
?? ??? ??? ??? ?1. 瀏覽器地址欄路徑不發生變化
?? ??? ??? ??? ?2. 只能轉發到當前服務器內部資源中。
?? ??? ??? ??? ?3. 轉發是一次請求



共享數據:


?? ??? ??? ?* 域對象:一個有作用范圍的對象,可以在范圍內共享數據
?? ??? ??? ?* request域:代表一次請求的范圍,一般用于請求轉發的多個資源中共享數據
?? ??? ??? ?* 方法:
?? ??? ??? ??? ?1. void setAttribute(String name,Object obj):存儲數據
?? ??? ??? ??? ?2. Object getAttitude(String name):通過鍵獲取值
?? ??? ??? ??? ?3. void removeAttribute(String name):通過鍵移除鍵值對

??



?獲取ServletContext:
?? ??? ??? ?ServletContext getServletContext()

總結

以上是生活随笔為你收集整理的获取请求参数通用方式|| 中文乱码问题||请求转发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。