求教java程序怎么向网页java 服务器性能数据发送请求

> Java视频下载
Java基础教程_实现多线程处理客户端请求
类型:java
适合对象:Java学员、Java爱好者、开发人员
【多线程处理请求】(1)当前服务器存在的问题:&A、当前服务器程序是单线程,只有一个 main 方法,只有一个主线程在运行&B、当多个用户同时发送请求的时候,服务器在同一时间点只能处理一个请求&C、这样会导致用户排队等待的现象(2)解决方法:&A、为了让服务器能够同时处理多个请求,可以引入一个线程处理一个请求&B、多线程并发接收用户的请求,请求 A 和请求 B 之间互不干扰,互不等待,在内存角度来说,会有多个栈内存同时运(3)在 core 包下定义 HandlerRequest 类实现 Runnable 接口,实现 run方法,在 run 方法中处理当前请求&A、因为定义单独的线程处理请求,处理请求时需要客户端套接字对象(一个请求会对应一个客户端套接字对象),所以线程类需要含有客户端套接字对象的引用private Socket clientSocket = new Socket();public HandlerRequest(Socket clientSocket){this.clientSocket = clientS}public void run(){//获取当前线程名称,记录开启线程日志Logger.log(Thread.currentThread().getName()+”handler request”);Thread.sleep(1000*60);//处理请求}(4)修改 BootStrap.java 在接收到客户端套接字对象之后&A、创建线程对象,将客户端套接字对象传递给该线程new Thread(new HandlerRequest(clientSocket)).start();&B、*将接收和读取客户端消息的代码注释掉,以后要在 HandlerRequest 中处理(5)启动服务器,测试服务器是否支持多线程并发处理注:目前只要用户发送一次请求,则创建一个新的线程,这其实是一种不太好的设计方案,大家有时间可以设计一个线程池,这样可以提高访问效率。
关注微信获取学习资料与教学视频
全国免费电话400-
动力节点动力节点Java培训口碑最好的Java培训机构,被誉为“口口相传的Java培训黄埔军校。”Java框架视频教程第20讲 使用HttpRequester模拟http请求_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Java框架视频教程第20讲 使用HttpRequester模拟http请求
总评分0.0|
&&Java视频教程课程分类:Java框架,适合人群:中级,共52课时,用到技术:JavaBean、Spring3.X、SpringMVC、Hibernate3.X、Apache HttpClient 3.x、JUnit4.x、自定义Annotation + java反射技术,Java框架视频教程涉及项目:移动支付平台间接口
阅读已结束,下载本文到电脑
定制HR最喜欢的简历
你可能喜欢使用HttpURLConnection请求multipart/form-data类型的form提交_Java教程_动态网站制作指南
使用HttpURLConnection请求multipart/form-data类型的form提交
来源:人气:3302
使用HttpURLConnection请求multart/form-data类型的form提交写一个小程序,模拟HttpPOST请求来从网站中获取数据。使用Jsoup(http://jsoup.org/)来解析HTML。Jsoup封装了HttpConnection的功能,可以向服务器提交请求。但分析了目标网站(http://rapdb.dna.affrc.go.jp/tools/converter/run)的数据提交方式后,决定自己用代码来模拟Content-type为 multipart/form-data的form表单提交。1、HttpURLConnection:AURLConnectionwithsupportforHTTP-specificfeatures.一个可以支持HTTP的URL连接。connection.setRequestMethod("POST");connection.setConnectTimeout(5 * 60 * 1000);connection.setReadTimeout(5 * 60 * 1000);connection.addRequestoperty(&User-Agent&, &Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) /41.0. Safari/537.36&);connection.addRequestProperty("Content-Type", "multipart/form- boundary=--testsssssss");//若需要向服务器请求数据,需要设定为true,默认为falseconnection.setDoOutput(true);//若提交为post方式,需要修改为falseconnection.setUseCaches(false);//向报务器连接Connection.connect();output = connection.getOutputStream();//向服务器传送post数据output.write(bodyStr.getBytes());向服务器发送请求后,服务器应该能接收到类似的数据:POST /test HTTP/1.1Accept-Language: zh-CN,q=0.8//connection.addestProperty设定的Http请求头信息User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0. Safari/537.36Accept: text/html,/xhtml+,application/q=0.9,image/webp,*/*;q=0.8Content-Type: multipart/form- boundary=--testsssssssCache-Control: no-cachePragma: no-cacheHost: localhostConnection: keep-alive//Http请求的正文大小,未手工设定,程序自动生成?Content-Length: 224--HrOGHuIjDhR_gtUesEBnpWxVp9JH209pContent-Disposition: form- name="key"test--HrOGHuIjDhR_gtUesEBnpWxVp9JH209pContent-Disposition: form- name="submit"Convert--HrOGHuIjDhR_gtUesEBnpWxVp9JH209p--2、向服务器请求数据时常用的方式:GET:当form提交时,请求参数拼接在URl上,使用&来分隔。POST:提交form时,请求参数封装在请求body中,可传递大批量数据。请求时数据封装类型有很多种(http://en.wikipedia.org/wiki/Internet_media_type),常用的不多:application/x-www-form-urlencoded默认的提交方式,同GET类似,将参数组装成Key-value方式,用&分隔,但数据存放在body中提交multipart/form-data 这种方式一般用来上传文件,或大批量数据时。  该网站的提交方式为post,MIME类型为multipart/form-data类型。需要组装相应的数据。  该类型的数据提交时需要在HTTP请求头中的content-type添加boundary字段,正文的数据就以该字段来区分:  //boundary为--testsssssssconnection.addRequestProperty("Content-Type", "multipart/form- boundary=--testsssssss");  在封装Http请求的Body中,要以boundary来区分开各个字段:String mimeBoundary = "--testsssssss";StringBuffer sb = new StringBuffer();//在boundary关需添加两个横线sb = sb.append("--").append(mimeBoundary);sb.append("\r\n");sb.append("Content-Disposition: form- name=\"keyword\"");//提交的数据前要有两个回车换行sb.append("\r\n\r\n");sb.append(queryText);sb.append("\r\n");//第二个提交的参数sb.append("--").append(mimeBoundary);sb.append("\r\n");sb.append("Content-Disposition: form- name=\"submit\"");sb.append("\r\n\r\n");sb.append("Convert");sb.append("\r\n");//body结束时 boundary前后各需添加两上横线,最添加添回车换行sb.append("--").append(mimeBoundary).append("--").append("\r\n");  若提交的数据为文件或图片类型,需要读取文件内容。http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2 3、jsoup解析数据:  jsoup解析HTML代码的方式类似于script。  可以将HttpUrlConnection接收到的html字符串来组装 Document:  Document doc = Jsoup.parse(html);//获取html中id为tools_converter的元素//假设html代码如:&a id="tools_converter" href="http://localhost"&测试&/a&Element element = doc.getElementById("tools_converter");//可获取text的数据为:测试String text = element.text();//可获得attr的数据为:http://localhostString attr = element.attr("href");//也可以直接使用Jsoup封装的HttpConnection来请求数据器:Document document = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0. Safari/537.36").get();  Jsoup提供的部分方法如下:  getElementsByTag(String):按Tag标签来获取:Elements divs = document.getElementsByTag("div")  getElementById(String):按id标签来获取:Element idEle = document.getElementById("blogId")  getElementsByClass(String):按的Class名称来获取:Elements divs = document.getElementsByClass("redClass")  children():返回Elements,某元素的所有子元素。  child(int index):返回Element,某元素的第几个子元素:  参考Jsoup API    链接:  JDK中的URLConnection参数详解
优质网站模板求教java程序怎么向网页服务器发送请求_百度知道
求教java程序怎么向网页服务器发送请求
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
来自电脑网络类芝麻团
采纳数:26427
获赞数:32831
参与团队:
POST方式发送请求示例:
String fullurl =
//打开连接
URLConnection conn =new URL(fullurl).openConnection();
//设置通用的请求属性
conn.setRequestProperty(&accept&, &*/*&);
conn.setRequestProperty(&connection&, &Keep-Alive&);
conn.setRequestProperty(&user-agent&, &Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36&);
//发送POST请求必须设置下面两行
conn.setDoInput(true);
conn.setDoOutput(true);
//获取URLConnection对象对应的输出流
PrintWriter out = new PrintWriter(conn.getOutputStream());) {
out.print(parm);//发送请求参数(key1=value1&key2=value2)
out.flush();//flush输出流的缓冲
} catch (Exception e) {}
//获取响应头字段
Map&String, List&String&& map = conn.getHeaderFields();
//根据输入流读取响应数据
InputStream is = conn.getInputStream();
来自电脑网络类芝麻团
采纳数:408
获赞数:618
参与团队:
servlet、struts2、springmvc这几种都能实现
为你推荐:
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。黑马程序员javaweb教程:HttpServletRequest请求转发_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
黑马程序员javaweb教程:HttpServletRequest请求转发
传智播客是一家覆盖全国17所城市,成立超过1...|
总评分0.0|
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩1页未读,
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 java http服务器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信