- 浏览: 143398 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 922内部类的作用: 1.完善多重继承。 疑问在于:多重继承可以用 ... -
logBack用法,记录
2015-11-24 15:37 10021. Logback使用手册 系统中的日志采用 slf4j ... -
表产生sequence功能,测试并发
2015-11-18 16:21 627@Test public void testSerial ... -
Demo
2014-11-03 21:20 0package com.xly.jsoup.nbjy; /* ... -
反射小计
2014-10-07 11:32 499Test.java方法dd重载 class Test{ ... -
Btrace测试
2014-07-17 17:56 606偶尔看到BTrace,必须记录一下 利用hotSpot虚拟机 ... -
java对象占用heap的大小
2013-07-31 10:09 917一个对象占用的堆空间首先是和它有多少个成员变量直接相关 pub ... -
BeanCopier和BeanUtils实现对象复制,处理date类型
2013-03-29 12:52 4395没有废话 先是BeanUtils的实现类型: impo ... -
liferay 为JournalArticle添加分类
2013-03-21 15:45 1064/** * 为网页内容添加分类 ... -
liferay直接跳转到网页内容编辑页面修改的friendlyUrl效果
2013-03-21 14:11 1221找到portlat-impl.jar包,在目录 port ... -
JMS_DEMO
2013-03-14 20:25 14791.安装activeMq 修改service.pr ... -
Xmemcached/jedis springdemo
2013-02-20 13:13 901Xmemcached: HelloWordTest.ja ... -
规则检查功能的demo
2013-01-31 12:55 0规则检查Demo,包括mina,线程池功能 -
使用spring的线程安全web应用(翻译Thread-safe webapps using Spring)
2013-01-11 16:38 1885http://www.javalobby.org/articl ... -
JAVA虚拟机锁机制的升级流程
2013-01-08 14:52 2842http://ifeve.com/java-synchroni ... -
NIO学习
2012-11-27 11:49 1471最需要关注的是,应用进程、内核、IO三个概念。 所谓java的 ... -
Tomcat的HttpConnector/HttpProcesser(tomcat源码学习)
2012-11-21 10:47 1233先启动进程HttpProcesser,等请求到达后加入sock ... -
web.xml加载
2011-02-18 17:24 891转: web.xml文件内容加载顺序为:context- pa ... -
webLogic中 Cannot parse POST parameters of request: 的问题小记
2010-11-25 13:25 7773报错内容: weblogic.utils.NestedRunt ...
相关推荐
通过使用 URLConnection 类,可以获取指定 URL 的内容,并读取输入流。在上面的代码中,我们使用了 URLConnection 类的 getInputStream() 方法来获取输入流,然后使用输入流读取网页内容。 三、使用 ...
js地址栏参数获取,并生成对象
//获得EditText对象 etGet.setText(result);//为EditText设置内容 } } catch (Exception e) {//捕获并打印异常 EditText etGet = (EditText)findViewById(R.id.etGet);//获得EditText对象 etGet....
2.要获取AccessKey及找准Endpoint,修改代码中相应的部分;3.点击即上传,只支持图片格式,成功后向前端返回上传后的图片路径。 下载后,把资源包解压到网站目录,访问upload.php即可,不要改动文件夹结构。 强调...
该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息。 当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将...
然后,使用 DriverManager.getConnection() 方法连接 SQL Server,获取 Connection 对象。最后,使用 Connection 对象创建 Statement 对象,执行 SQL 语句。 public class lianjie { Connection con = null; ...
* 将连接对象返回给由名字指定的连接池 * * @param name 在属性文件中定义的连接池名字 * @param con 连接对象 */ public void freeConnection(String name, Connection con) { DBConnectionPool pool = ...
调用URL对象的openConnection( )来获取HttpURLConnection对象实例: HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 设置HTTP请求使用的方法:conn.setRequestMethod("GET"); 设置连接超时,...
驱动程序名称为com.microsoft.jdbc.sqlserver.SQLServerDriver,数据库连接URL为jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname。 其次,通过JTDS JDBC Driver连接SQL Server数据库需要下载jtds-...
DBCP是一个依赖Jakarta commons-pool对象池机制的数据库连接池.DBCP可以直接的在应用程序中使用,Tomcat的数据源使用的就是DBCP;...出了连接数据库,还要提供一个获得数据源的方法和一个获取连接的方法;
* 通过url获取网页内容, * 解决中文乱码问题 * @param httpUrl * @return */ public static String downloadPage(String httpUrl) { StringBuffer pageBuffer = new StringBuffer(); URL pageUrl = ...
可以使用PreparedStatement对象插入或更新LOB,但需要使用locator才能获取LOB的值。由于存在这二个问题,因此,我建议使用locator的方法来插入、更新或获取LOB的值。 8、使用SQL92语法调用存储过程 在调用存储...
通过定义一个Android应用的URL对象,该对象拥有的openStream()方法可以读取URL对象中的输入流,该方法可以非常方便地读取服务器上的数据,并且存入Android系统自带的SQLite数据库,实现Android手机端的数据能够与...
连接成功后,我们使用Statement对象执行SQL语句,最后使用ResultSet对象获取查询结果。 五、错误处理 在上面的源代码中,我们使用try-catch语句来捕捉可能出现的异常。SQLException是JDBC API中定义的异常类型,...
AnyFo - 老妈 "老妈"背景 在各种系统中,都有可能会由程序自动的创建多个对...4. 同时支持连接不同URL的多个连接对象的统一管理 5. 调用极为方便,尽提供一个getConnection方法就完全满足程序需要 6. 配置极为简单
ResultSet 对象提供了next() 方法来移动到下一行数据,并提供了getXXX() 方法来获取当前行的数据。 二、Java 连接数据库的相关类 1. DriverManager 类 DriverManager 类是 Java 连接数据库的核心类。它提供了 get...
//获取连接对象,可以不声明 ResultSet rs = null; try { Statement st = c.createStatement();// 获取Staetment对象 rs = st.executeQuery(sql);// 执行操作 } catch (Exception e) { System.out....
//获取连接 TextBox tb = null; //显示文本的TextBox对象 StringBuffer sb = new StringBuffer(); //字符串缓冲 InputStream is = connection.openInputStream(); //获取输入流 int ch; while((ch = ...
Java建立HttpConnection连接的例子,支持在手机端运行的的Java小程序,通过建立HttpConnection连接,获取到文本信息并显示在屏幕上,相关的测试代码如下: ContentConnection connection = (ContentConnection) ...
JDBC连接数据库的标准步骤 1. 载入JDBC驱动程序(dbDriver) 2. 定义URL 3. 建立连接 4 创建Statement对象 5 执行查询或更新 6. 处理结果 7 关闭连接 实例java方式获取连接的一个方法