HttpServletRequest/Response

2024-04-14 18:52

本文主要是介绍HttpServletRequest/Response,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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");}
}

常用状态码

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版本。

这篇关于HttpServletRequest/Response的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903733

相关文章

ZeroMQ(java)之Requerst/Response模式

自己最开始是在cloud foundry中接触过消息服务器(nats),或者说是消息中间件,也算是初步知道了一个消息服务器对于分布式的网络系统的重要性,后来自己也曾想过在一些项目中使用它,尤其是在一些分布式的环境下,可以极大的方便整个系统的实现。。。。 例如如下的形式: 在中间通过一个消息中间件,可以很方便的将各个woker的数据发送到最终的统计服务器来做数据的统计,从而

Http请求和HttpServletRequest中获得对应参数

Enumeration<String> key = request.getParameterNames();  这个能获取到所有前端传过来的参数;其实这篇转来的文字可以深入理解下 servlet 的知识, Http请求 GET /firstSample/hello HTTP/1.1 请求行Host: localhost:8080 请求头Conne

缓解webclient频繁报‘Connection prematurely closed BEFORE response’的问题

现象: 我在Java代码中使用org.springframework.web.reactive.function.client.WebClient进行网络请求,一开始会有比较多的偶发报错:Connection prematurely closed BEFORE response,网络连接莫名其妙就断了。 处理: 在网上找了挺多资料,就感觉https://stackoverflow.com/q

手写服务器httpserver_封装Response_封装Request_JAVA199-201

来源:http://www.bjsxt.com/ 一、S02E199_01手写服务器httpserver_封装Response <html><head><title>第一个表单</title></head><body><pre>method:请求方式 get/postget:默认方式,数据量小,安全性不高post:量大,安全性相对高action:请求的服务器路径id:编号,前端(用户的浏览器)

using showdown js with openAi streaming response

题意:"使用 Showdown.js 处理 OpenAI 流式响应" 问题背景: I tried using showdownjs to translate streamed markdown from OpenAi to HTML "我尝试使用 Showdown.js 将来自 OpenAI 的流式 Markdown 转换为 HTML" I changed the code g

OkHttp学习(2)--异步下载图片、文件(拦截器重写Response方法实现下载进度获取)

OkHttp学习(1)–>>同步和异步(get、post键值对、post带map、请求头体封装json) Volley学习链接—想了解Volley的可以看我这5篇 今天来了解下okHttp如何进行图片、文件下载的 首先在OkHttpManger弄一个单利模式,初始化一个OkHttpClient,然后放进去一个handler,线程更新ui使用 private Handler okHttp

使用 fetch() 函数和 Response 对象的示例,创建一个新的 Response 对象来模拟一个自定义响应

在这个示例中,我们首先使用 fetch() 发起一个GET请求到 apiURL。如果响应状态码表示成功(即 response.ok 为 true),我们将响应体转换为JSON。 然后,我们创建一个新的 Response 对象 newResponse,其中包含自定义的JSON字符串和一些自定义的响应头。这个新的 Response 对象具有200状态码和"OK"状态信息。 最后,我们解析这个新的 Re

HttpServletRequest接口中常用方法

HttpServletRequest接口继承于ServletRequest接口。HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,http请求头中的所有信息都封装在这个对象中,通过HttpServletRequest提供的方法可以获得客户端请求的所有信息。 例如,客户端请求的地址是:http://www.xinjun.com/abou

webflux源码解析(5)-response处理

目录 1. 说明2. response的处理3. response的适配 1. 说明 之前的文章前后梳理了接收connection中的msg、将msg转成request、处理request的主流程,当业务代码执行完毕后,对response会有一段处理逻辑,本文对其进行梳理。 2. response的处理 还是核心类 DispatcherHandler (可参考webflux源

为什么AVL fire DVI 界面里面的response Editor project 中的Summary result 点不了???

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述   为什么AVL fire DVI 界面里面的response Editor project 中的Summary result 点不了??