- 浏览: 146600 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (95)
- java (25)
- 数据库 (9)
- js (0)
- 框架 (10)
- 小问题 (8)
- 转载 (2)
- 配置开发环境 (6)
- 其它 (4)
- 功能记录 (2)
- 安全 (1)
- shell (3)
- spring ibaitis struts2 redis desc (1)
- spring security3.1 (1)
- 小问题 环境 (1)
- 小问题 环境 DelegatingFilterProxy cannot be cast to Filter (0)
- redis filter java (1)
- java redis (2)
- spring quartz 集群 批处理 (1)
- java mybatis (1)
- Junit soap (1)
- mock junit (0)
- mock junit spring (1)
- java jsoup (0)
- jsoup (1)
- python27 pycharm (1)
- maven pom (1)
- java log (1)
- mybatis 分页 (1)
- mysql (1)
- 业务 (1)
- java 测试 (1)
- java zookeeper 批处理 (1)
- hive hadoop (1)
- hive (1)
- hadoop (1)
- maven archetype (1)
- python rsa (1)
- python 页面分析 (1)
- python (0)
最新评论
-
wuyafeng123:
秒杀活动设计思路 -
indiajohns:
非常感谢,很快解决了我的问题
jmesa查询条件中文的编码转换问题 -
yujiaao:
太好了,感谢啊!这行在我这好象不行:URLDecoder.de ...
jmesa查询条件中文的编码转换问题 -
michael_wong:
呵呵,找到啦。在这里有全部源码:http://ishare. ...
Maven权威指南 的simple-parent 工程源码 -
michael_wong:
我也在找啊
Maven权威指南 的simple-parent 工程源码
新老系统同时运行,在请求发往新系统时,通过filter方式吧request中的参数转发到老系统中,老系统返回的页面中的token被找出并保留,在提交form并再转发到老系统时重新写入。
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ConnectUrlTool {
private HttpServletRequest request;
private HttpServletResponse response;
private HttpURLConnection urlconn;
private String address;
private int timeOut=3000000;
private String sessionId;
private String tokenId;
private String params;
public ConnectUrlTool(){
}
public void setInfo(HttpServletRequest request,HttpServletResponse response,boolean addToken){
this.request=request;
this.response=response;
ParamTools paramTools = new ParamTools();
paramTools.initParam(request);
if(!addToken){
this.tokenId=null;
}
else if(null!=this.tokenId && addToken){
paramTools.addParam("org.apache.struts.taglib.html.TOKEN", this.tokenId);
}
this.params=paramTools.getUrlValue();
}
/**
* 发送参数params (like a=ds&b=asd&),地址为:address(like http://www.sina.com.cn)
* @param address
* @throws IOException
*/
public void sendToOld(String address)throws IOException{
this.address=address;
BufferedInputStream bis =sendRequest(params);
byte[] buffer = new byte[8092];
StringBuffer sb=new StringBuffer("");
int bytesRead = 0;
while ((bytesRead = bis.read(buffer)) != -1) {
String chunk = new String(buffer, 0, bytesRead);
// System.out.print(chunk);
sb.append(chunk);
}
getTokenId(sb.toString(),"org.apache.struts.taglib.html.TOKEN");
if(bis!=null)
{
bis.close();
}
urlconn.disconnect();
}
/**
* 返回的数据在BufferedInputStream
* @param params
* @return
* @throws IOException
*/
private BufferedInputStream sendRequest(String params) throws IOException
{
URL url = new URL(address);
urlconn= this.getHttpConnect(address);
urlconn.setDoOutput(true);
urlconn.setRequestMethod("POST");
urlconn.connect();
BufferedInputStream bis = null;
OutputStream os = urlconn.getOutputStream();
os.write(params.toString().getBytes("utf-8"));
os.flush();
os.close();
int code = urlconn.getResponseCode();
System.out.println("error code "+ code);
if(code == HttpURLConnection.HTTP_OK)
{
bis = new BufferedInputStream(urlconn.getInputStream());
}
return bis;
}
/**
* 创建连接对象
* @param url
* @return
* @throws UnknownHostException
*/
private HttpURLConnection getHttpConnect(String url) throws UnknownHostException
{
try
{
urlconn = (HttpURLConnection)new URL(url).openConnection();
urlconn.setConnectTimeout(timeOut);
urlconn.setReadTimeout(timeOut);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
if (urlconn == null)
throw new UnknownHostException();
return urlconn;
}
/**
* 从返回的页面中找到input 的name对应的value的值
* @param str
* @param name
*/
private void getTokenId(String str,String name){
String tokenId="";
String[] splitStr=str.split("<");
boolean find=false;
for(int i=0;i<splitStr.length;i++){
delKg(splitStr[i]);
String[] temp=splitStr[i].split(" ");
int len=0;
if(temp[0].equalsIgnoreCase("input")){
for(int j=0;j<temp.length;j++){
String[] temp1=temp[j].split("=");
for(int k=0;k<temp1.length;k++){
if(temp1[0].length()==4 && temp1[0].substring(0, 4).equalsIgnoreCase("name")){
String[] temp2=temp1[1].split("\"");
if(temp2[1].equalsIgnoreCase(name)){
len=i;
}
}
if(len==i)break;
}
if(len==i)break;
}
if(len==0)continue;
for(int j=0;j<temp.length;j++){
String[] temp1=temp[j].split("=");
for(int k=0;k<temp1.length;k++){
if(temp1[0].length()==5 && temp1[0].substring(0, 5).equalsIgnoreCase("value")){
String[] temp2=temp1[1].split("\"");
this.tokenId=temp2[1];
break;
}
}
}
if(len==i)break;
}
}
}
private String delKg(String a){
a = a.trim();
while(a.startsWith(" ")){
a = a.substring(1,a.length()).trim();
}
while(a.endsWith(" ")){
a = a.substring(0,a.length()-1).trim();
}
return a;
}
}
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ConnectUrlTool {
private HttpServletRequest request;
private HttpServletResponse response;
private HttpURLConnection urlconn;
private String address;
private int timeOut=3000000;
private String sessionId;
private String tokenId;
private String params;
public ConnectUrlTool(){
}
public void setInfo(HttpServletRequest request,HttpServletResponse response,boolean addToken){
this.request=request;
this.response=response;
ParamTools paramTools = new ParamTools();
paramTools.initParam(request);
if(!addToken){
this.tokenId=null;
}
else if(null!=this.tokenId && addToken){
paramTools.addParam("org.apache.struts.taglib.html.TOKEN", this.tokenId);
}
this.params=paramTools.getUrlValue();
}
/**
* 发送参数params (like a=ds&b=asd&),地址为:address(like http://www.sina.com.cn)
* @param address
* @throws IOException
*/
public void sendToOld(String address)throws IOException{
this.address=address;
BufferedInputStream bis =sendRequest(params);
byte[] buffer = new byte[8092];
StringBuffer sb=new StringBuffer("");
int bytesRead = 0;
while ((bytesRead = bis.read(buffer)) != -1) {
String chunk = new String(buffer, 0, bytesRead);
// System.out.print(chunk);
sb.append(chunk);
}
getTokenId(sb.toString(),"org.apache.struts.taglib.html.TOKEN");
if(bis!=null)
{
bis.close();
}
urlconn.disconnect();
}
/**
* 返回的数据在BufferedInputStream
* @param params
* @return
* @throws IOException
*/
private BufferedInputStream sendRequest(String params) throws IOException
{
URL url = new URL(address);
urlconn= this.getHttpConnect(address);
urlconn.setDoOutput(true);
urlconn.setRequestMethod("POST");
urlconn.connect();
BufferedInputStream bis = null;
OutputStream os = urlconn.getOutputStream();
os.write(params.toString().getBytes("utf-8"));
os.flush();
os.close();
int code = urlconn.getResponseCode();
System.out.println("error code "+ code);
if(code == HttpURLConnection.HTTP_OK)
{
bis = new BufferedInputStream(urlconn.getInputStream());
}
return bis;
}
/**
* 创建连接对象
* @param url
* @return
* @throws UnknownHostException
*/
private HttpURLConnection getHttpConnect(String url) throws UnknownHostException
{
try
{
urlconn = (HttpURLConnection)new URL(url).openConnection();
urlconn.setConnectTimeout(timeOut);
urlconn.setReadTimeout(timeOut);
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
if (urlconn == null)
throw new UnknownHostException();
return urlconn;
}
/**
* 从返回的页面中找到input 的name对应的value的值
* @param str
* @param name
*/
private void getTokenId(String str,String name){
String tokenId="";
String[] splitStr=str.split("<");
boolean find=false;
for(int i=0;i<splitStr.length;i++){
delKg(splitStr[i]);
String[] temp=splitStr[i].split(" ");
int len=0;
if(temp[0].equalsIgnoreCase("input")){
for(int j=0;j<temp.length;j++){
String[] temp1=temp[j].split("=");
for(int k=0;k<temp1.length;k++){
if(temp1[0].length()==4 && temp1[0].substring(0, 4).equalsIgnoreCase("name")){
String[] temp2=temp1[1].split("\"");
if(temp2[1].equalsIgnoreCase(name)){
len=i;
}
}
if(len==i)break;
}
if(len==i)break;
}
if(len==0)continue;
for(int j=0;j<temp.length;j++){
String[] temp1=temp[j].split("=");
for(int k=0;k<temp1.length;k++){
if(temp1[0].length()==5 && temp1[0].substring(0, 5).equalsIgnoreCase("value")){
String[] temp2=temp1[1].split("\"");
this.tokenId=temp2[1];
break;
}
}
}
if(len==i)break;
}
}
}
private String delKg(String a){
a = a.trim();
while(a.startsWith(" ")){
a = a.substring(1,a.length()).trim();
}
while(a.endsWith(" ")){
a = a.substring(0,a.length()-1).trim();
}
return a;
}
}
发表评论
-
详解ReentrantReadWriteLock
2016-04-21 14:34 0package java.util.concurrent. ... -
java内部类使用场景体会
2016-04-21 11:56 966内部类的作用: 1.完善多重继承。 疑问在于:多重继承可以用 ... -
logBack用法,记录
2015-11-24 15:37 10301. Logback使用手册 系统中的日志采用 slf4j ... -
表产生sequence功能,测试并发
2015-11-18 16:21 661@Test public void testSerial ... -
Demo
2014-11-03 21:20 0package com.xly.jsoup.nbjy; /* ... -
反射小计
2014-10-07 11:32 529Test.java方法dd重载 class Test{ ... -
Btrace测试
2014-07-17 17:56 641偶尔看到BTrace,必须记录一下 利用hotSpot虚拟机 ... -
java对象占用heap的大小
2013-07-31 10:09 952一个对象占用的堆空间首先是和它有多少个成员变量直接相关 pub ... -
BeanCopier和BeanUtils实现对象复制,处理date类型
2013-03-29 12:52 4496没有废话 先是BeanUtils的实现类型: impo ... -
liferay 为JournalArticle添加分类
2013-03-21 15:45 1114/** * 为网页内容添加分类 ... -
liferay直接跳转到网页内容编辑页面修改的friendlyUrl效果
2013-03-21 14:11 1266找到portlat-impl.jar包,在目录 port ... -
JMS_DEMO
2013-03-14 20:25 15211.安装activeMq 修改service.pr ... -
Xmemcached/jedis springdemo
2013-02-20 13:13 932Xmemcached: HelloWordTest.ja ... -
规则检查功能的demo
2013-01-31 12:55 0规则检查Demo,包括mina,线程池功能 -
使用spring的线程安全web应用(翻译Thread-safe webapps using Spring)
2013-01-11 16:38 1919http://www.javalobby.org/articl ... -
JAVA虚拟机锁机制的升级流程
2013-01-08 14:52 2882http://ifeve.com/java-synchroni ... -
NIO学习
2012-11-27 11:49 1515最需要关注的是,应用进程、内核、IO三个概念。 所谓java的 ... -
Tomcat的HttpConnector/HttpProcesser(tomcat源码学习)
2012-11-21 10:47 1273先启动进程HttpProcesser,等请求到达后加入sock ... -
web.xml加载
2011-02-18 17:24 916转: web.xml文件内容加载顺序为:context- pa ... -
webLogic中 Cannot parse POST parameters of request: 的问题小记
2010-11-25 13:25 7833报错内容: weblogic.utils.NestedRunt ...
相关推荐
标题"JavaScript获取链接url参数并生成对象"指出了我们需要从URL中提取这些参数,并将它们组织成一个JavaScript对象。这个对象的键将是参数名,值将是对应的参数值。这样做可以方便地对参数进行操作,如遍历、修改或...
- 使用`new URL(url)`创建一个URL对象,然后调用`openConnection()`方法打开到该URL的连接。 - `getResponseCode()`方法获取HTTP响应的状态码,200表示请求成功。 3. **重试机制**: ```java int counts = 0; ...
通过`URL`类,我们可以创建一个URL对象,然后使用`openConnection()`方法打开与该URL的连接。 ##### 创建`URL`对象 创建`URL`对象时,可以使用不同的构造函数,例如: ```java URL aURL = new URL("http", ...
总结一下,根据URL获取页面截图是通过Java的`java.net.URL`和`java.awt.Robot`类实现的,它可以方便地获取并保存网页的视觉表示。这个功能在很多应用场景中都十分有用,比如自动化测试中验证网页布局,或者用于数据...
总结来说,Java中通过URL获取网络位置上的文件流涉及创建URL对象,建立连接,打开输入流,处理数据并关闭流。这个过程可以封装到工具类中,方便在不同场景下复用。在实际编程中,还需要考虑错误处理和性能优化。
通过使用 URLConnection 类,可以获取指定 URL 的内容,并读取输入流。在上面的代码中,我们使用了 URLConnection 类的 getInputStream() 方法来获取输入流,然后使用输入流读取网页内容。 三、使用 ...
Java URL转换工具是一种用于解析和处理URL的程序,它能够帮助开发者获取URL背后的真实地址,尤其是在面对重定向、参数编码等情况时。在Web开发中,URL(Uniform Resource Locator)是互联网资源的统一地址,它包含了...
这个工具可以解析这种格式的URL,并提取出其中的参数及其对应的值。 C#作为.NET框架的主要编程语言,拥有强大的字符串处理和网络编程库。在C#中,可以使用`System.Uri`类来解析URL,获取其各个部分,包括查询字符串...
这个RAR文件包含的"说明.txt"可能是详细的操作指南,而"根据URL获取因特网网页源文件"可能是一个Java源代码示例,用于演示如何实现这一功能。以下是对这个主题的详细讲解: 1. **网络编程基础**: 在Java中,进行...
本文将详细介绍一个在C#中用于后台访问URL并获取响应结果的方法:`GetURLResult`。该方法支持HTTP请求中的两种常见方法——GET和POST,并允许指定数据编码格式。这对于需要通过网络接口与远程服务器进行交互的应用...
在Java编程语言中,URL(Uniform ...通过URL对象,我们可以构建出对任何网络资源的引用,然后通过URLConnection进行连接、发送请求和接收响应。学习并熟练掌握这两个概念,将有助于开发者更好地处理各种网络编程任务。
在本案例中,"Java使用JavaBean封装和连接URL"涉及到如何利用JavaBean来处理网络请求,尤其是通过URL来获取网络资源。下面将详细阐述这个过程。 首先,JavaBean的创建通常包括以下步骤: 1. 创建一个公共类,此类应...
这个示例首先创建了一个URL对象,并使用该对象获取主机、协议、端口和路径信息。然后,通过调用`openConnection()`方法建立连接,并通过URLConnection对象获取资源的类型、最后修改时间和内容长度等信息。最后,通过...
你可以创建URL对象,解析字符串形式的URL,并通过该对象执行打开连接、读取数据等操作。 3. **HTTP 协议**: HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从Web服务器传输超文本到本地浏览器...
### Android中通过URL获取图片的方法解析 在Android开发过程中,经常需要从网络上加载图片到应用中。本文将详细介绍如何利用Java代码实现从一个给定的URL地址下载并转换为Bitmap对象的过程。此方法适用于各种...
标题中的“PB通过URL下载局域网或者互联网上的图片”是指使用PowerBuilder(PB)编程语言,通过HTTP或HTTPS协议的URL来实现从局域网或互联网上获取并下载图片资源的技术过程。在这个过程中,开发者通常会利用PB的...
本篇将详细讲解如何在Android应用中实现从网络URL获取并显示图片的功能。 首先,我们需要一个网络库来处理HTTP请求。常见的有Volley、OkHttp和Retrofit等。这里以OkHttp为例,它是一个高效的网络库,支持异步请求和...
这段代码会打开指定URL的连接,并获取到网页的输入流。 然后,我们需要解析HTML内容。Java中可以使用Jsoup库来解析HTML,它提供了一个易于使用的API来处理HTML文档。安装Jsoup后,我们可以这样做: ```java ...
在Android开发中,连接URL并获取HTML源码是常见的需求,比如用于网页抓取、网络数据解析等场景。本文将详细讲解如何在Android应用中实现这个功能,主要涉及URL连接和HTML源码解析两个核心知识点。 首先,Android...
压缩包中的"获取网络连接URL的视频长度.txt"文件可能包含了如何处理网络URL的示例代码,而"ws.zip"可能是另一个相关项目或库。为了获取具体实现,你需要解压并查看其内容。 总的来说,获取视频时长需要对Java的文件...