欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

JavaWeb(part2)--request

发布时间:2023/12/19 java 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JavaWeb(part2)--request 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

学习笔记,仅供参考,有错必纠


文章目录

    • request
      • Request的功能
        • 举个例子
      • 获取请求参数通用方式(get,post都可用)
        • 举个例子
      • 中文乱码问题
      • 请求转发
        • 请求转发的特点
        • 举个例子



request


Request的功能


//1.获取请求方式 String getMethod() //2.获取虚拟目录 String getContextPath() //3.获取Servlet路径 String getServletPath() //4.获取Get方式请求参数 String getQueryString() //5.获取请求UrI //String getRequestURI() //5.获取请求UrL //String getRequestURL() //6.获取协议及版本 String getProtocol() //7.获取客户机IP地址 String getRemoteAddr()

举个例子


利用postman向如下url发送post请求:

http://localhost:8080/ServletDemo/demo05?name=goatbishop

控制台输出如下结果:

获取请求方式 : GET 获取虚拟目录 : /ServletDemo 获取Servlet路径 /demo05 获取Get请求参数 : name=goatbishop 获取请求URI : /ServletDemo/demo05 获取请求URL : http://localhost:8080/ServletDemo/demo05 获取协议及版本 : HTTP/1.1 获取客户机IP地址 : 0:0:0:0:0:0:0:1 获取请求头数据 : PostmanRuntime/7.25.0

获取请求参数通用方式(get,post都可用)


根据参数名称获取参数值:

String getParameter(String name)

根据参数名称获取参数值数组,通常用于复选框之类:

String[] getParametervalues(String name)

举个例子


  • 例子1
package com.servlet.demo;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/demo06") public class Demo06 extends HttpServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doPost(req, resp);this.doGet(req, resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doGet(req, resp);//获取参数名为user_name的参数值System.out.println(req.getParameter("user_name"));} }

向http://localhost:8080/ServletDemo/demo06?user_name=goatbishop发送POST请求:


控制台输出:

goatbishop
  • 例子2

package com.servlet.demo;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/demo07") public class Demo07 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubString[] bunny = req.getParameterValues("bunny");for (String b : bunny) {System.out.println(b);}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stubthis.doGet(req, resp);}}

向http://localhost:8080/ServletDemo/demo07?bunny=Huang&bunny=Bai发起请求:


控制台输出:

Huang Bai

中文乱码问题


Tomcat8已经把get方式的中文乱码问题解决了

Post方式乱码解决:

//在获取参数前设置request的编码,使之和页面保持一致Request.setCharacterEncoding(“utf-8”)

请求转发


图式:

请求转发是一种在服务器内部的资源跳转方式:

req.getRequestDispatcher(String path).forward(ServletRequest request,ServletResponse response);

请求转发的特点


  • 浏览器地址栏路径不发生变化

  • 只能转发到当前服务器内部资源

  • 转发是一次请求


举个例子


Demo08.html

package com.servlet.demo;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/demo08") public class Demo08 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doGet(req, resp);System.out.println("这是demo08");req.getRequestDispatcher("/demo09").forward(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doPost(req, resp);this.doGet(req, resp);}}

Demo09.html:

package com.servlet.demo;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;@WebServlet("/demo09") public class Demo09 extends HttpServlet{@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doGet(req, resp);System.out.println("这是demo09");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// TODO Auto-generated method stub // super.doPost(req, resp);this.doGet(req, resp);} }

向http://localhost:8080/ServletDemo/demo08发起POST请求,得到控制台输出:

这是demo08 这是demo09

总结

以上是生活随笔为你收集整理的JavaWeb(part2)--request的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。