日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

rhino java api demo_javascript与java的相互调用,纯java的javascript引擎rhino(转载)

發布時間:2023/12/29 javascript 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rhino java api demo_javascript与java的相互调用,纯java的javascript引擎rhino(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、下載Rhino安裝包,下載地址:官網http://www.mozilla.org/rhino。

2、rhino環境配置,把解壓出來的js.jar文件加入到系統的環境變量classpath

3、在命令提示符窗口下,調用javascript引擎,如:java org.mozilla.javascript.tools.shell.Main,即可進入js shell.

4、將javascript代碼文件加載到引擎的內存緩沖區中,如:

load("C:/ws/job/vqq1.0/WebRoot/js/mergeJsFile.js");

5、執行合并操作,會一些相關js文件合并到一個js文件中,以減少瀏覽器對服務器端發出的http請求,提高性能問題。

如:runMerge(parameter1,parameter2, .., ...)

6、為了加快js文件運行的速度,可以把它編譯為class文件,

compile:

java org.mozilla.javascript.tools.jsc.Main C:/ws/job/vqq1.0/WebRoot/js/mergeJsFile.js

編譯產生mergeJsFile.class文件,然后直接執行class文件,java mergeJsFile.

Rhino的特點如下:

JavaScript 1.5的全部特性

◆ 允許使用腳本直接操作Java

◆ 提供JavaScript Shell執行其它JavaScript腳本

◆ 提供JavaScript編譯器將JavaScript源程序轉換成Java類文件

Rhino語言特點

Java是一種面對對象的編譯型語言。它首先將源代碼編譯成二進制字節碼(bytecode),然后依賴各種不同平臺上的虛擬機來解釋執行字節碼,從而實現了“一次編譯、到處執行”的跨平臺特性。

JavaScript是一種動態、弱類型、基于原型的客戶端腳本語言。JavaScript 包括一個基于對象的 API,稱為文檔對象模型(Document Object Model)或 DOM,用以訪問和操作 Web 頁面的內容,給HTML網頁添加動態功能。

Rhino是一個介于Java與JavaScript之間的語言。它的基礎是 Java 語言,這使得它簡單易學,但相比于JavaScript腳本語言來說,它又太過復雜。不過,Rhino 的主要缺點也正是它的強大之處,Rhino 是一種輕量級的、功能強大的腳本語言。Rhino 使用原型而不是類,這使它比很多腳本語言更適合開發 GUI 應用程序,在考慮性能和風格等因素時更是如此。

Rhino語言特點的優缺點

一方面,作為一種動態類型的、基于原型的腳本語言,Rhino借用了很多JavaScript語法。比如,Rhino不再使用語句結束符( ; ),放寬了變量聲明規則,并且極大地簡化了修改和檢索對象屬性的語法。另一方面,作為JavaScript 的Java實現,Rhino語法非常類似于Java編程語言。比如,Rhino采用了與 Java 編程語言相似的循環和條件結構,并且遵循類似的語法模式來表示這些結構。

Rhino 和 Java 語言之間有一些顯著的區別。Rhino 是一種基于原型的(prototype-based)語言,而不是一種基于類的(class-based)語言。Rhino中,函數和變量的聲明中看不到 類型,取而代之的是,使用 function關鍵字聲明函數,使用 var關鍵字聲明局部變量。

Rhino的原始想法是將JavaScript 編譯成Java字節碼執行,即采用編譯執行的方式。由于JVM存在垃圾收集、編譯和裝載過程的開銷過大等限制,Rhino采用了解釋執行的方式。

Rhino支持的腳本語言

在可以找到官方的腳本引擎的實現項目。這一項目基于BSD License ,表示這些腳本引擎的使用將十分自由。目前該項目已對包括 Groovy, JavaScript, Python, Ruby, PHP 在內的二十多種腳本語言提供了支持。這一支持列表還將不斷擴大。

在 Mustang 中對腳本引擎的檢索使用了工廠模式。首先需要實例化一個工廠 —— ScriptEngineManager。

// create a script engine manager

ScriptEngineManager factory = new ScriptEngineManager();

ScriptEngineManager 將在 Thread Context ClassLoader 的 Classpath 中根據 jar 文件的 META-INF 來查找可用的腳本引擎。它提供了 3 種方法來檢索腳本引擎:

// create engine by name

ScriptEngine engine = factory.getEngineByName ("JavaScript");

// create engine by name

ScriptEngine engine = factory.getEngineByExtension ("js");

// create engine by name

ScriptEngine engine = factory.getEngineByMimeType ("application/javascript");

下面的代碼將會打印出當前的 JDK 所支持的所有腳本引擎

ScriptEngineManager factory = new ScriptEngineManager();

for (ScriptEngineFactory available : factory.getEngineFactories()) {

System.out.println(available.getEngineName());

}

JavaScript操縱Java對象

1. Rhino如何訪問Java包與類文件

Java語法規定,任何代碼都必須以class文件的形式存在,而每個class文件必須屬于一個package,默認為default。而JavaScript并沒有類似package的層級結構概念,那么如何使用Rhino訪問Java包呢?

Rhino定義了一個top-level變量Packages。變量Packages對應的所有屬性均對應Java包名。比如,我們需要訪問某一個Java的Package com.example,輸入如下:

js> Packages.com.example

剛才演示了如何通過js shell訪問Java包,訪問Java類的方式類似。假如我們需要訪問標準的Java 文件類java.io.File,如下。

js> java.io.File

或者,為避免輸入全名,我們先導入包,然后輸入Class類名,如下:

js> importPackage(java.io)

js>File

這里的importPackage(java.io),在效果上等價于Java聲明import java.io.*; 不同的是,Java會隱式import java.lang.*,而Rhino不會。因為Rhino定義的對象Boolean, Math, Number, Object, String等與Java語法完全不同,兩者無法等價。

2. Rhino如何與Java對象交互

與Java類似,Rhino使用new操作符創建對象。

js> new java.util.Date()

Thu May 06 16:19:04 CST 2011

可以使用JavaScript變量存儲Java對象,并調用其方法,如下:

js> f = new java.io.File("sample.txt")

sample.txt

js> f.isDirectory()

false

對于static方法與變量,調用如下:

js> java.lang.Math.PI

3.141592653589793

js> java.lang.Math.cos(0)

1

在JavaScript中,方法本身就是對象,這一點與Java不同。我們可以通過下列方式查看方法的重載:

js> f.listFiles

function listFiles() {/*

java.io.File[] listFiles()

java.io.File[] listFiles(java.io.FilenameFilter)

java.io.File[] listFiles(java.io.FileFilter)

*/}

輸出中列出三個重載方法。第一個為無參函數,第二與第三個對應的參數分別為FilenameFilter與FileFilter。

另一個比較有意思的特點是通過構造for..in,查看對象對應的所有方法與變量。如下:

js> for (i in f) { print(i) }

屏幕輸出為:

exists

parentFile

mkdir

toString

wait

[44 others]

這里列出的方法一部分來自于父類,比如wait來自父類java.lang.Object。

對于JavaBean,Rhino也提供按名字訪問的簡單方式。比如,通過下面這種方式,我們就可以調用File對象的getName與isDirectory方法:

js> f.name

test.txt

js> f.directory

false

3. Rhino如何實現Java接口

JavaScript當中,方法本身就是對象。下面我們通過JavaScript語法{propertyName: value}聲明一個JavaScript方法,并調用該方法如下:

js> obj = { run: function () { print("\nrunning"); } }

[object Object]

js> obj.run()

running

現在我們構造一個JavaScript對象,實現Runnable接口。并將該對象作為參數,構造一個新的線程,并啟動該線程。

js> r = new java.lang.Runnable(obj);

adapter1@291aff

js> t = new java.lang.Thread(r)

Thread[Thread-0,5,main]

js> t.start()

js>

running

最后的js>提示符與新線程的打印輸出running的先后順序是隨機的,取決于線程的調度策略。

從后端的處理流程來講,Rhino首先為Runnable接口的實現類生成Java字節碼文件。然后調用JavaScript對象定義的Run方法。

4. Rhino如何創建Java 數組

Rhino使用Java的發射機制生成數組。下面是生成2個String對象的代碼:

js> array = java.lang.reflect.Array.newInstance(java.lang.String, 2);

[Ljava.lang.String;@a20892

js> array[0] = "Double"

Double

js> array[1] = "Life"

Life

js> array[0] + array[1]

DoubleLife

js>

5. Rhino如何捕獲與處理異常

與Java類似,Rhino使用try...catch關鍵字處理異常。

js> function classForName(name) {

try {

return java.lang.Class.forName(name);

} catch (e if e.javaException instanceof java.lang.ClassNotFoundException) {

print("Class " + name + " not found");

} catch (e if e.javaException instanceof java.lang.NullPointerException) {

print("Class name is null");

}

}

js> classForName("NonExistingClass");

Class NonExistingClass not found

js> classForName(null);

Class name is null

6. Rhino如何調用js文件

當然,除了在命令行的方式,我們還可以使用操縱JavaScript文件。下面是一段JavaScript代碼,主要目的是判斷該數是否為質數。代碼如下:

function isPrime (num)

{

if (num <= 1) {

print("Enter an integer no less than 2.")

return false

}

var prime = true

var sqrRoot = Math.round(Math.sqrt(num))

for (var n = 2; prime & n <= sqrRoot; ++n) {

prime = (num % n != 0)

}

return prime

}

我們保存文件為C:\isPrime.js。然后我們需要調用load方法加載該腳本。最后,我們可以調用isPrime方法來判斷是否為質數。

js> load("C:/isPrime.js")

js> isPrime(33);

false

js> isPrime(31)

true

需要注意的是,注意:文件分隔符需要調整,是“/”而不是“\”。

剛才使用JavaScript操縱Java對象。接下來我們看看如何使用Java程序訪問JavaScript

Java對象操縱JavaScript

下面是一段Java代碼,用來運行數學表達式。代碼如下:

package com.example;

import sun.org.mozilla.javascript.internal.Context;

import sun.org.mozilla.javascript.internal.Scriptable;

publicclass Test {

publicstaticvoid main(String[] args) {

Context cx = Context.enter();

try {

Scriptable scope = cx.initStandardObjects();

String str = "3/(1+2)";

Object result = cx.evaluateString(scope, str, null, 1, null);

System.out.println(str + "=" + Context.toNumber(result));

} finally {

Context.exit();

}

}

}

運行Java com.example.Test,輸出結果如下:

3/(1+2)=1.0

之所以是1.0而不是1,是因為Context.toNumber(result)返回的類型為double。

另一個值得注意的是,這里import的package屬于JDK 6.0。

因此,在不需要Rhino提供的js.jar,該程序仍能獨立運行。因為rhino已經是jdk 6.0 的正規軍了,即是它的一部分。

A Java program for running JavaScript scripts

import javax.script.*; import java.io.*; // Evaluate a file of JavaScript and print its result public class RunScript { public static void main(String[] args) throws IOException { // Obtain an interpreter or "ScriptEngine" to run the script. ScriptEngineManager scriptManager = new ScriptEngineManager( ); ScriptEngine js = scriptManager.getEngineByExtension("js"); // The script file we are going to run String filename = null; // A Bindings object is a symbol table for or namespace for the // script engine. It associates names and values and makes // them available to the script. Bindings bindings = js.createBindings( ); // Process the arguments. They may include any number of // -Dname=value arguments, which define variables for the script. // Any argument that does not begin with -D is taken as a filename for(int i = 0; i < args.length; i++) { String arg = args[i]; if (arg.startsWith("-D")) { int pos = arg.indexOf('='); if (pos == -1) usage( ); String name = arg.substring(2, pos); String value = arg.substring(pos+1); // Note that all the variables we define are strings. // Scripts can convert them to other types if necessary. // We could also pass a java.lang.Number, a java.lang.Boolean // or any Java object or null. bindings.put(name, value); } else { if (filename != null) usage( ); // only one file please filename = arg; } } // Make sure we got a file out of the arguments. if (filename == null) usage( ); // Add one more binding using a special reserved variable name // to tell the script engine the name of the file it will be executing. // This allows it to provide better error messages. bindings.put(ScriptEngine.FILENAME, filename); // Get a stream to read the script. Reader in = new FileReader(filename); try { // Evaluate the script using the bindings and get its result. Object result = js.eval(in, bindings); // Display the result. System.out.println(result); } catch(ScriptException ex) { // Or display an error message. System.out.println(ex); } } static void usage( ) { System.err.println( "Usage: java RunScript [-Dname=value...] script.js"); System.exit(1); } }

A Java configuration file utility that interprets JavaScript expressions

import javax.script.*; import java.util.*; import java.io.*; /** * This class is like java.util.Properties but allows property values to * be determined by evaluating JavaScript expressions. */ public class Configuration { // Here is where we store name/value pairs of defaults. Map defaults = new HashMap( ); // Accessors for getting and setting values in the map public Object get(String key) { return defaults.get(key); } public void put(String key, Object value) { defaults.put(key, value); } // Initialize the contents of the Map from a file of name/value pairs. // If a value is enclosed in curly braces, evaluate it as JavaScript. public void load(String filename) throws IOException, ScriptException { // Get a JavaScript interpreter. ScriptEngineManager manager = new ScriptEngineManager( ); ScriptEngine engine = manager.getEngineByExtension("js"); // Use our own name/value pairs as JavaScript variables. Bindings bindings = new SimpleBindings(defaults); // Create a context for evaluating scripts. ScriptContext context = new SimpleScriptContext( ); // Set those Bindings in the Context so that they are readable // by the scripts but so that variables defined by the scripts do // not get placed into our Map object. context.setBindings(bindings, ScriptContext.GLOBAL_SCOPE); BufferedReader in = new BufferedReader(new FileReader(filename)); String line; while((line = in.readLine( )) != null) { line = line.trim( ); // strip leading and trailing space if (line.length( ) == 0) continue; // skip blank lines if (line.charAt(0) == '#') continue; // skip comments int pos = line.indexOf(":"); if (pos == -1) throw new IllegalArgumentException("syntax: " + line); String name = line.substring(0, pos).trim( ); String value = line.substring(pos+1).trim( ); char firstchar = value.charAt(0); int len = value.length( ); char lastchar = value.charAt(len-1); if (firstchar == '"' && lastchar == '"') { // Double-quoted quoted values are strings defaults.put(name, value.substring(1, len-1)); } else if (Character.isDigit(firstchar)) { // If it begins with a number, try to parse a number try { double d = Double.parseDouble(value); defaults.put(name, d); } catch(NumberFormatException e) { // Oops. Not a number. Store as a string defaults.put(name, value); } } else if (value.equals("true")) // handle boolean values defaults.put(name, Boolean.TRUE); else if (value.equals("false")) defaults.put(name, Boolean.FALSE); else if (value.equals("null")) defaults.put(name, null); else if (firstchar == '{' && lastchar == '}') { // If the value is in curly braces, evaluate as JavaScript code String script = value.substring(1, len-1); Object result = engine.eval(script, context); defaults.put(name, result); } else { // In the default case, just store the value as a string. defaults.put(name, value); } } } // A simple test program for the class public static void main(String[] args) throws IOException, ScriptException { Configuration defaults = new Configuration( ); defaults.load(args[0]); Set> entryset = defaults.defaults.entrySet( ); for(Map.Entry entry : entryset) { System.out.printf("%s: %s%n", entry.getKey( ), entry.getValue( )); } } }

Compiling Scripts

// This is the text of the script we want to compile. String scripttext = "x * x"; // Get the script engine. ScriptEngineManager scriptManager = new ScriptEngineManager( ); ScriptEngine js = scriptManager.getEngineByExtension("js"); // Cast it to the Compilable interface to get compilation functionality. Compilable compiler = (Compilable)js; // Compile the script to a form that we can execute repeatedly. CompiledScript script = compiler.compile(scripttext); // Now execute the script five times, using a different value for the // variable x each time. Bindings bindings = js.createBindings( ); for(int i = 0; i < 5; i++) { bindings.put("x", i); Object result = script.eval(bindings); System.out.printf("f(%d) = %s%n", i, result); }

Invoking JavaScript Functions

// Obtain an interpreter or "ScriptEngine" to run the script ScriptEngineManager scriptManager = new ScriptEngineManager( ); ScriptEngine js = scriptManager.getEngineByExtension("js"); // Evaluate the script. We discard the result since we only // care about the function definition. js.eval("function f(x) { return x*x; }"); // Now, invoke a function defined by the script. try { // Cast the ScriptEngine to the Invokable interface to // access its invocation functionality. Invocable invocable = (Invocable) js; for(int i = 0; i < 5; i++) { Object result = invocable.invoke("f", i); // Compute f(i) System.out.printf("f(%d) = %s%n", i, result); // Print result } } catch(NoSuchMethodException e) { // This happens if the script did not define a function named "f". System.out.println(e); }

Implementing a Java interface with JavaScript code

import javax.script.*; import java.io.*; import java.awt.event.*; import javax.swing.*; public class Keys { public static void main(String[] args) throws ScriptException, IOException { // Obtain an interpreter or "ScriptEngine" to run the script. ScriptEngineManager scriptManager = new ScriptEngineManager( ); ScriptEngine js = scriptManager.getEngineByExtension("js"); // Evaluate the script. We discard the result since we only // care about the function definitions in it. js.eval(new FileReader("listener.js")); // Cast to Invocable and get an object that implements KeyListener. Invocable invocable = (Invocable) js; KeyListener listener = invocable.getInterface(KeyListener.class); // Now use that KeyListener in a very simple GUI. JFrame frame = new JFrame("Keys Demo"); frame.addKeyListener(listener); frame.setSize(200, 200); frame.setVisible(true); } }

Implementing an interface in JavaScript simply means defining a function with the same name as each method defined by the interface. Here, for example, is a simple script that implements?KeyListener:

function keyPressed(e) {

print("key pressed: " + String.fromCharCode(e.getKeyChar( )));

}

function keyReleased(e) {

/* do nothing */

}

function keyTyped(e) {

/* do nothing */

}

Note that the JavaScript?keyPressed( )?method defined here accepts ajava.awt.event.KeyEvent?object as its argument and actually invokes a method on that Java object. The next section explains how this is done.

總結

以上是生活随笔為你收集整理的rhino java api demo_javascript与java的相互调用,纯java的javascript引擎rhino(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

蜜臀aⅴ国产精品久久久国产 | 天天人人综合 | 88av色| 人人澡人人爽欧一区 | 6080yy午夜一二三区久久 | 国产丝袜在线 | 丝袜+亚洲+另类+欧美+变态 | 色多视频在线观看 | 少妇按摩av | 91刺激视频 | 久久中文字幕在线视频 | 久久久久免费视频 | 久久99精品一区二区三区三区 | 99精品视频在线观看播放 | 天天插伊人 | av免费网站观看 | 国产成人一二片 | 性色av免费在线观看 | 99久久精品电影 | 国内久久| 国产无套精品久久久久久 | 日韩成人精品一区二区 | 夜夜躁狠狠躁日日躁 | 亚洲欧美日韩国产精品一区午夜 | 深夜激情影院 | 亚洲永久精品国产 | 久久涩视频| 黄色免费视频在线观看 | 国产精品尤物视频 | 欧美aⅴ在线观看 | 国产精品麻豆一区二区三区 | 日韩精品大片 | 插综合网 | 国产精品日韩精品 | 国产精品18久久久久白浆 | 五月激情av | 在线观看视频一区二区 | 天天色天天骑天天射 | 国产不卡免费 | 欧美俄罗斯性视频 | 一级成人免费 | 69国产精品视频免费观看 | 国产精品剧情在线亚洲 | 精品视频一区在线 | 五月视频 | 色视频 在线| 色丁香婷婷 | 狠狠操狠狠干2017 | 激情五月在线视频 | 色综合久久综合 | 91人人爱 | 国产精品视频你懂的 | 久久视讯 | www.狠狠色.com| av免费电影在线观看 | 精品视频国产一区 | 毛片一二区 | 亚洲理论电影 | 精品国产a| 91九色视频网站 | 一区二区三区免费 | 日韩视频一二三区 | 午夜精品av | 久久精品网站视频 | 国产精品高清在线观看 | 亚洲传媒在线 | 久草精品视频 | 国产黄在线看 | 日韩一区二区三区观看 | 国产精品亚洲片夜色在线 | 国产精品久久久视频 | 成人va视频 | 免费视频18| 免费高清在线视频一区· | 国产午夜三级一二三区 | 中国精品少妇 | 免费能看的黄色片 | av在线一 | 免费热情视频 | 免费aa大片 | 日韩成人免费电影 | 中文 一区二区 | 中日韩三级视频 | 粉嫩av一区二区三区入口 | 亚洲乱码久久久 | 午夜精品一二区 | 91热这里只有精品 | 麻豆视频免费版 | 久久久精品亚洲 | 久久久久久久久久久免费视频 | 久久国产精品电影 | 国产无吗一区二区三区在线欢 | 国产精品嫩草影院99网站 | www.av免费观看 | 亚洲人成在线观看 | 黄色看片 | 香蕉视频网址 | 亚洲天堂在线观看完整版 | 狠狠色丁香婷婷综合久小说久 | 国产91精品一区二区绿帽 | 麻豆传媒电影在线观看 | 美女黄久久 | 中文字幕亚洲高清 | 国产伦精品一区二区三区无广告 | 日韩视频一区二区三区在线播放免费观看 | 日本精品久久久久中文字幕 | 精品特级毛片 | 黄在线免费看 | 永久免费毛片在线观看 | 亚洲电影自拍 | 美女视频黄免费网站 | 国产精品久久久久久影院 | 美女精品在线观看 | 亚洲精品国产精品乱码在线观看 | 日日夜夜精品免费观看 | 亚洲天天综合 | 婷婷色九月| 欧美日韩裸体免费视频 | 黄色影院在线观看 | 免费视频久久久 | 日韩欧美成 | 色婷婷久久一区二区 | 中午字幕在线 | 四虎5151久久欧美毛片 | 国产精品一区二区三区99 | 久久精品亚洲 | 91av在线视频免费观看 | 国产日产精品久久久久快鸭 | 精品一二三四五区 | 看av在线| 久久电影网站中文字幕 | 人人玩人人添人人 | 色综合色综合久久综合频道88 | 91av短视频 | 国产免费黄色 | 欧洲一区二区三区精品 | www操操操 | 欧美激情va永久在线播放 | 久久a级片 | 欧美与欧洲交xxxx免费观看 | 人人看人人爱 | 日本精品视频在线播放 | 中文字幕一区二区三区乱码不卡 | 成年人黄色免费视频 | 国产不卡视频在线播放 | 99久精品视频 | 日韩午夜在线观看 | 色婷婷天天干 | 精品亚洲免费视频 | 91av蜜桃 | 中文字幕在线专区 | 亚洲精品乱码久久久久久高潮 | 中文国产字幕在线观看 | 岛国精品一区二区 | 日韩网站免费观看 | 麻豆视频在线看 | 午夜av在线电影 | 欧美一区二区在线刺激视频 | av怡红院| 91av在线国产 | 国产91勾搭技师精品 | 麻豆视频国产精品 | 久久黄色免费视频 | 91网免费观看 | 蜜臀91丨九色丨蝌蚪老版 | 亚洲免费永久精品国产 | 亚洲春色综合另类校园电影 | 美女久久视频 | 91自拍视频在线观看 | 亚洲狠狠 | 97国产| 婷婷深爱五月 | 99国产一区| 亚洲高清视频在线观看免费 | 日韩成人免费在线观看 | 日韩极品视频在线观看 | 在线观看精品一区 | 玖玖玖在线观看 | 国产精品久久久久久久免费大片 | 天天插天天干 | av丝袜制服 | 激情丁香久久 | 免费国产一区二区视频 | 国产婷婷 | 在线色视频小说 | 日韩在线高清 | 黄色一级片视频 | 免费观看www视频 | 国产高清视频 | 99精品国产视频 | 婷婷免费在线视频 | 一区二区 不卡 | 国产一区二区不卡视频 | 免费成人av网站 | 99精品免费观看 | 久久久久久久国产精品视频 | 在线色亚洲 | 成片人卡1卡2卡3手机免费看 | 久久久精品午夜 | 国内久久久久 | 欧美精品你懂的 | 99精品福利 | 亚洲免费a| 天天天插 | 久久一级片 | av免费看看 | 国产美女免费视频 | 欧美福利精品 | 国产亚洲精品成人av久久ww | 一本色道久久精品 | 国产高清视频在线播放 | 蜜臀av性久久久久av蜜臀妖精 | 国产伦精品一区二区三区照片91 | 国产一二三区av | 国产精品毛片久久蜜 | 亚洲精品乱码久久久久久高潮 | 久久久久久久久久久久久久电影 | 粉嫩高清一区二区三区 | 久草青青在线观看 | 久久久久免费精品视频 | 97网| 亚洲,国产成人av | 亚洲日韩中文字幕在线播放 | 一区二区三区中文字幕在线观看 | 国产精品美女免费视频 | 久久99精品久久只有精品 | 国产成人一区二区精品非洲 | 国产精品免费在线播放 | 岛国一区在线 | av在线a| 精品一区 在线 | 国精产品999国精产品视频 | 亚洲精品动漫在线 | 激情五月婷婷激情 | 97网在线观看 | 在线免费观看涩涩 | 99久久精品国产网站 | 97精品国产97久久久久久 | 国产99视频在线观看 | 久久视频在线 | 国产手机在线精品 | 高清av在线免费观看 | aa一级片| 久久成人人人人精品欧 | 91色在线观看视频 | 少妇性色午夜淫片aaaze | 8090yy亚洲精品久久 | 狠狠久久婷婷 | 香蕉在线影院 | 亚洲人成人在线 | 欧美极品在线播放 | 国产精品视频一二三 | 日本在线观看黄色 | 91一区啪爱嗯打偷拍欧美 | 欧美日韩视频在线播放 | 日韩精品专区 | 久久久99国产精品免费 | 中文字幕一区在线观看视频 | 亚洲在线资源 | 日韩欧美国产免费播放 | 久久优| 麻豆视屏 | 国产精品久久久av久久久 | 久青草影院 | 福利电影一区二区 | www.五月天激情 | 成人av电影免费在线观看 | 91传媒激情理伦片 | 麻豆视频在线 | 亚洲天堂网在线视频观看 | 丁香六月婷婷激情 | 91香蕉视频好色先生 | 久久爱影视i | av+在线播放在线播放 | 丁香综合激情 | 日韩中文字幕网站 | 五月天国产 | 亚洲欧美日韩精品久久奇米一区 | 欧美激情一区不卡 | 一区二区欧美日韩 | 欧洲精品码一区二区三区免费看 | 久久er99热精品一区二区 | 五月婷色 | 夜夜操综合网 | 成年人黄色免费视频 | 国产短视频在线播放 | 99久久国产免费免费 | 亚洲综合黄色 | 色欧美88888久久久久久影院 | 久久亚洲视频 | 亚洲h在线播放在线观看h | 九九视频这里只有精品 | 欧美久草视频 | 99热99re6国产在线播放 | 中文字幕在线色 | 9在线观看免费高清完整版 玖玖爱免费视频 | 一本之道乱码区 | 久久久久国产视频 | 成人在线一区二区 | 午夜天使| 日韩在线视频精品 | 精品国产不卡 | 中文区中文字幕免费看 | 一级成人网 | 66av99精品福利视频在线 | 成人亚洲综合 | 亚洲精品久久久蜜桃 | 久久男女视频 | 中文字幕高清 | 91视频成人免费 | 久久成人亚洲欧美电影 | 美腿丝袜av| av福利第一导航 | 日韩美女久久 | 黄色免费大全 | 操操色 | 国产理论片在线观看 | 久久男人中文字幕资源站 | 人人射人人插 | 97电影院在线观看 | 日韩高清免费无专码区 | 激情电影在线观看 | 粉嫩av一区二区三区四区 | 日日碰狠狠躁久久躁综合网 | 国产免费久久久久 | 国产三级视频在线 | 久久久资源网 | 国产精品剧情 | 奇米网444| 日韩欧美高清在线 | 亚洲精品网址在线观看 | 深爱激情综合 | 91麻豆文化传媒在线观看 | 国产免费视频一区二区裸体 | 99国产精品一区 | 久久99精品国产麻豆婷婷 | 亚洲干视频在线观看 | 成人黄色电影在线播放 | 色婷婷影视 | 亚洲色图22p | 久久超碰在线 | 国产福利免费看 | 精品产品国产在线不卡 | 成人黄色小说在线观看 | 中国黄色一级大片 | 午夜电影一区 | 国产成人精品综合久久久久99 | 成人h在线播放 | 视频一区二区免费 | 成人在线黄色 | 久久国产精品99精国产 | 国产欧美最新羞羞视频在线观看 | 麻豆国产精品视频 | 人成在线免费视频 | 韩国av一区二区三区 | 欧美日韩国产成人 | 亚洲视频 中文字幕 | 婷婷伊人五月 | 一本色道久久综合亚洲二区三区 | 主播av在线| 久久精品中文视频 | 91精品国产91热久久久做人人 | 国产精品免费在线观看视频 | 日日干天天插 | 亚洲精品高清一区二区三区四区 | 中文在线a在线 | 日韩欧美在线观看一区 | 午夜美女wwww | 在线播放精品一区二区三区 | 91av在线免费看 | 国内精品久久久久久中文字幕 | 亚洲成人午夜在线 | 黄色电影网站在线观看 | 国产精品毛片一区二区在线看 | 一区二区三区电影在线播 | 久久精品日产第一区二区三区乱码 | 国产高清视频在线播放 | 久久人人看 | 亚洲区另类春色综合小说 | 中文av一区二区 | 婷婷九月激情 | 久久综合久久88 | 国产69熟| 国产精品99久久免费黑人 | 婷婷色网址 | 亚洲欧美在线观看视频 | 精品在线视频一区二区三区 | 国产精品乱码久久 | 天天爽天天搞 | 国产精品区免费视频 | 亚洲成人av在线播放 | 精品久久一二三区 | 久久国产精品免费一区 | 国产大片黄色 | 中文字幕亚洲精品日韩 | 天天操比 | 国产中文字幕在线视频 | 久久婷婷激情 | 成人在线免费小视频 | 在线看一级片 | 国产高清网站 | 在线不卡中文字幕播放 | 中文字幕亚洲欧美日韩 | 波多野结衣一区三区 | 九九色在线观看 | 99免费精品 | 国产精品久久久久久久久免费看 | 久久久免费av | 日韩欧美在线综合网 | 久久av网 | 久久婷亚洲五月一区天天躁 | 91av原创 | 午夜精品久久久久久久99无限制 | 日本精品视频在线 | 欧美91精品久久久久国产性生爱 | 东方av在线免费观看 | 色噜噜日韩精品一区二区三区视频 | www久久| 中中文字幕av在线 | 亚洲国产小视频在线观看 | 国产白浆视频 | 91看片麻豆 | 久久精品久久99精品久久 | 色综合综合 | 欧美日比视频 | 日本久久免费视频 | 国产区精品区 | 狠狠gao| 婷婷综合亚洲 | 99色精品视频 | 久草精品视频在线播放 | 欧美a在线免费观看 | 激情综合色综合久久综合 | 人人爽人人澡人人添人人人人 | 麻豆视频免费 | 国产精品一区二区 91 | 色网站视频 | 狠狠的操你 | 亚洲日本一区二区在线 | 黄色免费高清视频 | 91完整版观看 | 人人干网站| 亚洲天堂香蕉 | 最近最新中文字幕 | 一级成人在线 | 日韩高清一 | 免费成人av | 99在线精品观看 | 久久国产经典 | 欧美在线99 | 狠狠久久伊人 | 日韩免费不卡视频 | 99 色| 四虎成人在线 | 成人a免费看 | 日韩精品一区二区在线观看 | 精品免费99久久 | 色婷婷国产 | 欧美另类性 | 日韩国产高清在线 | 国内精品久久久久影院一蜜桃 | 久久综合五月 | 96精品视频 | 精品成人在线 | 久操视频在线免费看 | 精品国产乱码久久久久久天美 | 欧美在线a视频 | av成人在线观看 | 日日日操| 欧美精品一区二区三区四区在线 | 久久综合给合久久狠狠色 | 激情五月综合网 | 日本精品中文字幕在线观看 | 欧美激情第28页 | 日本韩国精品一区二区在线观看 | 亚洲精品国产精品乱码不99热 | 91成人在线观看喷潮 | 偷拍精偷拍精品欧洲亚洲网站 | 韩日电影在线观看 | 欧美视频日韩视频 | 最新日韩在线观看视频 | 久久精品日韩 | 久久亚洲福利视频 | 日韩精品免费在线播放 | 丁香视频五月 | 99视频在线观看一区三区 | 黄色成人免费电影 | 一本色道久久精品 | 久久精品成人欧美大片古装 | 在线一区二区三区 | 精品国产乱码一区二区三区在线 | 91av在| 亚洲精品xx| 国产精品一区二 | 久久成人午夜视频 | 在线观看视频黄色 | 精品久久影院 | 日韩一区二区三区高清在线观看 | 久久成人18免费网站 | 国产成人综 | 2019av在线视频 | 人人添人人澡人人澡人人人爽 | 国产中文 | 久久免费精品一区二区三区 | www.少妇| 国产视频在线免费 | 天天综合色网 | 国内丰满少妇猛烈精品播 | 久久官网| 国产精品精品久久久久久 | 337p日本大胆噜噜噜噜 | 日本最大色倩网站www | a天堂最新版中文在线地址 久久99久久精品国产 | 色999五月色 | 久久在线观看 | 午夜美女福利直播 | 成人wwwxxx视频 | 黄色福利视频网站 | 国产一级做a爱片久久毛片a | 色视频在线观看 | 中文字幕av在线播放 | 精品免费久久 | 91女神的呻吟细腰翘臀美女 | 91一区啪爱嗯打偷拍欧美 | 手机av在线网站 | 日韩国产精品毛片 | 色婷婷导航 | www.五月天婷婷.com | 国产手机视频 | 中文字幕av电影下载 | av在线网站观看 | 在线观看国产永久免费视频 | 色黄久久久久久 | 97av影院| 日韩av成人| 国产日产精品一区二区三区四区的观看方式 | 99在线精品视频 | 成人黄色一级视频 | 日韩欧美视频在线观看免费 | 黄网站色 | 69绿帽绿奴3pvideos | 在线不卡的av | 国产成人久久精品一区二区三区 | 在线观看播放av | 亚洲伦理电影在线 | 在线视频观看你懂的 | 国产偷v国产偷∨精品视频 在线草 | av东方在线 | 一区二区精品视频 | 精品免费观看 | 国产五月天婷婷 | 美女精品网站 | 亚洲一区欧美精品 | 亚洲精品视频在 | 亚洲v精品 | 丝袜美女视频网站 | 91激情视频在线播放 | 永久av免费在线观看 | 国产高清专区 | 韩国视频一区二区三区 | 视频福利在线 | 亚洲第一区精品 | 国产精品美女久久久免费 | 三级黄色理论片 | 久久黄色小说视频 | 91久久人澡人人添人人爽欧美 | 在线电影播放 | 成人一级影视 | 在线观看国产永久免费视频 | 在线99热| 美女啪啪图片 | 人人舔人人舔 | 欧美日韩视频 | 免费av小说 | 亚洲精品ww| 欧美日韩一区二区视频在线观看 | 国产亚洲精品久久久久久无几年桃 | 午夜精品久久久久久99热明星 | 久久久久久久久久伊人 | 免费观看黄色av | 国产精品中文久久久久久久 | 亚洲婷婷免费 | 在线免费观看欧美日韩 | 国模一区二区三区四区 | av软件在线观看 | 久久国产影视 | 最新av中文字幕 | 夜夜嗨av色一区二区不卡 | 亚洲mv大片欧洲mv大片免费 | 久久综合久久综合久久综合 | 国产成人一级 | 超碰97人 | 麻豆传媒视频在线免费观看 | 在线观看韩日电影免费 | 日韩网站一区 | 成人不用播放器 | 久久久精品免费观看 | 一级片免费观看视频 | 久久99国产精品二区护士 | 久久免费看片 | 午夜精品久久久久 | 九九免费在线视频 | 欧美国产日韩一区二区三区 | 狠狠色婷婷丁香六月 | 视频在线观看日韩 | 日韩高清国产精品 | 欧美久久精品 | 色吧av色av | 欧美亚洲xxx | 国产精品 日韩精品 | 久久久久久国产精品亚洲78 | 国产视频69 | 国产精品国产三级国产专区53 | 婷婷久久久久 | 国内精品久久久久久 | 在线观看日本高清mv视频 | 国产免费精彩视频 | 蜜桃av综合网 | av青草 | 欧美在线1区 | 丁香九月激情综合 | 日韩av专区| 18性欧美xxxⅹ性满足 | 国产视频一区在线 | 精品在线观看一区二区 | 欧美一区二区在线免费观看 | www国产在线 | 992tv在线成人免费观看 | 91高清不卡 | 久久一区国产 | 江苏妇搡bbbb搡bbbb | 夜夜干天天操 | 999超碰| 天天玩夜夜操 | 黄网站a| 久久伊人热 | 蜜桃麻豆www久久囤产精品 | 91成人精品一区在线播放69 | 国产在线视频一区二区三区 | 欧美国产日韩一区二区三区 | a'aaa级片在线观看 | 网站免费黄 | 99精品欧美一区二区 | 国产精品久久久久久久久费观看 | 国产精品热视频 | 玖玖精品在线 | 免费精品久久久 | 国产高清在线看 | 国产精品久久久久久久久免费 | av免费电影网站 | 久久成人国产精品免费软件 | 久久国产剧场电影 | 九九热国产视频 | 免费看黄色91 | 欧美色图亚洲图片 | 国产精品久久久精品 | av成人在线网站 | 欧美精品久久久久久久亚洲调教 | 久久久 激情 | 国产小视频在线免费观看 | 亚洲精品久久久久久国 | 久草视频在线免费看 | 国产视频一 | 91视频大全 | 久久综合天天 | www.天天成人国产电影 | 亚洲精品视频在线免费播放 | 国产粉嫩在线观看 | 天天操夜夜逼 | 99草视频在线观看 | 欧美污网站 | 99久久精品一区二区成人 | 91在线超碰 | 久久久久 | 成人理论在线观看 | 久久久久久久影视 | 四虎在线免费观看 | 在线免费av网 | 日韩精品首页 | 国产福利精品在线观看 | 欧美一级xxxx| 国产成人三级 | 五月综合在线观看 | 四虎国产精品成人免费4hu | 国产免费资源 | 视频福利在线观看 | 精品久久久久久国产偷窥 | 国产精品免费视频观看 | 国产精品高清av | www.eeuss影院av撸 | 久久99精品久久久久久三级 | 亚洲国产免费 | 天天干天天操天天入 | 午夜国产影院 | 国产一级视屏 | 干av在线 | 免费精品在线观看 | 又长又大又黑又粗欧美 | 六月丁香在线观看 | 久久久国产一区二区三区四区小说 | 亚州国产视频 | 久久久国产一区二区三区四区小说 | 欧美激情精品久久久久久免费 | 在线播放亚洲激情 | 中文国产字幕在线观看 | 色婷婷久久久 | 中文字幕在线观看的网站 | 成人久久精品视频 | 97电影手机版 | 天天色图 | 久久国产视频网站 | 91豆花在线观看 | 日韩a欧美| 欧美日本不卡 | 97热视频 | 在线 视频 亚洲 | 日韩专区一区二区 | 俺要去色综合狠狠 | 1区2区3区在线观看 三级动图 | 探花视频在线观看免费 | 天天操天天舔天天爽 | 国产福利免费在线观看 | 黄色a大片 | 久久久久免费精品国产小说色大师 | 婷婷久久综合网 | 亚洲二区精品 | 丝袜美女视频网站 | 欧美福利视频一区 | 天天干天天怕 | 亚洲性少妇性猛交wwww乱大交 | 丁香 久久 综合 | 在线免费观看视频一区二区三区 | 欧美一二三区在线观看 | 久久精品影片 | 亚洲国内在线 | 三级午夜片 | 日韩专区在线观看 | 欧美日一级片 | 香蕉视频网站在线观看 | 麻豆视频国产 | 中文日韩在线 | 三日本三级少妇三级99 | 日韩成人精品一区二区三区 | 91高清免费观看 | 日韩精品在线免费播放 | av免费试看 | 黄色精品网站 | 日韩a免费 | 日日干美女 | 一区二区电影网 | 国产精品嫩草影院9 | 一级精品视频在线观看宜春院 | 91热这里只有精品 | 男女激情网址 | 成人免费网站在线观看 | 亚洲永久av| 国产一区二区三区免费在线观看 | 日韩欧美视频二区 | 国产色婷婷精品综合在线手机播放 | 精品欧美乱码久久久久久 | 日韩一区二区三区免费视频 | 欧美亚洲xxx| 一区二区高清在线 | 成人永久免费 | 蜜桃麻豆www久久囤产精品 | 久久人人爽爽人人爽人人片av | 日韩欧美亚洲 | 欧美一级特黄aaaaaa大片在线观看 | 欧美 另类 交 | 国产精品www| www.久久com| 久久优 | 久久人人爽人人爽人人片av免费 | 999久久久欧美日韩黑人 | 国产视频精品久久 | 狠狠躁18三区二区一区ai明星 | 亚洲国产精品一区二区久久hs | 成人av一区二区兰花在线播放 | 日韩女同一区二区三区在线观看 | 麻豆高清免费国产一区 | 午夜国产在线 | 超碰伊人网 | 亚洲日本欧美 | 国产女v资源在线观看 | 伊人伊成久久人综合网小说 | 久久久99精品免费观看 | 久久视频在线观看中文字幕 | 91理论电影 | 久久不卡国产精品一区二区 | 亚洲国产成人在线 | 在线观看国产高清视频 | 久久精品观看 | 91在线视频观看免费 | 狠狠色丁香婷综合久久 | 久久精品一区二区三 | 成人18视频 | 色网站免费在线看 | 亚洲精品视频在线观看免费 | 国产区久久 | 久久久久 免费视频 | 天天操网| 亚洲播播 | 色综合久久精品 | 日韩中文字幕视频在线观看 | 最新中文字幕 | 色综合色综合色综合 | 久久艹精品 | 亚洲性xxxx | 精品天堂av | 狠狠插狠狠干 | 二区三区毛片 | 在线观看爱爱视频 | 成 人 黄 色 视频 免费观看 | 久久婷婷综合激情 | 美女网站在线播放 | 国产午夜一区二区 | 色综合久久综合网 | 九九综合九九综合 | 处女av在线 | 在线你懂| www五月天婷婷 | 黄色三几片 | 日本资源中文字幕在线 | 欧美a级免费视频 | 精品视频在线免费 | 天天激情天天干 | 国产 欧美 在线 | 久久国内视频 | 日韩影视大全 | 欧美久久久久久久久久久 | 国产一区二区电影在线观看 | 欧美精品中文字幕亚洲专区 | 成人影音av| 久草在线免费新视频 | 在线观看成人福利 | av在线免费在线 | 91av手机在线观看 | 免费情趣视频 | 免费福利在线 | 少妇bbb好爽 | 成人一级在线 | 久久艹久久 | 午夜久久福利影院 | 日韩精品视频在线观看免费 | 992tv在线观看网站 | 夜夜操综合网 | 成人精品国产免费网站 | 午夜在线日韩 | 国产91aaa| 国产99久久久欧美黑人 | 片网站| 日本久久久影视 | 激情网色 | 国产精品一区二区av日韩在线 | 91久久爱热色涩涩 | 激情网色| 一区二区三高清 | 在线观看亚洲专区 | 久久艹国产视频 | 六月色 | 黄色在线观看免费网站 | 免费看黄视频 | 日韩午夜精品福利 | 91中文在线 | 欧美成人精品欧美一级乱黄 | 特级毛片在线观看 | 免费成人在线观看 | 中文字幕在线观看完整版 | 草久久久久久久 | 97超视频在线观看 | 高清在线观看av | 这里只有精品视频在线 | 丁香六月天 | 91视频在线观看下载 | 综合色天天 | 青春草视频在线播放 | 日韩在线电影一区二区 | 丁香六月五月婷婷 | 黄色高清视频在线观看 | zzijzzij亚洲成熟少妇 | 人人干人人艹 | 免费国产在线观看 | 不卡视频一区二区三区 | 最新中文在线视频 | 97偷拍在线视频 | 国产精品久久久久久高潮 | 久久伊人国产精品 | 69av网| 成人资源在线观看 | a级国产乱理伦片在线观看 亚洲3级 | 日韩欧美高清一区二区三区 | 久久综合五月天婷婷伊人 | 色a资源在线 | 丁香婷婷深情五月亚洲 | 中文av网站 | 91中文字幕一区 | 色五婷婷 | 国产v在线 | 午夜999| 亚洲播播 | 2022久久国产露脸精品国产 | 日韩高清精品一区二区 | 婷婷性综合 | 国产一区二区精品久久91 | 国产精品久久久久影视 | 狠狠的干狠狠的操 | 欧亚日韩精品一区二区在线 | 日韩在线免费观看视频 | 欧美成人黄色 | 成人免费视频视频在线观看 免费 | 欧美精彩视频在线观看 | 91亚洲精品久久久久图片蜜桃 | 婷婷综合五月天 | 国产亚洲成人网 | 欧美成年黄网站色视频 | 一区二区欧美日韩 | 国产精品扒开做爽爽的视频 | 天天操夜夜操 | 操操操人人 | 日韩精品视频免费专区在线播放 | 在线观看一级 | 超碰97人人在线 | 成人黄色电影在线 | 天天看天天操 | 日韩av电影免费观看 | 色偷偷网站视频 | 中文字幕免 | 99在线观看| 久久夜色精品国产欧美乱极品 | 丁香五月亚洲综合在线 | 99在线热播精品免费 | 成人h电影 | 国产午夜麻豆影院在线观看 | 成人黄色av网站 | 日韩免费一级a毛片在线播放一级 | 亚洲最大免费成人网 | 国产中文字幕视频在线观看 | 日韩中文字幕网站 | 亚洲最大av在线播放 | 国产剧情一区二区 | 成人小视频在线播放 | 久久美女高清视频 | 欧美男男激情videos | 日韩欧美高清一区二区三区 | 国产亚洲精品福利 | 日韩精品首页 | 国产精品高潮呻吟久久久久 | 四虎影视欧美 | 黄色影院在线观看 | 久久999久久 | 国产综合在线视频 | 免费看三级网站 | 久草免费在线观看视频 | 美女精品在线观看 | 国产精品国产亚洲精品看不卡15 | 日韩有码网站 | 亚洲自拍自偷 | 制服丝袜在线91 | 91丨九色丨丝袜 | 69久久久久久久 | 91精品在线观看视频 | 久久涩涩网站 | 在线国产一区 | 国产一区二区三区黄 | 69精品在线| 国产成人精品一区二区在线观看 | 97热视频| 最近中文字幕完整视频高清1 | 久久久久99精品成人片三人毛片 | 日韩欧美大片免费观看 | 狠狠婷婷 | 日本精品视频在线 | 激情欧美xxxx | 国产精品一区二区三区久久久 | 久久精品视频在线观看免费 | 91精品国产99久久久久 | 黄色大全视频 | 国产精品96久久久久久吹潮 | 欧美日韩国产综合网 | 奇米网在线观看 | av电影中文字幕 | 一级免费黄色 | 国产美女搞久久 | 97精品国产aⅴ | 国产不卡一二三区 | 中文国产成人精品久久一 | 在线综合色 | 麻豆视频在线免费 | 精品一区二区电影 | 婷婷色五 | 久久国产精品区 | 99精品免费在线 | 视频 国产区 | 国产在线视频在线观看 | 欧美日韩在线免费观看视频 | 免费在线播放 | 国产一区二区三区网站 | 少妇18xxxx性xxxx片 |