javahttp实现的简单介绍

博主:adminadmin 2023-03-20 19:17:09 476

本篇文章给大家谈谈javahttp实现,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何用java实现HTTP长连接

tomcat9提供了一种叫webSocket的东西,可以实现这个,但是必须要使用tomcat9来支持

另外一个就是运用长轮询,就是前台给后台发一个请求, 然后后台一直不处理, 可以while循环或者sleep(1000), 每隔1秒去检查是否应该返回数据, 如果后台决定要刷新了, 就返回数据, 然后前台接收到返回数据后去刷新你要刷新的东西, 刷新完毕后如果需要, 再次发送这个请求。当然,为了不阻塞其它的ajax请求, 长轮询一般放在一个单独的iframe里

java 如何搭建http服务器

看你具体是想做什么,现在现成的开源的java的http服务器有很多,像tomcat之类的都有http服务器功能,如果你只是单纯的需要用的话,直接用tomcat就好了

但是如果你是做要自己用java实现一个http服务器的话就要稍微麻烦一点

http服务器,本质上还是基于tcpip协议的服务器,首先用java的ServerSocket监听一个端口(也可以使用开源的server组件,如quickserver之类的),然后对客户端发上来的数据进行处理,这里就需要了解一下http协议了,因为上来的数据,都是按照http协议来组织的,你需要将请求数据解析后,将响应数据组织成http的响应,发回给客户端。这样一个简单的http服务器就实现了。

但是这个请求和响应都有很多种类,一个完整的http服务器应该要都能够支持,所以这里面的工作量还是有一点的。

另外,上面说的http服务器只是一个静态的服务器,如果你想让你写的服务具有动态功能,那你的服务器还得提供javaee的容器功能,这样做下去,没准你也能写一个tomcat出来了……

http如何实现同时发送文件和报文(用java实现)

你用的servlet 还是别的框架?

选POST

选form-data

选body

选File

选文件

Send

// commons fileupload组件的情况下,servlet接收的数据只能是type=file表单元素类型,那么获取type=text类型,就可以使用parseRequest(request)来获取list,fileitem,判断isFormField,为true非file类型的。就可以处理了。下面是处理的部分代码:

DiskFileItemFactory factory = new DiskFileItemFactory();factory.setSizeThreshold(1024*1024);

String dirtemp = "c:";

File filedir = new File(dirtemp + "filetemp");

String str = null;if(!filedir.exists())filedir.mkdir();factory.setRepository(filedir);

ServletFileUpload upload = new ServletFileUpload(factory);

List list = upload.parseRequest(request);for(

int i = 0;ilist.size();i++)

{

FileItem item = (FileItem) list.get(i);

if (item.isFormField()) {

System.out.println(item.getString());

} else {

String filename = item.getName();

item.write(new File(request.getRealPath(dir), filename));

}

}

如何使用java实现基于Http协议的大文件传输

虽然在JDK的java.net包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。HttpClient是ApacheJakartaCommon下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。以下是简单的post例子:Stringurl="bbslogin2.php";PostMethodpostMethod=newPostMethod(url);//填入各个表单域的值NameValuePair[]data={newNameValuePair("id","youUserName"),newNameValuePair("passwd","yourPwd")};//将表单的值放入postMethod中postMethod.setRequestBody(data);//执行postMethodintstatusCode=httpClient.executeMethod(postMethod);//HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发//301或者302if(statusCode==HttpStatus.SC_MOVED_PERMANENTLY||statusCode==HttpStatus.SC_MOVED_TEMPORARILY){//从头中取出转向的地址HeaderlocationHeader=postMethod.getResponseHeader("location");Stringlocation=null;if(locationHeader!=null){location=locationHeader.getValue();System.out.println("Thepagewasredirectedto:"+location);}else{System.err.println("Locationfieldvalueisnull.");}return;}详情见:/developerworks/cn/opensource/os-httpclient/

java 如何实现 http协议传输

Java 6 提供了一个轻量级的纯 Java Http 服务器的实现。下面是一个简单的例子:

public static void main(String[] args) throws Exception{

 HttpServerProvider httpServerProvider = HttpServerProvider.provider();

 InetSocketAddress addr = new InetSocketAddress(7778);

 HttpServer httpServer = httpServerProvider.createHttpServer(addr, 1);

 httpServer.createContext("/myapp/", new MyHttpHandler());

 httpServer.setExecutor(null);

 httpServer.start();

 System.out.println("started");

}

static class MyHttpHandler implements HttpHandler{

 public void handle(HttpExchange httpExchange) throws IOException {

String response = "Hello world!";

httpExchange.sendResponseHeaders(200, response.length());

OutputStream out = httpExchange.getResponseBody();

out.write(response.getBytes());

out.close();

 }

}

然后,在浏览器中访问

javahttp实现的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、javahttp实现的信息别忘了在本站进行查找喔。