- 浏览: 414761 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (267)
- 序列号 (1)
- jquery (14)
- Eclipse插件 (3)
- Flex (2)
- Rose (1)
- Myeclipse (3)
- maven (4)
- SpringSecurity (2)
- sproutcore (1)
- Http (2)
- svn (4)
- gwt (3)
- jetty (1)
- freebsd (1)
- java (29)
- Oracle (21)
- windows (1)
- Mybatis3.0 (3)
- Struts2 (6)
- easyui (1)
- JPA (1)
- UML (1)
- dom4j (1)
- design pattern (2)
- JavaScript (8)
- FreeMarker (2)
- SQLServer (1)
- memcached (3)
- urlrewrite (1)
- MonggoDB (1)
- Solr (1)
- Lucene (1)
- SQL (2)
- JODConverter (1)
- xml (2)
- pdf2swf (1)
- flexpaper (1)
- android (2)
- jsp (5)
- mobile (1)
- weblogic (3)
- Tomcat (8)
- xss (1)
- db2 (2)
- webservice (1)
- spring (2)
- Gradle (1)
- linux (4)
- ldap (1)
- 软件工程 (1)
- 开发模型 (1)
- linux系统硬件配置查看方法 (1)
- cas (3)
- mysql (1)
- HAProxy (0)
- html (1)
- Web前端 (1)
最新评论
-
super_zou:
...
世界主要国家地区下拉菜单三级联动1 -
ldl_xz:
http://www.9958.pw/post/wenku 曾 ...
利用pdf2swf将PDF转换成SWF -
superlxw1234:
请教一下楼主,你们是如何解决使用MAgent时候,一台主Mem ...
memcached集群-magent -
头子:
中间那段关于“空隙”的解决方式很赞
HTML固定表头Table -
qiankun:
比较实用,好好学习了一下
Mybatis 在dao中获取分页的总记录数
有的时候,会需要使用java的程序访问网页,正常的访问网页的程序很多,也没有什么可讲的,在这里主要说明一下如何使用java的访问网页时,需要登录时,如何保持登录的程序。
先简单讲解一下原理:实际上网页和服务器是两套应用,客户端访问服务器一次,实际上网页获取后,连接立即就断了,这样的话,说明服务器是不会保持长
效连接的,但是在现实情况登录的话,客户端好像一直在保留连接,那么这种情况就和先前模式似乎不同;当然不是,断开连接是整个B/S架构的根本原理所在,
因此怎么去保持这些连接,实际上就是利用Cookie,访问网页时,每次网页的服务器会产生一个Cookie,记录当前网页的一个键值,如果使用登录了
后,服务器端的Session就会和客户端的一个Cookie产生连接,这样每次给这个页面发送客户端的Cookie所记录的Session的标识,即可
完成登录的模拟。
代码如下:
URL url = new URL("网页"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true);//允许连接提交信息 connection.setRequestMethod("POST");//网页提交方式“GET”、“POST” connection.setRequestProperty("User-Agent", "Mozilla/4.7 [en] (Win98; I)"); StringBuffer sb = new StringBuffer(); sb.append("username=admin"); sb.append("&password=admin"); OutputStream os = connection.getOutputStream(); os.write(sb.toString().getBytes()); os.close(); BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); String responseCookie = connection.getHeaderField("Set-Cookie");//取到所用的Cookie System.out.println("cookie:" + responseCookie); String line = br.readLine(); while (line != null) { System.out.println(new String(line.getBytes())); line = br.readLine();//打出登录的网页 } //acces URL url1 = new URL("网页的登录后的页面"); HttpURLConnection connection1 = (HttpURLConnection) url1.openConnection(); connection1.setRequestProperty("Cookie", responseCookie);//给服务器送登录后的cookie BufferedReader br1 = new BufferedReader(new InputStreamReader(connection1.getInputStream())); String line1= br1.readLine(); while (line1 != null) { System.out.println(new String(line1.getBytes())); line1 = br1.readLine(); }
不过现在很多网站都是用了网页的Token机制,也就是说每个页面都会产生一个唯一键值,而且再加上登录的验证码的过程,这样很多网页的程序就不能再单纯的使用这个网页登录了,但是这个机制可以让大家明白怎么去保持客户端Session的连接过程。
发表评论
-
JAVA8 最新电子书集合
2017-12-18 11:41 483JAVA8 最新电子书集合 Advanced_topic ... -
前端知识体系
2017-12-05 15:23 361转自:http://www.cnblogs.com/sb1 ... -
启用了不安全的HTTP方法
2017-02-09 11:39 1272启用了不安全的HTTP方 ... -
java 运行 jar classpath配置
2017-01-09 15:16 392按照developrworks上说的: http:/ ... -
2016最流行的Java EE服务器
2016-11-30 13:45 365如今是我们发布有关Java领域统计资料的第四个年头。每年春天 ... -
HttpServletRequest 方法详解
2016-11-30 13:40 758request.setCharacterEncoding ... -
HTTP响应头信息和请求头信息详解
2016-11-30 11:16 420web性能测试中有一个web ... -
使用Java操作LDAP案例
2016-11-28 15:40 22811 案例描述 公司平台使用LDAP来储存企业或用户的信息,在 ... -
解决不同浏览器下载文件名中文不能正常显示的问题
2016-07-21 14:43 599if (request.getHeader(" ... -
CXF、Restlet、RESTEasy、Jersey对比
2016-05-09 09:31 1590CXF、Restlet、RESTEasy、Jersey对比 ... -
java垃圾收集解析
2016-03-15 16:28 365名称 查找对象 垃圾 ... -
java获取客户端的IP地址
2016-03-14 13:46 995在JSP里,获取客户端的IP地址的方法是:request. ... -
Tomcat性能调优方案
2015-07-10 13:02 902Tomcat性能调优方案 一 ... -
JVM内存配置说明
2015-07-03 13:28 607-Xms512m -Xmx1024m 1. -Xmx ... -
java网络代理
2015-03-10 10:13 534import java.io.IOException; i ... -
iframe 跨域
2014-08-12 10:50 478业务需求要将a系统嵌 ... -
http代理
2014-05-09 09:53 1024import java.io.IOException; ... -
java二维码生成与解析代码实现
2014-01-01 22:16 9115TwoDimensionCode类:二维码操作核心类 pa ... -
二维码、QR码、J4L-QRCode、java
2014-01-01 22:08 3419开源码 Java 解码器(编码解码)下载:http://so ... -
JSP 页面缓存以及清除缓存
2013-12-14 10:30 888JSP 页面缓存以及清除 ...
相关推荐
在Java编程中,`java.net.HttpURLConnection`是用于处理HTTP协议的基本类,它提供了一种与HTTP服务器通信的简单方式。下面将详细讲解如何使用`HttpURLConnection`进行网页内容获取、Cookie管理以及POST方式的数据...
1. **创建URL对象**:使用`java.net.URL`类的构造函数,传入目标网页的URL字符串来创建URL对象。 2. **打开连接并获取页面内容**:使用`openStream()`方法打开与URL的连接,并获取网页的HTML内容。这一步通常涉及到...
1. JAVA HttpClient库的使用 2. HTTPS协议的使用 3. SSL/TLS证书的使用 4. X509TrustManager的使用 5. DefaultHttpClient类的使用 6. HttpClient的自定义 7. POST请求的发送 8. 请求头和请求体的指定 9. HTTPS服务器...
在Java中,我们通常使用`java.net.URL`和`java.net.HttpURLConnection`来发送GET请求。以下是一个简单的示例: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net....
本篇文章将详细讲解如何使用Java的内置类`java.net.URL`和相关API来实现这个功能。 首先,我们需要理解`URL`(Uniform Resource Locator)的概念。URL是统一资源定位符,它是互联网上的资源的唯一地址。例如,一个...
import java.net.URL; public class ImitateLoginController { public static void main(String args[]) throws Exception { // 登陆接口地址 String loginStr = ...
基于C#.NET版本其模仿基于来自JAVA功能 。 有关更多信息,另请参见以下WIKI页面: 。 主要特点 HTTP响应存根,可在URL /路径,标题,cookie和主体内容模式上匹配 库可用于单元测试和集成测试 作为独立进程,...
在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来实现GET请求。以下是一个简单的示例,展示了如何使用GET方法下载服务器上的图片: ```java import java.io.InputStream; import java.net.URL;...
Java提供了`java.net.URL`类来处理URL,`java.net.HttpURLConnection`或第三方库如Apache HttpClient来实现HTTP通信。 **4. HTML解析** 浏览器需要解析接收到的HTML内容,并将其渲染成可视化的页面。Java可以使用...
在Java中,我们可以使用`java.net.URL`类来处理URL,以及`java.net.HttpURLConnection`或`java.net.URLConnection`类来发起HTTP请求。这些类允许我们连接到服务器,发送GET请求,接收响应,并读取返回的数据。 1. *...
2. **URL和HTTP请求**:为了加载网页,Java程序需要使用`java.net.URL`类来表示网页地址,并通过`HttpURLConnection`或第三方库如Apache HttpClient发送HTTP请求,获取网页内容。 3. **HTML解析**:加载的网页内容...
2. **HTTP协议处理**:如果"bot.jar"涉及到网页抓取或网页交互,那么可能使用了`java.net.HttpURLConnection`或者第三方库如Apache HttpClient或OkHttp。这些库允许Java程序发送GET、POST等HTTP请求,并处理响应。 ...
import java.net.URL; public class FileUploader { public static void uploadFile(String serverUrl, File file) throws IOException { HttpURLConnection connection = null; DataOutputStream outputStream ...
在Java中,实现FTP服务器可能需要使用`java.net.ServerSocket`监听客户端连接,`java.net.Socket`处理每个客户端的请求,以及自定义数据流处理来实现FTP命令的解析和响应。通常,服务器端需要处理如USER、PASS(用户...
本文将详细介绍如何使用Java和HttpClient来模拟HTTPS文件上传,并跳过SSL验证。 首先,我们需要导入必要的依赖。如果你使用的是Maven项目,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.apache....
- **HTTP客户端示例**:使用`java.net.HttpURLConnection`类实现一个简单的HTTP客户端,模拟浏览器向服务器发送GET或POST请求,获取资源或提交数据。 - **TCP/IP Socket示例**:通过`java.net.Socket`和`java.net....
下面是一个简单的Java程序,使用`java.net`库从URL获取HTML并将其打印到控制台: ```java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import ...
在Java中,可以使用`java.net.Socket`类进行TCP连接,或者使用`java.net.URL`和`java.net.URLConnection`处理HTTP请求。文件下载则相反,是从服务器获取文件并保存到本地。 **FTP**,全称为文件传输协议,是一种...
import java.net.URL; import java.net.URLConnection; public class Spider { public static void main(String[] args) { String filepath = "d:/124.html"; String url_str = "http://www.hao123.com/"; URL ...