HttpServletRequest/Response

ops/2024/10/9 15:19:28/

HttpServletRequest

一些常用类的用法

package Demo;import javax.jws.WebService;
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.IOException;
import java.util.Enumeration;@WebServlet("/Demo2")
public class Demo2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=utf8");StringBuilder stringBuilder=new StringBuilder();//协议名称和版本stringBuilder.append(req.getProtocol());stringBuilder.append("<br>");//HTTP方法名称stringBuilder.append(req.getMethod());stringBuilder.append("<br>");//协议名称直到HTTP请求第一个查询字符串stringBuilder.append(req.getRequestURI());stringBuilder.append("<br>");//请求上下文的请求URL部分stringBuilder.append(req.getContextPath());stringBuilder.append("<br>");//URL中查询字符串stringBuilder.append(req.getQueryString());stringBuilder.append("<br>");//枚举//请求中的所有头名Enumeration<String> headerNames=req.getHeaderNames();while(headerNames.hasMoreElements()){String name=headerNames.nextElement();stringBuilder.append(name+": "+req.getHeader(name));stringBuilder.append("<br>");}resp.setContentType("text/html;charset=utf8");resp.getWriter().write(stringBuilder.toString());}
}

HttpServletPonse

package Demo;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.IOException;@WebServlet("/Demo3")
public class Demo3 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//设置响应状态码resp.setStatus(200);//设置响应的内容类型//这两个都是常用的//第二个是json类型resp.setContentType("text/html;charset=utf8");
//        resp.setContentType("application/json;charset=utf8");//告诉浏览器响应的字符集resp.setCharacterEncoding("utf8");//告诉服务器body中该用utf8字符集解析
//        req.setCharacterEncoding("utf8");//这两是不一样的,注意区分resp.getWriter().write("往body内写入文本格式数据");//强制跳转到指定页面resp.sendRedirect("Demo1.html");}
}

前端 跳转指定页面

location.assign('login.html');

常用状态码

1.200 OK:请求成功。客户端请求的资源已成功获取。

2.201 Created:请求已被实现,而且有一个新的资源已经依据请求的需要而建立。

3.202 Accepted:服务器已接受请求,但尚未处理。

4.301 Moved Permanently:请求的资源已永久移动到新位置。

5.302 Found:请求的资源现在临时从不同的URI响应请求。

6.303 See Other:对应当前请求的响应可以在另一个URI上被找到,而且客户端应当采用GET的方式访问那个资源。

7.304 Not Modified:自从上次请求后,请求的网页未修改过。

8.400 Bad Request:服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。

9.401 Unauthorized:请求未授权。

10.403 Forbidden:服务器拒绝请求。

11.404 Not Found:服务器找不到请求的网页。

12.405 Method Not Allowed:请求行中指定的请求方法不能被用于请求相应的资源。

13.406 Not Acceptable:请求的资源的内容特性无法满足请求头中的条件,因而无法生成响应实体。

14.407 Proxy Authentication Required:此状态码与401类似,但指定请求者应当授权使用代理。

15.408 Request Timeout:服务器等候请求时发生超时。

16.409 Conflict:服务器在完成请求的处理时发生冲突。

17.410 Gone:如果请求的资源已永久删除,就可以使用这个状态码。

18.411 Length Required:服务器无法处理客户端发送的不带Content-Length的请求信息。

19.412 Precondition Failed:服务器未满足请求者在请求中设置的其中一个前提条件。

20.413 Request Entity Too Large:服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。

21.414 Request-URI Too Long:请求的URI过长(URI通常为网址),服务器无法处理。

22.415 Unsupported Media Type:服务器无法处理请求附带的媒体格式。

23.416 Requested Range Not Satisfiable:如果请求中包含了Range请求头,并且Range中指定的任何数据范围都与当前资源的可用范围不重合,就返回此状态码。

24.417 Expectation Failed:在请求头Expect中指定的预期内容无法被服务器满足时,就返回这个状态码。

25.500 Internal Server Error:服务器遇到一个未曾预料的状况,导致它无法完成对请求的处理。

26.501 Not Implemented:服务器不支持当前请求所需要的某个功能。

27.502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。

28.503 Service Unavailable:由于临时的服务器维护或者过载,服务器当前无法处理请求。

29.504 Gateway Timeout:作为网关或者代理的服务器,未及时从上游服务器接收请求。

30.505 HTTP Version Not Supported:服务器不支持,或者拒绝支持在请求中使用的HTTP版本。


http://www.ppmy.cn/ops/5338.html

相关文章

封装个js分页插件

// 分页插件类 class PaginationPlugin {constructor(fetchDataURL, options {}) {this.fetchDataURL fetchDataURL;this.options {containerId: options.containerId || paginationContainer,dataSizeAttr: options.dataSizeAttr || toatalsize, // 修改为实际API返回的数据…

el-table使用show-summary合计,但只需要合并某一列

el-table使用show-summary合计&#xff0c;但只需要合并某一列 这里有两种方法&#xff0c;一种是网上的&#xff0c;我会引用他的链接给你们看。 一种是我自己看源码发现的 方法一 这个就是方法一的链接 点击我跳转方法一 方法二 不需要计算的列 去掉prop 然后用插槽显示即可…

Linux中文件特殊权限suid、sgid、sticky详解

Linux中文件特殊权限suid、sgid、sticky 作用对象 suid权限作用于文件属主sgid权限作用于属组sticky权限作用于other suid 作用&#xff1a;让普通用户临时拥有该文件的属主的指向权限&#xff0c;suid权限只能应用在二进制可执行文件&#xff08;命令&#xff09;表示方法…

mac jd-gui安装

在macOS上安装JD-GUI&#xff08;Java Decompiler GUI&#xff09;是一个简单的过程。JD-GUI是一个独立的图形化应用程序&#xff0c;你可以使用它来查看Java字节码对应的源代码。下面是安装步骤&#xff1a; 下载JD-GUI&#xff1a; 访问JD-GUI的官方网站&#xff08;http://j…

C语言入门算法——最大公约数和最小公倍数问题

题目描述&#xff1a; 输入两个正整数 x0​,y0​&#xff0c;求出满足下列条件的 P,Q 的个数&#xff1a; P,Q 是正整数。 要求P,Q 以 x0​ 为最大公约数&#xff0c;以 y0​ 为最小公倍数。 试求&#xff1a;满足条件的所有可能的 P,Q 的个数。 输入格式 一行两个正整数…

使用Python进行自动化测试

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 如何使用Python进行自动化测试&#xff1a;测试框架的选择与应用 自动化测试是软件开发过程…

XiaodiSec day015 Learn Note 小迪渗透学习笔记

XiaodiSec day015 Learn Note 小迪渗透学习笔记 记录得比较凌乱&#xff0c;不尽详细 day15 还是基础的Php开发 看来是比较基础的 主题&#xff1a;登录验证 COOKIE & SESSION 后台系统有多个验证 为了方便验证使用cookie或session 类似于用户状态管理? cookie存储…

cocos creator 3.6 发布web手机端 加载进度条添加

cocos creator 升级到3.x之后加载进度条取消了&#xff0c;测试了多个3.x版本最终以creator 3.6.3版本&#xff0c;构建了简单的进度加载 参考链接&#xff1a; https://forum.cocos.org/t/topic/137113 打包web-mobile后&#xff0c;没有进度条。加载的时候只显示一个黑屏。…