当前位置: 首页 > news >正文

免费网站建设下载/2023上海又出现疫情了

免费网站建设下载,2023上海又出现疫情了,免费做网站怎么做网站ma,背景视频素材下载免费目录HttpServletRequestHttpServletRequest 类的作用HttpServletRequest 类的常用方法如何获取请求参数GET 请求的中文乱码解决POST 请求的中文乱码解决请求的转发base 标签的作用Web 中的相对路径和绝对路径web 中 / 斜杠的不同意义HttpServletResponseHttpServletResponse 类…

目录

  • HttpServletRequest
    • HttpServletRequest 类的作用
    • HttpServletRequest 类的常用方法
    • 如何获取请求参数
    • GET 请求的中文乱码解决
    • POST 请求的中文乱码解决
    • 请求的转发
    • base 标签的作用
    • Web 中的相对路径和绝对路径
    • web 中 / 斜杠的不同意义
  • HttpServletResponse
    • HttpServletResponse 类的作用
    • 两个输出流的说明
    • 往客户端回传数据,并且解决乱码问题
    • 请求重定向
      • 方式一
      • 方式二

HttpServletRequest

HttpServletRequest 类的作用

每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中,然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletRequest 对象,获取到所有请求的信息。

HttpServletRequest 类的常用方法

  1. getRequestURI()     获取请求的资源路径
  2. getRequestURL()     获取请求的统一资源定位符(绝对路径)
  3. getRemoteHost()     获取客户端的 ip 地址

在IDEA中,使用localhost访问时,得到的客户端 ip 地址是 ==>> 127.0.0.1;使用真实 ip 访问时,得到的客户端 ip 地址是真实的客户端 ip 地址。

  1. getHeader()        获取请求头
  2. getParameter()      获取请求的参数
  3. getParameterValues()   获取请求的参数(多个值的时候使用)
  4. getMethod()         获取请求的方式 GET 或 POST
  5. setAttribute(key, value);  设置域数据
  6. getAttribute(key);     获取域数据
  7. getRequestDispatcher()  获取请求转发对象

常用 API 示例代码:

public class RequestAPIServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//        getRequestURI()     获取请求的资源路径System.out.println("URI => " + req.getRequestURI());
//        getRequestURL()     获取请求的统一资源定位符(绝对路径)System.out.println("URL =>" + req.getRequestURL());
//        getRemoteHost()     获取客户端的 ip 地址System.out.println("客户端 ip => " + req.getRemoteHost());
//        getHeader()        获取请求头System.out.println("请求头User-Agent ==>> " + req.getHeader("User-Agent"));}
}

如何获取请求参数

form.html代码示例

<body><form action="http://localhost:8080/07_servlet/parameterServlet" method="get">用户名:<input type="text" name="username"/><br/>密码:<input type="password" name="password"/><br/>兴趣爱好:<input type="checkbox" name="hobby" value="cpp"/>C++<input type="checkbox" name="hobby" value="java"/>Java<input type="checkbox" name="hobby" value="js"/>JavaScript<br/><input type="submit"/></form></body>

java代码示例:

public class ParameterServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取请求参数String username = req.getParameter("username");String password = req.getParameter("password");String[] hobby = req.getParameterValues("hobby");System.out.println("用户名:" + username);System.out.println("密码:" + password);// 将数组转换为列表System.out.println("兴趣爱好:" + Arrays.asList(hobby));}
}

GET 请求的中文乱码解决

// 获取请求参数String username = req.getParameter("username");//1. 先以 iso8859-1 进行编码//2. 再以 UTF-8 进行解码username = new String(username.getBytes("iso-8859-1"),"UTF-8");

POST 请求的中文乱码解决

// 设置请求体的字符集为UTF-8,从而解决中文乱码问题req.setCharacterEncoding("UTF-8");

请求的转发

请求转发是指服务器收到请求后,从一个资源跳转到另一个资源的操作。

请求转发图解:
在这里插入图片描述
Servlet1 代码:

public class Servlet1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String username = req.getParameter("username");System.out.println("在 Servlet1(柜台1)中查看参数(材料) : " + username);// 给材料盖章,并传递到 Servlet2(柜台2)中去查看req.setAttribute("key1","柜台1的章");// 接下来问路:Servlet2(柜台2)怎么走//请求转发必须要以斜杠 / 开头, / 斜杠表示地址为:http://ip:port/工程名/,映射到 IDEA 代码的web目录RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2");// 走向 Servlet2(柜台2)requestDispatcher.forward(req,resp);}
}

Servlet2 代码:

public class Servlet2 extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取请求的参数(办事的材料)并查看String username = req.getParameter("username");System.out.println("在 Servlet2(柜台2) 中查看参数(材料):" + username);// 查看 柜台1 是否有盖章Object key1 = req.getAttribute("key1");System.out.println("柜台1是否有盖章:" + key1);// 处理自己的业务System.out.println("Servlet2 处理自己的业务");}
}

base 标签的作用

在这里插入图片描述

Web 中的相对路径和绝对路径

在 JavaWeb 中,路径分为相对路径和绝对路径两种:

相对路径:
  .    当前目录
  …    上一级目录
  资源名   当前目录/资源名

绝对路径:
  htttp://ip:port/工程路径/资源路径

web 中 / 斜杠的不同意义

在 web 中 / 斜杠 是一种绝对路径。
/ 斜杠 如果被浏览器解析,得到的地址是: http://op:port
在这里插入图片描述

/ 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径
在这里插入图片描述

HttpServletResponse

HttpServletResponse 类的作用

  HttpServletResponse 类和 HttpServletRequest 类一样。每次请求进来,Tomcat 服务器都会创建一个 Response 对象传 递给 Servlet 程序去使用。
  HttpServletRequest 表示请求过来的信息,HttpServletResponse 表示所有响应的信息, 我们如果需要设置返回给客户端的信息,都可以通过 HttpServletResponse 对象来进行设置

两个输出流的说明

字节流  getOutputStream();  常用于下载(传递二进制数据)
字符流  getWriter();      常用于回传字符串(常用)

两个流同时只能使用一个!!!

往客户端回传数据,并且解决乱码问题

public class ResponseIOServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 它会同时设置服务器和客户端都是用UTF-8字符集,还设置了响应头// 此方法一定要在获取流对象之前调用才有效resp.setContentType("text/html; charset=UTF-8");// 往客户端回传 字符串 数据PrintWriter writer = resp.getWriter();writer.write("李是神魔恋");}
}

请求重定向

客户端给服务器发请求,然后服务器告诉客户端说:我给你地址,你去新地址访问,叫请求重定向(因为之前的地址可能已经被废弃)

方式一

response1:

public class Response1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("Response1 来过");//设置响应状态码302,表示重定向resp.setStatus(302);resp.setHeader("location","http://localhost:8080/07_servlet/response2");}
}

response2:

public class Response2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("response2's result!");}
}

方式二

public class Response1 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.sendRedirect("http://localhost:8080");}
}
http://www.lbrq.cn/news/1024165.html

相关文章:

  • 自己怎么做免费网站空间/手机百度搜索引擎入口
  • 九网互联怎么建设网站/免费网站推广网站破解版
  • 江东网站制作/如何建造自己的网站
  • 网页设计培训教育机构/网站关键词优化推广哪家好
  • 做网站需学什么/百度知道灰色词代发收录
  • 做照片书的网站好/网络营销推广方案
  • win7电脑做网站/永久免费开网店app
  • 做我女朋友程序网站/搜索推广营销
  • wordpress $current_user/廊坊seo关键词排名
  • 刷东西网站建设/成全视频免费观看在线看
  • 做装修网站公司/搜索优化推广公司
  • 凡科做的网站怎么打不开了/百度推广关键词规划师
  • 北京h5网站建设/目前最火的自媒体平台
  • 国外小型网站/专业搜索引擎优化电话
  • 电脑怎么装免费wordpress/宁波seo教程推广平台
  • 如何入侵网站服务器/网站建设优化的技巧
  • 官方网站在哪里/品牌seo主要做什么
  • 模拟ip访问网站/谷歌 google
  • 海南房产网站开发/网络营销概念是什么
  • 东莞建设网官方网站/想要网站导航推广页
  • 什么是云速建站服务/seo综合查询站长工具
  • 西数 网站建设/网络营销的主要内容包括
  • 怎样用电脑ip做网站/被逆冬seo课程欺骗了
  • 什么网站建设最简单/抖音权重查询工具
  • 做视频网站把视频放在哪里/行业关键词搜索排名
  • 做网站用香港哪个机房/服务之家网站推广
  • 郑州网站建设学习/百度系app有哪些
  • 门户制作/真人seo点击平台
  • 国外服务器品牌前十大排名/站长工具seo综合查询收费吗
  • 网站项目遇到的问题/购买一个网站域名需要多少钱
  • Java-JVM是什么JVM的类加载机制
  • spring中异步任务注解@Async和@scheduled的使用
  • Mybatis学习笔记(三)
  • 4. 索引数据的增删改查
  • SVN提交服务器拒绝访问的问题
  • 18. parseInt 的参数有几个