1.確保寫的類沒問題,java程序是先編譯,后執(zhí)行
創(chuàng)新互聯(lián)建站主營清水網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都app軟件開發(fā)公司,清水h5微信小程序搭建,清水網(wǎng)站營銷推廣歡迎清水等地區(qū)企業(yè)咨詢
2.打開cmd,進入該文件所在路徑,輸入javac -d 類名.java,對該java源文件編譯,生成class文件
3.再輸入java 類名 ,就可以運行這個程序了。
如果有多個類,需要寫個bat批處理文件,即同時運行多個java類、jar包、配置文件、資源文件。
package com.daidai.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtil {
private static SessionFactory sessionFactory;
public static SessionFactory getSessionFactory() {
Configuration conf=new Configuration().configure();
sessionFactory=conf.buildSessionFactory();
return sessionFactory;
}
public static void setSessionFactory(SessionFactory sessionFactory) {
HibernateUtil.sessionFactory = sessionFactory;
}
public static Session getSession(){
return sessionFactory.openSession();
}
}
package com.daidai.util;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
public class Util {
private static String Cellphone_Number;
private static String Cellphone_Number1;
private static String Cellphone_Number2;
private static String Fasten_Telephone;
private static String Fasten_Telephone2;
private static String name;
private static String remarks;
public static Sheet rs;
public Util(){}
static{
try{
Workbook rwb=Workbook.getWorkbook(new File("Book1.xls"));
rs=rwb.getSheet(0);
int count=rs.getColumns();
System.out.println(count);
int count1=rs.getRows();
System.out.println(count1);
//獲取第一行,第一列的值
//count1行
//count列
for(int i=0;icount1;i++){
for(int j=0;jcount;j++){
Cell c00 = rs.getCell(j, i);
String strc00 = c00.getContents();
//獲取第一行,第二列的值
Cell c10 = rs.getCell(1, 0);
String strc10 = c10.getContents();
System.out.println(strc00);
System.out.println(strc10);
}
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[]args){
Util u=new Util();
}
}
?xml version='1.0' encoding='utf-8'?
!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
""
hibernate-configuration
session-factory
property name="connection.driver_class"
com.mysql.jdbc.Driver/property
property name="connection.url"
jdbc:mysql://127.0.0.1:3306/test/property
property name="connection.username"
root/property
property name="connection.password"
daidai/property
!-- SQL dialect 數(shù)據(jù)庫方言--
property name="dialect"
org.hibernate.dialect.MySQLDialect/property
!-- Echo all executed SQL to stdout --
property name="show_sql"true/property
property name="hbm2ddl.auto"create/property
mapping resource="User.hbm.xml"/
/session-factory
/hibernate-configuration
?xml version="1.0" encoding="utf-8"?
!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
""
hibernate-mapping package="com.daidai.entity"
class name="User" table="t_user"
id name="id"
generator class="native"/
/id
property name="name" type="java.lang.String" length="15"/
property name="Cellphone_Number" type="java.lang.String" length="11"/
property name="Cellphone_Number1" type="java.lang.String" length="11"/
property name="Cellphone_Number2" type="java.lang.String" length="11"/
property name="Fasten_Telephone" type="java.lang.String" length="11"/
property name="Fasten_Telephone2" type="java.lang.String" length="11"/
property name="remarks" type="java.lang.String"/
/class
/hibernate-mapping
package com.daidai.dao.impl;
import com.daidai.util.*;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import com.daidai.dao.UserDAO;
import com.daidai.entity.User;
public class UserDAOImpl implements UserDAO {
public Session session=null;
public void save(User user) {
try {
session=HibernateUtil.getSession();
session.getTransaction().begin();
session.save(user);
session.getTransaction().commit();
} catch (HibernateException e) {
session.getTransaction().rollback();
e.printStackTrace();
throw e;
}
}
}
package com.daidai.dao;
import com.daidai.entity.User;
public interface UserDAO {
public void save(User user);
}
Wireshark數(shù)據(jù)包解析:在Wireshark中關于數(shù)據(jù)包的叫法有三個術(shù)語,分別是幀、包、段。
Wireshark分析數(shù)據(jù)包
在Wireshark中的數(shù)據(jù)包都可以稱為是網(wǎng)絡數(shù)據(jù)。每個網(wǎng)絡都有許多不同的應用程序和不同的網(wǎng)絡涉及。但是一些常見的包中,通常都會包括一些登錄程序和網(wǎng)絡瀏覽會話。
捕獲訪問網(wǎng)站的數(shù)據(jù)包,并保存該文件名為http-wireshar.pcapng。
接下來通過該捕獲文件中的數(shù)據(jù),分析訪問Web的整個過程。在該捕獲過程中,將包含DNS請求、響應、TCP三次握手等數(shù)據(jù)。
在該界面31幀,是DNS解析為一個IP地址的數(shù)據(jù)包(被稱為一個“A”記錄)。32幀表示返回一個與主機名相關的IP地址的DNS響應包。如果客戶端支持IPv4和IPv6,在該界面將會看到查找一個IPv6地址(被稱為“AAAA”記錄)。此時,DNS服務器將響應一個IPv6地址或混雜的信息。
在該界面看客戶端和服務器之間TCP三次握手(33、34、35幀)和客戶端請求的GET主頁面(36幀)。然后服務器收到請求(37幀)并發(fā)送響應包(38幀)。
當客戶端從相同的服務器上再次請求訪問另一個鏈接時,將會再次看到一個GET數(shù)據(jù)包(1909幀)。
注意:
如果鏈接另一個Web站點時,客戶端將再次對下一個站點進行DNS查詢(156、157幀),TCP三次握手(158、159、160幀)。
31幀是客戶端請求百度,通過DNS服務器解析IP地址的過程。標識為“A”記錄。
32幀是DNS服務器回應客戶端請求的過程。標識為response。
fiddler實際上是通過代理的方式來工作的。默認端口是8888,所以用來請求http的客戶端,需要設定代理,就能被截獲并記錄。這種方式必須依賴fiddler進程正常工作。
以下是java設置代理的一種方式。具體要看使用什么客戶端程序了。不同的客戶端程序設置代理的方式肯定不一樣。
Proxy?proxy?=?new?Proxy(java.net.Proxy.Type.HTTP,new?InetSocketAddress("127.0.0.1",?8888));??
URL?serverUrl?=?new?URL(url);??
HttpURLConnection?conn?=?(HttpURLConnection)?serverUrl.openConnection(proxy);
樣例:
package?com.http;??
import?java.io.BufferedReader;??
import?java.io.InputStreamReader;??
import?java.net.HttpURLConnection;??
import?java.net.InetSocketAddress;??
import?java.net.Proxy;??
import?java.net.URL;??
public?class?Http302Redirect?{??
public?static?void?main(String[]?args)?{??
try?{??
String?url?=?"";??
System.out.println("訪問地址:"?+?url);??
Proxy?proxy?=?new?Proxy(java.net.Proxy.Type.HTTP,??
new?InetSocketAddress("127.0.0.1",?8888));??
URL?serverUrl?=?new?URL(url);??
HttpURLConnection?conn?=?(HttpURLConnection)?serverUrl??
.openConnection(proxy);??
conn.setRequestMethod("GET");??
conn.addRequestProperty("Accept-Charset",?"UTF-8;");??
conn.addRequestProperty("User-Agent",??
"Mozilla/5.0?(Windows;?U;?Windows?NT?5.1;?zh-CN;?rv:1.9.2.8)?Firefox/3.6.8");??
conn.addRequestProperty("Referer",?"");??
conn.connect();??
BufferedReader?reader?=?new?BufferedReader(new?InputStreamReader(??
conn.getInputStream()));??
StringBuffer?buffer?=?new?StringBuffer();??
String?line?=?reader.readLine();??
while?(line?!=?null)?{??
buffer.append(line).append("\r\n");??
line?=?reader.readLine();??
}??
reader.close();??
conn.disconnect();??
System.out.println(buffer);??
}?catch?(Exception?e)?{??
e.printStackTrace();??
}??
}??
}
抓包跟組件沒有關系比如使用fiddler進行抓包, 整個手機的網(wǎng)絡請求都會被抓取到
首先android設備要跟電腦是同一個局域網(wǎng), 即手機可以連接到你的電腦
然后在手機的wifi設置中設置代理, 即讓 fiddler進行代理android的所有網(wǎng)絡請問
這時候就可以抓包了, 本人經(jīng)常用此方法修改手機游戲數(shù)據(jù)
jPCAP在JAVA中,并非一個真正去實現(xiàn)對數(shù)據(jù)鏈路層的控制,而是一個中間件,JPCAP調(diào)用winpcap/libpcap,給JAVA語言提供一個公共的接口,從而實現(xiàn)了平臺無關性。