1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 获取请求参数通用方式|| 中文乱码问题||请求转发

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

时间:2024-03-09 06:54:56

相关推荐

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

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()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。