⑴ javaweb如何实现请求和响应
先来看一个流程图:
服务器处理请求的流程:
(1)服务器每次收到请求时,都会为这个请求开辟一个新的线程。
(2)服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载体!
(3)服务器还会创建response对象,这个对象与客户端连接在一起,它可以用来向客户端发送响应。
由流程图可以看出,在JavaWeb的请求与响应中,最重要的两个参数为request以及response,这两参数在Servlet的service( )方法中。
1、response概念:
response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来对客户端进行响应的,这说明在service()方法中使用response对象可以完成对客户端的响应工作。
response对象的功能分为以下四种:
(1)设置响应头信息
(2)发送状态码
(3)设置响应正文
(4)重定向
2、response响应正文
response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流,repsonse一共提供了两个响应流对象:
(1)PrintWriter out = response.getWriter():获取字符流;
(2)ServletOutputStream out = response.getOutputStream():获取字节流;
当然,如果响应正文内容为字符,那么使用response.getWriter(),如果响应内容是字节,例如下载时,那么可以使用response.getOutputStream()。
注意,在一个请求中,不能同时使用这两个流!也就是说,要么你使用repsonse.getWriter(),要么使用response.getOutputStream(),但不能同时使用这两个流。不然会抛出illegalStateException异常。
⑵ 大家好,我想问一下,如果用Java那么如何实现机器a收到的http请求由机器b响应, 总之就是如何
以servlet为例:
a的servlet收到请求,可以Redirect给b的servlet。
b处理完,如果是同步请求可以Redirect给a的jsp,如果是异步请求,直接返回个json就行了。
⑶ java http协议如何获取响应内容
用XStream可以将一个java对象序列化成一个xml文件,然后通过http请求将该文件发送过去,然后在另一个网站也用XStream将java对象反序列化回来。反之也是同理。
⑷ java的HTTP请求:返回的响应为乱码,转码根本不起作用,请看下面代码。跪求高手解答!
// 定义BufferedReader输入流来读取URL响应
in = new BufferedReader(new InputStreamReader(conn.getInputStream(),“UTF-8”));
⑸ java:有没有办法改变接收HTTP响应头
Respon se自己写相应头,按说中间件都给补充好了,想咋搞就咋搞
⑹ 怎样用JAVA实现模拟HTTP请求,得到服务器的响应时间等参数求答案
其实你有思路了啊。
问题简化一下:对一个ip,一个线程请求100次。该次请求的响应时间为调用httpClient前的响应时间减去接收到httpClient响应的时间。注意,本次请求是否有效要判断。平均响应时间和最大响应时间只不过是响应时间的统计而已,可以用数据库来做。
就是说数据库记录每次测试请求的响应时间,成功与否。统计数据最后出来。
⑺ 为什么java需要Http响应头等信息
因为现在很多JAVA应用是B/S架构,而B/S架构使用的是标准的http协议,该协议是传递信息的渠道,比较安全,几乎所有互联网所遵守的协议,故http在java中还是挺重要的。
⑻ java如何抓包获取http中的响应信息
ava程序需要设置proxy才能生效:
[java] view plain
String url="http://www.zuidaima.com/";
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("127.0.0.1", 8888));
URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection(proxy);
⑼ 怎样用JAVA实现模拟HTTP请求,得到服务器的响应时间等参数
问题简化一下:对一个ip,一个线程请求100次。该次请求的响应时间为调用httpClient前的响应时间减去接收到httpClient响应的时间。注意,本次请求是否有效要判断。平均响应时间和最大响应时间只不过是响应时间的统计而已,可以用数据库来做。
就是说数据库记录每次测试请求的响应时间,成功与否。统计数据最后出来。
只所以用多线程,是因为单线程顺序请求100次,不能模拟服务器真正的情况。
⑽ java中servlet在接受HttpURLConnection发送的参数后,如何响应,response什么
.setConnectTimeout() 指的是与请求网址的服务器建立连接的超时时间。
setReadTimeout() 指的是建立连接后如果指定时间内服务器没有返回数据的后超时。
503是错误码,能返回就说明服务器返回了response。超时指的是你指定的时间没有收到服务器的response。
不管哪种超时都不有状态码返回。因为返回是在response响应中的,而就是在设定的时间内没有收到响应,才会超时。如果出现超时的话会抛出一个异常。你可以catch超时异常,然后根据需要处理就行了。