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

生产类营销型网站网站制作加教程视频

生产类营销型网站,网站制作加教程视频,深圳响应式网页设计,网站需要收集什么建站资源目录 HttpServletRequest 简介 HttpServletRequest 常见的 API 关于请求行的相关 API 关于请求头的相关 API 关于请求参数的相关 API 其他 API 代码示例: 请求行 请求头 请求参数 获取键值对形式的数据 获得请求体中的非键值对数据 HttpServletRespons…

目录

HttpServletRequest 简介

HttpServletRequest 常见的 API

关于请求行的相关 API

关于请求头的相关 API

关于请求参数的相关 API

其他 API

代码示例:

请求行

请求头

请求参数

获取键值对形式的数据

获得请求体中的非键值对数据

HttpServletResponse 简介

HttpServletResponse 的常见 API

设置响应行相关

设置响应头相关

设置响应体相关

其他 API

代码示例

完!


HttpServletRequest 简介

HttpServletRequest 是什么?

        HttpServletRequest 是一个接口,其父接口是 ServletRequest

        HttpServletRequest 是Tomcat 将请求报文,封装而来的一个对象,在  Tomcat 调用 service 方法时传入。

        HttpServletRequest 代表客户端发来的请求,请求中的所有信息,都可以通过该对象来获得

HttpServletRequest 常见的 API

关于请求行的相关 API

关于请求头的相关 API

关于请求参数的相关 API

其他 API

代码示例:

请求行

package com.zzz.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;/** @author zzr* @date: 2025/07/06  16:47* @description: 测试 HttpServletRequest*/
@WebServlet("/servlet8")
public class servlet8 extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 行相关 GET/POST url http/1.1System.out.println(req.getMethod()); // 获取请求方式System.out.println(req.getScheme()); // 获取请求协议System.out.println(req.getProtocol()); // 获取请求协议及其版本号System.out.println(req.getRequestURI()); // 获取请求的 uri ==》 项目内的资源路径System.out.println(req.getRequestURL()); // 获取请求 url ==》 项目内资源的完整的路径System.out.println(req.getLocalPort()); // 本应用容器的端口号System.out.println(req.getServerPort()); // 客户端发请求用的端口号System.out.println(req.getRemotePort()); // 客户端软件的端口号}
}

这里补充讲解一下 uri 和 url 的区别

URI:称为统一资源标识符   interface URI{ }  资源定位的要求和规范

URL:称为统一资源定位符  class URL implements URI{ } 一个具体的资源路径

再补充解释一下端口号的问题~

本应用容器的端口号,如果未手动设置,则为 Tomcat 的默认端口号 8080

客户端发送请求时使用的端口号,可能不是 8080,因为可能,客户端发送请求给 Tomcat 的时候,中间隔了一层代理

请求头

package com.zzz.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.util.Enumeration;/** @author zzr* @date: 2025/07/06  16:47* @description: 测试 HttpServletRequest*/
@WebServlet("/servlet8")
public class servlet8 extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 行相关 GET/POST url http/1.1System.out.println(req.getMethod()); // 获取请求方式System.out.println(req.getScheme()); // 获取请求协议System.out.println(req.getProtocol()); // 获取请求协议及其版本号System.out.println(req.getRequestURI()); // 获取请求的 uri ==》 项目内的资源路径System.out.println(req.getRequestURL()); // 获取请求 url ==》 项目内资源的完整的路径System.out.println(req.getLocalPort()); // 本应用容器的端口号System.out.println(req.getServerPort()); // 客户端发请求用的端口号System.out.println(req.getRemotePort()); // 客户端软件的端口号// 头相关 key:value   key:value// 可以根据名字,来单独获取某个请求头String accept = req.getHeader("Accept");System.out.println("Accept" + accept);// 也可以先获取本次请求中的所有请求头的名字Enumeration<String> headerNames = req.getHeaderNames();while (headerNames.hasMoreElements()) {String hname = headerNames.nextElement();System.out.println(hname + ":" + req.getHeader(hname));}}
}

请求参数

获取键值对形式的数据

先准备一个前端页面的表单:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<form method = "get" action = "servlet9"><input type = "text" name = "username"> <br /><input type = "password" name = "userPwd"> <br /><input type = "checkbox" name = "hobby" value = "1"> 篮球<input type = "checkbox" name = "hobby" value = "2"> 排球<input type = "checkbox" name = "hobby" value = "3"> 足球<input type = "checkbox" name = "hobby" value = "4"> 游泳<br /><input type = "submit">
</form>
</body>
</html>
package com.zzz.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.Map;
import java.util.Set;/** @author zzr* @date: 2025/07/06  17:15* @description: 测试 HttpServletRequest 的请求参数 API*/
@WebServlet("/servlet9")
public class servlet9 extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 获取键值对的参数// 根据参数名获取单个参数值String username = req.getParameter("username");System.out.println(username);String userPwd = req.getParameter("userPwd");System.out.println(userPwd);// 根据参数名获取多个参数值String[] hobbies = req.getParameterValues("hobby");System.out.println(Arrays.toString(hobbies));// 先获取所有参数名,再分别打印// 法 1:Enumeration<String> parameterNames = req.getParameterNames();while (parameterNames.hasMoreElements()) {String pname = parameterNames.nextElement();// 先假设每个参数名都有多个参数值String[] parameterValues = req.getParameterValues(pname);if (parameterValues.length > 1) {System.out.println(pname + ":" + Arrays.toString(parameterValues));} else {System.out.println(pname + ":" + parameterValues[0]);}}// 法 2:返回所有参数的 map 集合 key = 参数名 value = 参数值Map<String, String[]> parameterMap = req.getParameterMap();Set<Map.Entry<String, String[]>> entries = parameterMap.entrySet();for (Map.Entry<String, String[]> entry : entries) {String pname = entry.getKey();String[] value = entry.getValue();if (value.length > 1) {System.out.println(pname + "=" + Arrays.toString(value));} else {System.out.println(pname + "=" + value[0]);}}}
}

如果表单的提交方式改为 post,也是可以正常获取请求参数的。

以上 API 专门用于获取 key = value 形式的参数,无论这些参数是在 url 后,还是在请求体中(注意,这里仅仅提到的是,键值对的存放位置,但并未说是 get / post 方法)~

form 表单标签提交 get 请求的时候,参数是以键值对的形式,放在 url 后,不放在请求体中。但是! GET 方法的请求也是可以有请求体的!

获得请求体中的非键值对数据

// 获取一个从请求体中读取字符的字符输入流
BufferedReader reader = req.getReader(); // 读取 JSON 串
// 获取一个从请求体中读取二进制数据字节的输入流
ServletInputStream inputStream = req.getInputStream(); // 读取文件

HttpServletResponse 简介

HttpServletResponse 是什么?

        HttpServletResponse 是一个接口,其父接口是 ServletResponse

        HttpServletResponse 是 Tomcat 预先创建的,在 Tomcat 调用 service 方法时候传入

        HttpServletResponse 代表服务端对客户端的响应,该对象会被转换成响应的报文,发送给客户端,通过该对象,我们可以设置响应的信息

HttpServletResponse 的常见 API

设置响应行相关

设置响应头相关

设置响应体相关

其他 API

代码示例

package com.zzz.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;/** @author zzr* @date: 2025/07/06  18:00* @description: HttpServletResponse 测试*/
@WebServlet("/servlet10")
public class Servlet10 extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// 设置相应行相关的 APIresp.setStatus(404);// 设置响应头的相关 APIString info = "<h1>hello world</h1>";resp.setHeader("aaa","value"); // 如果 s 不是常规的响应头,就会在响应头中给我们创建一个这样的键值对resp.setHeader("Content-Type","text/html");resp.setContentType("text/html");resp.setHeader("Content-Length","1234");resp.setContentLength(info.getBytes().length);// 设置响应体内容的 API// 获得一个向响应体中输入文本字符输出类流PrintWriter writer = resp.getWriter();writer.write(info);// 获得一个向响应体中,输入二进制信息的字节输出流ServletOutputStream outputStream = resp.getOutputStream();}
}

完!


文章转载自:

http://T8CATNim.kjynz.cn
http://BoVQn0p4.kjynz.cn
http://rzCUZfFG.kjynz.cn
http://VmdNboEd.kjynz.cn
http://X2BZkTdf.kjynz.cn
http://zZJP5qXD.kjynz.cn
http://zHpBa3MC.kjynz.cn
http://H4Vm2eer.kjynz.cn
http://KVNM79Y6.kjynz.cn
http://ZVK1icDV.kjynz.cn
http://N8BAx6tH.kjynz.cn
http://R5l6A1Gr.kjynz.cn
http://XHtEKp6c.kjynz.cn
http://TNLSjx8W.kjynz.cn
http://rZXRwkHl.kjynz.cn
http://6dpQuZak.kjynz.cn
http://awco5oTt.kjynz.cn
http://ot73EXzR.kjynz.cn
http://DdgtfADR.kjynz.cn
http://hRMNEMwC.kjynz.cn
http://4VW8gHZo.kjynz.cn
http://oB1GDb31.kjynz.cn
http://kVQunJka.kjynz.cn
http://9sefEPwd.kjynz.cn
http://5fi1XaTe.kjynz.cn
http://ndUmaPKV.kjynz.cn
http://Oxc7F84j.kjynz.cn
http://FOZ1urTq.kjynz.cn
http://VbPGDb8p.kjynz.cn
http://MUDoJNCh.kjynz.cn
http://www.dtcms.com/wzjs/588299.html

相关文章:

  • 免费网站mv怎样做专业网站
  • 网站首页用什么字体好wordpress login with ajax
  • 余杭区住房与建设局网站建设一个网站需要做哪些工作
  • 跟网站做流量苏州刚刚发生的大事
  • 站长推荐网址入口自动跳转如何在自己电脑上建设网站
  • python和php做网站湖北 商城网站建设多少钱
  • 宠物店网站开发文档撰写广州市从化区住房和建设局网站
  • 网页显示站点不安全动易网站制作教程
  • 淘宝客优惠券网站怎么做的可以做空股票的网站
  • 网站优化排名多少钱大数据下的精准营销
  • 做网站用php还是html好公司网站注销
  • 信息平台 网站的建设香精香料网论坛
  • 网络公司做网站wordpress 中文下载
  • 动漫网站html网站管理工具
  • 江岸区建设局网站页面布局
  • 如何建设网站设计自己动手建设网站
  • 网站建设网络公司整站源码微博wordpress插件
  • 企业如何在自己的网站上做宣传多媒体艺术设计
  • 青岛科友网站建设网络公司个人网页的设计与制作价值
  • 重庆企业网站制作外包上海建筑设计院
  • 做网站的前端是做什么jsp做的求职招聘网站百度云
  • 怎样维护公司网站怎么做记步数的程序到网站
  • 做一个外贸网站石狮网站开发
  • 福田的网站建设公司西安建设工程信息网ca锁怎么安装
  • 网站建设包含域名网站优化案例
  • 网站建设课程设计wordpress数据库配置文件
  • 网站内容建设注意事项深圳品牌设计工作室
  • 外贸网站 万网wordpress收费下载插件
  • 检察院网站建设情况贵州建设厅网站报名系统
  • 图片设计网站推荐招聘网站可以同时做两份简历吗6