获取请求参数通用方式|| 中文乱码问题||请求转发
1. 獲取請(qǐng)求參數(shù)通用方式:不論get還是post請(qǐng)求方式都可以使用下列方法來(lái)獲取請(qǐng)求參數(shù)
? ? ? ? ? ? 1. String getParameter(String name):根據(jù)參數(shù)名稱(chēng)獲取參數(shù)值 ? ?username=zs&password=123
?? ??? ??? ?2. String[] getParameterValues(String name):根據(jù)參數(shù)名稱(chēng)獲取參數(shù)值的數(shù)組 ?hobby=xx&hobby=game
?? ??? ??? ?3. Enumeration<String> getParameterNames():獲取所有請(qǐng)求的參數(shù)名稱(chēng)
?? ??? ??? ?4. Map<String,String[]> getParameterMap():獲取所有參數(shù)的map集合
regist2.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>注冊(cè)頁(yè)面</title> </head> <body><form action="/day14/requestDemo6" method="post"><input type="text" placeholder="請(qǐng)輸入用戶(hù)名" name="username"><br><input type="text" placeholder="請(qǐng)輸入密碼" name="password"><br><input type="checkbox" name="hobby" value="game">游戲<input type="checkbox" name="hobby" value="study">學(xué)習(xí)<br><input type="submit" value="注冊(cè)"></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 獲取請(qǐng)求參數(shù)//根據(jù)參數(shù)名稱(chēng)獲取參數(shù)值/* String username = request.getParameter("username");System.out.println(username);*//*//根據(jù)參數(shù)名稱(chēng)獲取參數(shù)值的數(shù)組String[] hobbies = request.getParameterValues("hobby");for (String hobby : hobbies) {System.out.println(hobby);}*///獲取所有請(qǐng)求的參數(shù)名稱(chēng)/*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("----------------");}*/// 獲取所有參數(shù)的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 獲取請(qǐng)求參數(shù)//根據(jù)參數(shù)名稱(chēng)獲取參數(shù)值/* String username = request.getParameter("username");System.out.println("get");System.out.println(username);*/this.doPost(request,response);} }???
?中文亂碼問(wèn)題:
? ??? ??? ??? ?* get方式:tomcat 8 已經(jīng)將get方式亂碼問(wèn)題解決了
?? ??? ??? ??? ?* post方式:會(huì)亂碼
?? ??? ??? ??? ??? ?* 解決:在獲取參數(shù)前,設(shè)置request的編碼request.setCharacterEncoding("utf-8");
?? ??? ?2. 請(qǐng)求轉(zhuǎn)發(fā):一種在服務(wù)器內(nèi)部的資源跳轉(zhuǎn)方式
?? ??? ??? ?1. 步驟:
?? ??? ??? ??? ?1. 通過(guò)request對(duì)象獲取請(qǐng)求轉(zhuǎn)發(fā)器對(duì)象:RequestDispatcher getRequestDispatcher(String path)
?? ??? ??? ??? ?2. 使用RequestDispatcher對(duì)象來(lái)進(jìn)行轉(zhuǎn)發(fā):forward(ServletRequest request, ServletResponse response)?
?? ??? ??? ?2. 特點(diǎn):
?? ??? ??? ??? ?1. 瀏覽器地址欄路徑不發(fā)生變化
?? ??? ??? ??? ?2. 只能轉(zhuǎn)發(fā)到當(dāng)前服務(wù)器內(nèi)部資源中。
?? ??? ??? ??? ?3. 轉(zhuǎn)發(fā)是一次請(qǐng)求
共享數(shù)據(jù):
?? ??? ??? ?* 域?qū)ο?#xff1a;一個(gè)有作用范圍的對(duì)象,可以在范圍內(nèi)共享數(shù)據(jù)
?? ??? ??? ?* request域:代表一次請(qǐng)求的范圍,一般用于請(qǐng)求轉(zhuǎn)發(fā)的多個(gè)資源中共享數(shù)據(jù)
?? ??? ??? ?* 方法:
?? ??? ??? ??? ?1. void setAttribute(String name,Object obj):存儲(chǔ)數(shù)據(jù)
?? ??? ??? ??? ?2. Object getAttitude(String name):通過(guò)鍵獲取值
?? ??? ??? ??? ?3. void removeAttribute(String name):通過(guò)鍵移除鍵值對(duì)
??
?獲取ServletContext:
?? ??? ??? ?ServletContext getServletContext()
總結(jié)
以上是生活随笔為你收集整理的获取请求参数通用方式|| 中文乱码问题||请求转发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringMVC的概念
- 下一篇: 案例:用户登录