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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Strus2概览

發布時間:2025/3/20 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Strus2概览 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.Struts2框架 2
1. Struts2與Servlet區別: 2
2.Struts2的使用步驟: 2
3.Struts2里用到的主要jar包: 3
4.Action類作用: 3
5.Struts2執行的流程:【重點】 3
2.action類實現接收和處理頁面的信息 3
1. 將頁面的input標簽的name值設為action類的屬性,然后生成該屬性的getter、setter方法,然后就可直接引用屬性得到頁面的值 3
2. 聲明一個JavaBean對象來當做action類里的屬性來接收或處理頁面傳來的信息:對象.屬性名,與之前一樣,頁面的name則也需寫成:對象.屬性名 4
3. jsp頁面接收值 4
4.通配符 4
4.插多表 5
5. 查多表 5
6. 走完一個方法,如何走另一個方法【result的type屬性】 5
7.關于struts配置里不能快捷生成的問題及其他 6
8.struts全局頁面的配置及用法【配在package里,action外】 6
9.struts的訪問頁面的動態結果 7
10.通過Struts可以訪問Sevlet API(主要是request,response,session,application) 7
11.xml配置文件里,action傳值到另一個action里 7
12.Struts里的標簽及ognl表達式 7
12.ognl表達式 8
13.用Struts標簽實現 地區-街道 的二級聯動[實在不理解用之前學的] 8
14. 用Struts驗證,了解 8
15.配置文件里的開發模式 8
16. struts與jquery的異步操作【重點】 8
17.Struts攔截器 10
18.用Struts實現文件的上傳與下載【重點】 11
1.文件上傳的步驟: 11
2.文件下載的實現步驟: 12
19.Struts國際化 13

1.Struts2框架

是基于MVC的web應用框架的 ,作用于C層 (相當于以前的Servlet層)

1. Struts2與Servlet區別:

1. Struts是由servlet發展而來的
2. servlet里接收值返回信息到頁面:用的是request 、session 。Struts2的action層通過屬性或對象的形式來接收頁面的值或返回信息到頁面(在Struts2的Action層一般都是聲明一個JavaBean對象來當做action里的屬性來接收或處理信息的)
3. Struts2也有自己的一套體系標簽
4. 它是通過配置文件的形式來跳轉頁面的 (便于咱們維護管理)
5. 與Servlet API松耦合(降低了耦合性), 便于測試維護

2.Struts2的使用步驟:

  • 建一個Web Project工程,再把struts的相關jar放到web-inf/lib這個文件夾下去 :直接導Eclipse里包有點兒問題
  • 創建并完成action類:兩種方式
    a) 實現Action接口
    b) 繼承ActionSupport類 【可以實現國際化化(各國都能看懂),數據校驗等一些功能】
    Sturts默認方法是execute(); 返回值類型是String類型。
  • 在web.xml中配置struts2的過濾器
  • <filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>saveMovie.jsp</welcome-file> </welcome-file-list>

    4.創建配置文件struts.xml (頁面進到action類,是由它引進去的 ;返回到哪個頁面也是由它決定的) struts.xml:起到橋梁作用,它位于src文件目錄下。在struts.xml中配置、及
    package:是配置的空間
    action:是決定走哪個action類,及其里面的哪個方法
    result:決定走完action類里的某個方法后跳轉到哪去,可以是跳到另一個action,也可以是一個jsp頁面

    <struts> <!-- 配置空間名稱: / 表示默認:即頁面路徑可不寫空間名稱 --> <package name="default" namespace="/" extends="struts-default"><!-- 創建action --><action name="save" class="com.action.LibratyAaction" method="insertMovieMethod" > <!-- 頁面的提交路徑里的action的名字與name值相同;method是要進的action類里的方法 --><result >/index.jsp</result> </action> </package> <!-- 參數說明: package里的default是空間名稱,說明是默認的,只起標識作用,沒其他用。 package里的namespace="/"表示默認空間,頁面提交路徑不指定空間時就走這個默認的空間,如果namespace給定名字了,則路徑也要指定 package里的extends是默認這麼寫的 action里的save:是提交頁面里,路徑里指定的空間名稱后的單詞。 action里的class:是action層里的action類的所在路徑 action里的method:指定的是要進的action類里的方法,如果不寫,則走默認的execute方法 result里的name是返action類的方法返回的字符串名,當返回的是系統常量,如success時,則可不用寫name result標簽之間的頁面,是返回值后要跳轉的頁面--> <!-- 注意事項:1.struts標簽里可以有多個package,以namespace值區分2.package標籤里可以配置多個action,但是ation里的name值不能一樣,class可以一樣 --> <package name="packageName" namespace="/spaceName" extends="struts-default"><action name="save" class="com.action.LibratyAaction"><result name="flag">index.jsp</result></action> </package> </struts>

    默認空間時jsp頁面的form表單的路徑寫法:post提交不會有頁面傳的中文亂碼問題

    <form action="<%=basePath %>save" method="post">

    指定空間時jsp頁面的form表單的路徑寫法:

    <form action="<%=basePath %>spaceName/save" method="post">

    3.Struts2里用到的主要jar包:

    struts2-core-2.3.4.1.jar Struts2的核心包
    xwork-core-2.3.1.jar xwork的核心包
    commons-io-2.0.1.jar 支持IO流讀寫的操作包
    ognl-3.0.1.jar 支持struts2里的ognl表達式
    …………………

    4.Action類作用:

    處理請求 、實現業務邏輯 、 返回result中決定的是哪個視圖

    5.Struts2執行的流程:【重點】

    jsp頁面(提交form表單,<a>標簽,js提交)—>Struts2的過濾器(配在web.xml里)—>符合條件的話(提交到struts.xml里的配置文件)–>根據配置文件找到相應的action類 –>進入相應的方法–>返回到struts.xml配置文件(根據方法的返回值來決定返回到哪個頁面)

    2.action類實現接收和處理頁面的信息

    1. 將頁面的input標簽的name值設為action類的屬性,然后生成該屬性的getter、setter方法,然后就可直接引用屬性得到頁面的值

    接收頁面的都是字符串形式,之所以能用double型的屬性接收數字,是因為有強制轉換;前提是要符合強轉規則。

    public class LibratyAaction extends ActionSupport{private String bookName; //將jsp頁面里input標簽里name值設為屬性@Override//execute()是默認方法,返回值是字符串 public String execute() throws Exception {System.out.println(bookName);//打印接收到的頁面的值return "flager";//返回的字符串flager用來標記在配置文件里走哪個頁面} //必須生成getter、setter方法,不然取不到值public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}}

    2. 聲明一個JavaBean對象來當做action類里的屬性來接收或處理頁面傳來的信息:對象.屬性名,與之前一樣,頁面的name則也需寫成:對象.屬性名

    對象名是起的屬性名

    public class Movie2Action extends ActionSupport{MovieService service=new MovieService();//屬性必須生成get set方法,這樣才能存取值private Movie movie;//struts2通過JavaBean對象來接收頁面的值private Seat seat; //座位號的javaBean private List<Movie> listMovies;//用來存放查回來的數據 private String msg; //存返回信消息//插入public String insertMovie(){System.out.println(movie); //可用movie.getMname()取值if(movie!=null&&movie.getMname()!=null&&!"".equals(movie.getMname())){service.insertMovie(movie,seat);return this.SUCCESS;//相當于返回的字符串:success}else{msg="請完善所有信息!!";return this.ERROR; //相當于返回的字符串:error}}//查詢所有public String queryAllMovie(){listMovies=service.queryAllMovie();return "queryMovie";} //生成的getter和setter方法省略…… }

    頁面傳值時,需將name屬性的值也設成:對象名.屬性名 的形式,如給影片名賦名:movie.mname

    <tr><td>影片名:</td> <td><input name="movie.mname"/></td></tr>

    復選框的值:可以自動接收拼接成逗號隔開的字符串,不需要我們自己拼接。我們只需要在action類里聲明一個屬性來接收拼接字符串,而在頁面的復選框的name值需要全部寫成那個屬性名

    3. jsp頁面接收值

    頁面接收值也可用EL表達式:下面的employeeList是action類里存員工信息的屬性名

    <c:forEach var="e" items="${employeeList }" varStatus="status">${status.count }----${e.name }---${e.getSalary()}<br/> </c:forEach>

    可以用:e.name,也可用e.getName();
    這種接收值有個好處是,不用值回寫,它是根據action類里的屬性自動獲取的

    4.通配符

    1.通配符:將配置文件里的action標簽的name的值寫成:名字+*的形式。代表頁面訪問路徑里的actionName里沒有顯示完的單詞(這里寫的是action類里的方法名),由于1代表取的第一個號的內容,這樣就取到了傳來的方法名。* : 其實就代表了省略的內容,method里的數字相當于取省略的第幾個內容
    2.優點:訪問路徑需要走不同的方法時,可以只配置一個action
    3.例子

    <!-- 用通配符來訪問struts method="{1}"的1取jsp頁面url地址傳過來的第1個*號的值 --> <action name="movieAction*" class="com.zrgk.action.MovieAction" method="{1}"><result>/index.jsp</result> </action>

    對應頁面的訪問路徑:

    <a href="<%=basePath%>addMovie/movieActionqueryMovie">查看影片信息</a>

    4.多個通配符:可用下劃線區分開,一般沒有多個*的。一個時,最好也用“_”區分開
    對應配置:這里走的是第二個方法

    <action name="movieAction*_*" class="com.zrgk.action.MovieAction" method="{2}"><result>/index.jsp</result> </action>

    對應訪問路徑:走的就是insertMovie方法

    <a href="<%=basePath%>addMovie/movieActionqueryMovie_insertMovie">查看影片信息</a>

    4.插多表

    首先寫另一張的Hibernate持久類,以及相關的配置信息,用以操作數據庫
    然后在action類里多寫一個屬性,用來存另一張表的信息;
    再在dao層寫一個類,用來寫操作另一張表的方法
    在action層多傳一個表對應的javabean對象

    public String insertMovie(){System.out.println(movie);if(movie!=null&&movie.getMname()!=null&&!"".equals(movie.getMname())){service.insertMovie(movie,seat);return this.SUCCESS;}else{msg="請完善所有信息!!";return this.ERROR;}}

    再在service層調用dao層的兩個類的插入方法。當然可以判一下空

    MovieDao mdao=new MovieDao();SeatDao sdao=new SeatDao();public void insertMovie(Movie m,Seat se){mdao.insertMovie(m);sdao.insertSeat(se);}

    5. 查多表

    多表聯查

    6. 走完一個方法,如何走另一個方法【result的type屬性】

    1.實現1:首先要將result里的type定義成redirectAction;然后將param的name屬性設為actionName,用來指定進入到action里的哪個方法;再將另一個param標簽的name屬性的值設為namespace,用來指定進入到哪個空間
    2.例子

    <action name="movie2Action_*" class="com.zrgk.action.Movie2Action" method="{1}"><result name="queryMovie">/queryMovie.jsp</result><result name="error">/addMovie/saveMovie2.jsp</result> <result type="redirectAction"><!-- 指定進入到哪個action 及方法--><param name="actionName">movie2Action_queryAllMovie</param> <param name="namespace">/addMovie</param><!-- 指定進入到哪個空間 --></result> </action>

    3.實現2:將result的type屬性設置為”redirectAction”;result標簽之間是要跳去的action名與方法名。這種方式適用于要跳轉去的另一個action與當前的在同一個空間里,所以不用指定namespace

    <action name="movie2Action_*" class="com.zrgk.action.Movie2Action" method="{1}"><result type="redirectAction">movie2Action_queryAllMovie</result> </action>

    注意的是:如果跳到的另一個action不是通配符的形式,則不需要指定方法
    4.result的屬性:
    1). redirectAction轉向跳入另一個action,可接收一個參數
    2 ) . redirect重定向,跳入頁面。 不能帶參數到頁面
    3).dispatcher轉發到另一頁面。可帶參數到頁面
    4).stream表示處理流相關的信息(文件的上傳與下載)
    5).chain:表示跳轉到另一個action和對應的方法,可接收到前一個action里的所有值

    7.關于struts配置里不能快捷生成的問題及其他

    首先,在src目錄下放入 文件,
    然后,將所有配置文件的頭部分(struts標簽以上)改成:

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""struts-2.3.dtd">

    不解決時,當有網時,也可以快捷生成
    1. Tomcat要放在英文目錄下,不然在Struts里配置幾個配置文件時,運行就會報錯
    2. form表單要post提交,不然提交中文會亂碼
    3. struts有多個配置文件時,先走的是總配置文件,然后走里面導入的配置文件;至于要走哪一個,根據頁面的路徑里的空間名稱與action名字查找,所以,幾個分配置文件里不能有相同的空間名。也可這樣解釋,所有分配置的代碼導入到總配置里后,形成了一個配置文件,那么,空間名稱肯定不能重復啦。
    4. 有時候,我們改了工程名,再次運行時會出問題,是因為改名后,tomcat里發布的還是原來的工程。我們可以鼠標右擊改名后的工程——>屬性——>輸入Web搜索——>如果運行不成功,可發現web Context-root里的工程名還是改名之前的名字,我們可以在這里改成我們要改的名字——>OK

    8.struts全局頁面的配置及用法【配在package里,action外】

    <!-- 配置全局轉向頁面 --> <global-results><!-- 里面可配置多個result --><result name="errorPage">/error/errorPage.jsp</result> </global-results><!-- struts處理異常信息 --> <!-- result的值errorPage是要跳轉到的全局頁面里的name的值,exception的值是異常類全稱 --> <global-exception-mappings><!-- 里面可配置多個 --><exception-mapping result="errorPage" exception="java.lang.NullPointerException"></exception-mapping> </global-exception-mappings>

    exception=”javar.lang.OutOfMemoryError” 是內存溢出錯誤

    9.struts的訪問頁面的動態結果:最好不用,項目完成后不能修改跳轉路徑

    優點:要訪問哪個頁面,直接在action類里給出地址,不用再去配置里做更改了
    缺點:在生成.class文件后,不能更改跳轉頁面了。最好還是跳轉路徑寫在配置文件里,因為配置文件是可更改的。
    1. 在action類里聲明一個存jsp頁面路徑的屬性jspPath,然后生成getter、setter方法,可寫個默認頁面
    private String jspPath=”/index.jsp”;
    2. action類里的方法里給jspPath屬性賦值:jsp頁面路徑+jsp文件名全稱,包括后綴.jsp
    jspPath=”/addMovie/saveMovie2.jsp”;
    3.在配置里的result里獲取jspPath屬性:${jspPath}

    <action name="movie2Action_*" class="com.zrgk.action.Movie2Action" method="{1}"><result>${jspPath}</result> </action>

    10.通過Struts可以訪問Sevlet API(得到request,response,session,application)

    在action里的方法里面可使用Servlet里的一些作用域,跟之前在serlvet里使用一樣:
    //1.從容器里獲取request
    HttpServletRequest request=ServletActionContext.getRequest();
    //2.得到session
    HttpSession session= ServletActionContext.getRequest().getSession();
    //3.得到response
    HttpServletResponse response=ServletActionContext.getResponse();
    //4.得到application:作用域為整個工程
    Map<String,Object> application=ServletActionContext.getContext().getApplication();
    存值:application.put(“myinfo”, “this is my information”);
    在jsp頁面取值:也可有EL表達式:${key},有了值后,關閉瀏覽器再打開,還是有值,

    11.xml配置文件里,action傳值到另一個action里

    1.action跳action傳的寫法用?mag=值 這樣追加值再到另一個action里接收 (這個類擬于get提交的方式,應避免傳中文)

    <result type="redirectAction">movie2Action_queryAllMovie?msg=${msg}</result>

    該方式不能傳中文,只適合傳Id這種整形或是字母的,類似get提交,好像也不能傳多個值
    2.一種更好的傳值方式
    將result的type屬性的值改為:chain

    <result type="chain">movie2Action_queryAllMovie</result>

    能傳中文,能將上一個action里的所有屬性的值都傳給下一個action 。如果一個參數都不想傳,最好不用這種方式,因為這種方式是將所有的都要傳過去,這里做的準備工作比較多,所以這時性能會有些不好。

    12.Struts里的標簽及ognl表達式

    使用struts標簽要先導包:<%@ taglib uri=”/struts-tags” prefix=”s”%>
    使用ajax標簽要導另一個包:<%@taglib uri=”/struts-dojo-tags” prefix=”sx”%>
    詳細見:Struts2標簽

    1. 標簽的分類:

    1) 通用標簽【默認前綴s】
    a) 數據標簽
    b) 控制標簽
    2) UI標簽【默認前綴s】
    3) ajax標簽【默認前綴sx】

    2. 數據標簽:提供對各種數據的訪問

    輸出相關屬性的值
    在頁面上生成一個鏈接,單擊可以輸出容器的一些信息(可能包含錯誤信息)
    格式化輸出一個日期
    生成一個url地址
    生成html里的標簽
    為其它標簽添加參數信息
    把其它頁面包含到當前頁面上

    3.控制標簽:用來完成對分支流程的控制 相當java中的 if eseif else等

    判斷的標簽
    循環標簽

    4.UI標簽:用來生成UI界面元素表單這些信息

    對應的是html里表單標簽
    對應的文本框的標簽
    提交的標簽
    下拉框的標簽
    生成一個二級聯動的下拉框

    5.ajax標簽

    <sx:datetimepicker>生成一個日歷控件

    12.ognl表達式

    ognl表達式簡介

    13.用Struts標簽實現 地區-街道 的二級聯動

    參見代碼。

    14. 用Struts驗證,了解

    好處:當瀏覽器不支持js時可用它
    1. 在action層里寫一個校驗器文件:UserAction-registerAction-validation.xml
    命名規則:action類名-action名字- validation.xml
    2.所以該驗證是要走后臺的,后臺通過后才走action
    具體參見代碼

    15.配置文件里的開發模式

    <!-- 設置Struts簡單的主題模式 --> <constant name="struts.ui.theme" value="simple"/> <!-- 設置struts為開發模式:修改該struts.xml文件后,不用重啟服務,也可生效 --> <constant name="struts.devMode" value="true" /><!-- true表示啟用開發模式 -->

    16. struts與jquery的異步操作【重點】

    struts與jquery的異步操作步驟:

    1.寫action里的異步方法

    public class TestAction extends ActionSupport {private String username;//{"username":"salmon"} private String msg;// {"msg":"1"}public String execute(){if(username!=null&&username!=""){if("picluo".equals(username)){this.setMsg("重名了");}else{this.setMsg("可用");}}else{this.setMsg("用戶名不能為空");}return this.SUCCESS;}/*以流的形式實現異步public String execute() throws Exception{ HttpServletResponse response=ServletActionContext.getResponse();response.setContentType("text/html;charset=utf-8");PrintWriter out=response.getWriter();if("picluo".equals(username)){out.print("true");}else{out.print("false");}out.close();return null; }*///生成的getter、setter方法,此處省略…… }

    2.配置異步的返回信息

    <!--引用的json一個文件--><package name="ajax" namespace="/" extends="json-default"><action name="test" class="com.salmon.action.TestAction"><result type="json">index.jsp</result><!--指定返回類型的json格式--></action> <!-- <action name="test" class="com.salmon.action.TestAction">以流的形式實現異步的配置</action> --></package>

    也可以不引有json文件,我們在action里直接return null;在方法里面將數據寫入流里:
    如:PrintWriter out=response.getWriter();
    out.print(sb.toString());//把字符串寫入流里面【重點】

    3.在jsp頁面導入jquery的js文件

    <script type="text/javascript" src="<%=basePath%>js/jquery-1.8.2.js"></script>

    或者是:

    <script type="text/javascript" src="<%=basePath %>js/jquery-2.0.2.js"></script>

    4. 寫jsp頁面及js的異步信息【4個參數】

    <script type="text/javascript" src="<%=basePath %>js/jquery-2.0.2.js"></script><script type="text/javascript">function checkName() { var usernameValue = document.getElementById("userName").value; var today = new Date(); $.ajax({ //后面跟一個時間的參數是為了防止有時候不提交的問題【沖破緩存,也可跟個隨機數】 url:"test?time="+today.getTime(),//test是配置里的action名字type:"post",//提交方式data:"username="+usernameValue,//username是action類里的屬性success:function(data){//回調函數:返回的是json串,屬性都封裝在里面 var username = data.username;//得到actoin類里的屬性值 $("#ms").html(data.msg);//將提示結果放進span標簽里,span標簽不是表文件框,所以沒有value,只能用html接收值 }});}function clears() { document.getElementById("userName").value="";$("#ms").html("莫亂輸哈");}</script></head> <body>用戶名:<input type="text" name="userName" id="userName" onblur="checkName();" value="請輸入用戶名" onfocus="clears();"><span id="ms" name="ms"></span></body>

    17.Struts攔截器

    1.工作流程:

    struts.xml——>攔截器1——>攔截2——>…攔截器n——>調用Action里的method——>再返回到攔截器n——>…攔截器2——>攔截器1——>struts.xml的

    2.實現攔截器的步驟:

    a.寫一個普通的類,通過實現Interceptor接口或繼承AbstractInterceptor抽象類,或者繼承MethodFilterInterceptor類來變成一個攔截器的類,即攔截器。MethodeFilterInterceptor類,在只攔截部分的action里的方法里用
    b.在struts.xml中定義攔截器(將攔截器配置到struts容器里去)

    <package name="addMovie" namespace="/addMovie" extends="struts-default"><interceptors><!-- 配置寫的攔截器類: 這里面可以配置多個攔截器類 --><interceptor name="myInterf" class="com.zrgk.interf.MyInterceptor"></interceptor></interceptors><action name="movie2Action_*" class="com.zrgk.action.Movie2Action" method="{1}"><!-- 引用攔截器 --><interceptor-ref name="myInterf"></interceptor-ref> <interceptor-ref name="defaultStack"/><!—自帶攔截器 --><result>/index.jsp</result></action> </package>

    c.在中引用配置的攔截器

    3.Struts自帶大量的攔截器,它們定義在struts-default.xml文件中

    自帶的攔截器實現了獲取更多的參數信息,為action注入session 、異常處理、 國際化,數據驗證等

    4.常用 的自帶攔截器的一些參數信息:

    params: 負責將請求參數設置到action類中對應的屬性中去
    SevletConfig :將源于ServletAPI的各種對象注入到Action中去????不太理解????
    validation: 調用驗證框架進行的數據校驗
    exception : 進行異常處理 ,將異常映射為結果
    i18n : 提供國際化支持

    5.把一組攔截器定義在一起叫做 攔截器棧

    struts2的默認攔截器棧是defaultStack ,它里面會有多個攔截器。

    18.用Struts實現文件的上傳與下載【重點】

    1.文件上傳的步驟:

    1) 在jsp頁面寫上傳文件的標簽<input name="movieFile" type="file"/>
    2) 給form標簽加上傳輸文件的編碼方式:enctype=”multipart/form-data”

    <form action="<%=basePath %>addMovie/movie2Action_insertMovie" method="post" enctype="multipart/form-data">

    enctype默認值認為application/x-www-form-urlencoded,還有一個選項是:text/plain
    3) 給action起一個存文件類型的屬性名, 如果要用到文件名則這樣起名:文件類型的屬性別名+FileName (區分大小寫問題) 如果想得到上傳的文件后綴則:文件類型的屬性別名+ContentType

    public class Movie2Action extends ActionSupport{ //1.聲明接收文件的屬性 private File movieFile; //2.聲明接收文件名的屬性,命名規則:File的別名(上一步聲明的接收文件的屬性名)+FileName, struts2會自動把上傳的帶后綴的文件名給這個屬性 private String movieFileFileName; //3.聲時接收文件類型的屬性,命名規則:File的別名+ContentType,自動把文件類型給這個屬性。這里所說的類型是指文本類型還是圖片類型private String movieFileContentType;public String insertMovie(){try{ //設置新文件的目錄+文件名 //ServletActionContext.getServletContext().getRealPath("/upload/")動態獲取upload的位置String newPath=ServletActionContext.getServletContext(). getRealPath("upload/"+movieFileFileName); //得到新的文件路徑,用于存上傳的文件。文件名要寫到getRealPath的括號里FileInputStream fis=new FileInputStream(movieFile);//把舊文件讀進內存FileOutputStream fos=new FileOutputStream(new File(newPath));//寫到新文件的流IOUtils.copy(fis, fos);//把舊文件復制到新文件下去【這可比以前簡單多了,一句搞定】fos.flush();//不flush就不能真正地從內存中輸出到文件里去fos.close();//一定要關閉fis.close();return this.SUCCESS;}catch(Exception e){return "errorPage";} } //生成的getter、setter方法,此處省略… }

    4) 配置struts.xml文件

    <action name="movie2Action_*" class="com.zrgk.action.Movie2Action" method="{1}"><!—引用上傳文件的攔截器 --><interceptor-ref name="fileUpload"> <!-- 設置上傳的文件大小問題 單位:字節 --><param name="maximumSize">10000000</param> <!-- 也可以使用allowedTypes來控制上傳的文件類型,以下是允許傳的文件格式 --> <param name="allowedExtensions">jpg,jpeg,gif,png,txt,sql</param> </interceptor-ref><interceptor-ref name="defaultStack"/> </action>

    由于上付文件的攔截器是系統的,所以引用時,里面的name值都是來源于系統,所以都不能寫錯了

    2.文件下載的實現步驟:

    1.寫一個下載的action類,里面寫一個存文件名的屬性并生成get、set方法,寫一個action默認走的方法execute, 然后寫一個走完execute方法返回后在result里調的getInputStream()方法(把服務器的文件讀到輸入流里去)。getInputStream方法一定是struts.xml里的inputStream對應的getter方法

    public class DownloadAction extends ActionSupport{ private String fileName;//傳過來的要下載的文件名 /**讀取文件的流對象返回,Web服務器會讀取流對象中的數據并封裝到response中,然后發送到客戶端 */public InputStream getInputStream() throws FileNotFoundException, UnsupportedEncodingException{System.out.println("走完默認方法返回后,在result里才調用的這個方法");InputStream is = null;//把URL路徑轉化為服務器的本地路徑String realPath = ServletActionContext.getServletContext().getRealPath("/upload/"+this.fileName);is = new FileInputStream(realPath); return is;//返回流}//默認的方法public String execute(){System.out.println("因配置里沒有寫方法,所以走這個默認方法:下載的業務方法");return this.SUCCESS;}//存文件名的getter方法,里面解決了中文亂碼問題public String getFileName() throws UnsupportedEncodingException {//解決中文文件名的亂碼問題return java.net.URLEncoder.encode(fileName, "UTF-8"); //該編碼方式在IE6下可能有該問題:文件名長度不能超過16個字符//return new String(this.fileName.getBytes("UTF-8"),"ISO-8859-1"); //該編碼方式可兼容IE6,但GBK不利于實現國際化}//存文件名的屬性的setter方法public void setFileName(String fileName) {this.fileName = fileName;} }

    2.在struts.xml配置下載文件的一些信息
    將result的屬性改為stream
    在result里參數調用getInputStream方法得到流???這兒沒有實現,老報錯?
    指定瀏覽器彈出窗口,讓用戶選擇保存位置;并得到文件名
    指定緩沖區的大小

    <package name="download" namespace="/download" extends="struts-default"> <action name="downloadAction" class="com.zrgk.action.DownloadAction"><result name="success" type="stream"><!--文件對應的流對象 調用 getInputStream()方法 ,之所以能調,是因為inputStream相當于action類里的屬性,沒寫出來所以action里的getInputStream()方法相當于該屬性生成的getter方法所以,名字也得對應好了。這里就相當于用屬性用了方法 --><param name="inputName">inputStream</param><!-- attachment指定瀏覽器彈出窗口,讓用戶選擇保存位置的屬性設置 --><param name="contentDisposition">attachment;filename="${fileName}"</param> <!--發送給客戶端的文件名,需要注意中文亂碼問題 --><!--文件類型,application/octet-stream表明不限制類型 --><param name="contentType">application/octet-stream</param><param name="bufferSize">1024</param><!--緩沖區大小 --></result></action> </package>

    3.在頁面用超鏈接調用下載的action(注意的是,要傳一個服務器上存在的文件名)

    <form action="<%=basePath %>download/downloadAction" method="post"><input type="hidden" name="fileName" value="${movieFileFileName}"><input type="submit" value="點擊下載"> </form>

    注意的是,提交路徑或是用a標簽的路徑里,都不能傳參,因為中文會亂碼。可用上面的隱藏域傳過去

    19.Struts國際化

    國際化就是使頁面根據不同的國家選擇不同的語言展示方式,實現步驟如下:
    1.在src下加載國際化資源配置文件,一個國家對應一個:下面是美國與中國的兩種語言

    配置文件名是的第一個單詞可變,后面的是根據不同國家,起的固定格式,
    美式英語的配置里內容為:
    title_label = register
    user_name = USERNAME
    password = PASSWORD
    age_lable = AGE
    submit =SUBMIT
    中文里的配置內容為:
    title_label = \u6CE8\u518C
    user_name = \u7528\u6237\u540D
    password = \u5BC6\u7801
    age_lable = \u5E74\u9F84
    submit = \u63D0\u4EA4
    增加字段時,先選擇properties窗口,然后點添加。添加后就會出現如上的格式

    2.寫國際化的action類,雖沒內容,但也要寫:

    public class I18nAction extends ActionSupport { public String execute(){//這里什么也沒寫,但必須寫這個類和這個默認方法return this.SUCCESS;} }

    3.配置struts.xml文件

    <struts> <!-- 后綴修改: 代表訪問的action要加上.action的后綴 --> <constant name="struts.action.extension" value="action"/><!-- 開發模式:設為開發模式后,若配置發現改變不重新啟動也可生效 --><constant name="struts.devMode" value="true" /><!-- 國際化資源文件: lanaguage表示引用的src下以這個單詞開頭的.properties文件--><constant name="struts.custom.i18n.resources" value="lanaguage"></constant><package name="test" namespace="/" extends="struts-default"><!-- i18n的action類的位置路徑,雖然里面什么也沒有,但必須寫 --><action name="i18n" class="com.zrgk.action.I18nAction" ><result name="success">index.jsp</result></action></package> </struts>

    4.在頁面引用國際化語言

    <script type="text/javascript">function i18n(local){ location.href="i18n.action?request_locale="+local; //配置里設了修改后綴為要加.action所以這里要加 } </script></head> <body> <!--括號里傳的是指定的語言 --><a href="javascript:i18n('zh_CN')">中文</a><a href="javascript:i18n('en_US')">English</a><hr/><s:form action="i18n.action" method="post"><!-- key里的值是對應的國際化資源文件里的key --><s:textfield key="user_name" name="username"></s:textfield><s:password key="password" name="userps"></s:password><s:textfield key="age_lable" name="age"></s:textfield><s:submit key="submit"></s:submit> </s:form></body>

    5.實現效果如下:

    6.可通過瀏覽器的工具里的Internet選項進行設置,可實現打開瀏覽器時默認以哪種語言打開可添加其他語言

    總結

    以上是生活随笔為你收集整理的Strus2概览的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    丁香婷婷电影 | 日韩免费一级a毛片在线播放一级 | 天天草天天干天天 | 国产精品欧美久久 | 在线直播av| 国产精品一区二区果冻传媒 | 996久久国产精品线观看 | 国产欧美日韩精品一区二区免费 | 婷婷丁香国产 | 一级久久精品 | 蜜桃视频在线视频 | www.精选视频.com | 天天爱天天操天天爽 | 中文理论片 | av片子在线观看 | 久久国产美女视频 | 精品在线视频播放 | 久久久久免费精品视频 | 久久99亚洲热视 | 91精品国产91久久久久久三级 | 国产亚洲无| 国产情侣一区 | 麻豆影视在线播放 | 日韩av中文字幕在线 | 欧美精品日韩 | 中文字幕在线播放视频 | 国产精品久久久久婷婷 | 色婷五月天 | 岛国片在线 | 欧美激情亚洲综合 | 国产中文在线字幕 | 91视频在线免费 | 国产精品免费久久久久 | 日日夜夜免费精品 | 久久九九影视 | 丰满少妇在线观看 | 国产成人免费高清 | 激情伊人五月天 | 999精品网| 色之综合网 | 国产一区二区高清不卡 | 五月婷丁香 | 狠狠的干狠狠的操 | 久操视频在线免费看 | 久久国产一区二区 | 日韩在观看线 | 天天天天爽 | 久久国产精品网站 | 国产日韩欧美在线播放 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 国产99久久久国产精品免费二区 | 亚洲四虎影院 | 韩国在线一区 | 国产破处在线视频 | 91视频a | 久久狠狠亚洲综合 | 久久国内精品99久久6app | 丝袜av一区 | 久久99亚洲热视 | 国产精品久久久久aaaa九色 | 亚洲香蕉视频 | 热久久免费视频精品 | 日韩在线免费观看视频 | 精品天堂av| 亚洲国产精品成人女人久久 | 在线国产一区二区三区 | 胖bbbb搡bbbb擦bbbb | 国产麻豆电影在线观看 | 夜夜夜精品| 狠狠狠干 | 久久婷婷精品视频 | 久久久久高清毛片一级 | 中文字幕亚洲欧美日韩2019 | 日韩草比 | 丁香婷婷色综合亚洲电影 | 国产人在线成免费视频 | 手机在线观看国产精品 | 国产一级在线免费观看 | 99在线热播精品免费99热 | 欧美日本一二三 | 一本色道久久综合亚洲二区三区 | 99免费| 最近中文字幕大全中文字幕免费 | 欧洲在线免费视频 | 亚洲 欧美变态 另类 综合 | 日本中文字幕一二区观 | 国产首页 | 国产精品久久久久av | 日韩在线精品视频 | 夜夜骑首页 | 国产精品九九九 | 国产三级国产精品国产专区50 | 韩国精品一区二区三区六区色诱 | 亚洲 精品在线视频 | 久久久久久久电影 | 久久久久久久久网站 | 九九热免费在线视频 | 天天色棕合合合合合合 | 69国产盗摄一区二区三区五区 | 91亚瑟视频 | 日韩精品视 | 久久视频这里有久久精品视频11 | 久久精品网站免费观看 | 国产精品久久精品国产 | 91色九色 | av中文字幕网站 | 国产精品亚洲片夜色在线 | 中文资源在线官网 | 97超碰人| 在线免费观看麻豆视频 | 97超碰成人 | 国产精品免费观看久久 | 三级性生活视频 | 五月婷婷综合在线视频 | 99热手机在线观看 | 日韩精品一区二区三区视频播放 | 国产1区2区3区精品美女 | 狠狠干五月天 | 成人黄色一级视频 | 91中文字幕在线视频 | 久久久九色精品国产一区二区三区 | 欧美福利久久 | 高清色免费 | 色国产视频 | 久久一区二区三区四区 | 精品欧美在线视频 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 激情综合六月 | 久久96国产精品久久99漫画 | 午夜av网站| 久久成熟 | 天天艹日日干 | 91大神免费视频 | 久久精品国产一区 | 婷婷国产在线观看 | 91福利视频网站 | 九七人人干 | 亚洲国内精品在线 | 美女av电影 | 韩日精品在线 | 免费在线观看午夜视频 | 久久99精品久久久久久三级 | 91.麻豆视频 | 色婷婷色 | 午夜国产福利视频 | 日日天天狠狠 | 色播激情五月 | 欧美久久99| 中文字幕av免费观看 | 黄色a级片在线观看 | 亚洲精品视频久久 | 丁香花在线视频观看免费 | 日韩精品一区二区不卡 | 精产嫩模国品一二三区 | 91九色在线观看视频 | 欧美无极色 | 中文字幕一区二区三区四区视频 | 日韩免费大片 | 国产亚洲91 | 日韩精品你懂的 | 久久亚洲综合国产精品99麻豆的功能介绍 | 91免费国产在线观看 | 日韩高清国产精品 | 久久99热这里只有精品国产 | av日韩中文 | 91精品国产99久久久久久红楼 | 久久99精品国产麻豆婷婷 | 日韩精品一区二区三区第95 | 91探花在线| 国产精品久久久久久影院 | 亚洲高清网站 | 免费看久久久 | 99精品国产视频 | 免费视频一区二区 | 国产在线一线 | 日韩在线观看第一页 | 少妇18xxxx性xxxx片| 91视频免费视频 | 中文字幕在 | av免费在线观看网站 | 亚洲午夜久久久影院 | 精品99999 | 国产在线观看你懂得 | 免费看片亚洲 | a视频免费在线观看 | 521色香蕉网站在线观看 | 免费瑟瑟网站 | 国产麻豆精品久久 | 欧美性精品 | 成人国产精品久久久 | 免费高清看电视网站 | 久久99国产一区二区三区 | 国产成人在线观看 | 久久国产高清 | 最新日韩电影 | 丁香av| 91成人网在线 | 久久午夜网 | 插综合网 | 日韩丝袜视频 | 国产 成人 久久 | 日韩电影在线视频 | 国产视频精品免费 | 91在线免费视频观看 | 久久综合网色—综合色88 | 四虎免费在线观看 | 色视频成人在线观看免 | 亚洲国产中文字幕在线观看 | 亚洲永久精品国产 | 91大神在线观看视频 | 超碰在线99 | 亚洲国产欧美一区二区三区丁香婷 | 五月婷婷激情网 | 国内精品视频在线播放 | 91视频免费播放 | 色婷婷免费 | 色婷婷成人网 | 婷婷久久综合九色综合 | 免费黄色特级片 | 欧美日韩精品国产 | 麻豆久久久久久久 | 久久无码av一区二区三区电影网 | 日韩v在线91成人自拍 | 性色va | 国产精品区免费视频 | 久久久久国产精品www | 国产一区二区手机在线观看 | 国产日韩在线观看一区 | 日韩中文字幕一区 | 欧美精品第一 | 久久精品牌麻豆国产大山 | 黄色小说在线观看视频 | 久久黄色免费观看 | 亚洲春色综合另类校园电影 | 久久精品视频在线观看免费 | 日韩视频三区 | 国产免费亚洲高清 | 成片视频免费观看 | 中文区中文字幕免费看 | av在线观 | 国产精品一区二区三区99 | 9999免费视频 | 久久久网址 | 色综合夜色一区 | 五月天婷亚洲天综合网精品偷 | 99久久久久成人国产免费 | 日本精品中文字幕 | 在线a亚洲视频播放在线观看 | 人人爱人人添 | 久久伦理电影网 | 日韩欧美电影在线 | 久久久精品电影 | 欧美黄色成人 | 一级黄色大片在线观看 | 免费av网址大全 | 狠狠色噜噜狠狠狠合久 | 免费高清在线观看成人 | 操久在线 | 九九欧美视频 | 中文字幕在线网址 | 成人免费一区二区三区在线观看 | 久久9999久久免费精品国产 | 97在线观看免费高清完整版在线观看 | 国产日韩欧美在线 | 久久久久久久网 | 18女毛片| 欧美亚洲成人免费 | 日日天天 | av在观看 | 国产精品情侣视频 | 久久8精品 | 欧美色一色 | 黄网站大全 | 99精品免费视频 | 国产精品18久久久久久久网站 | 婷婷网址 | 色视频网址 | 四虎影视8848dvd | avv天堂| 韩国av免费在线观看 | 2019精品手机国产品在线 | 精品亚洲欧美无人区乱码 | 欧美影片 | 中文理论片 | 伊甸园永久入口www 99热 精品在线 | 日韩免费一级a毛片在线播放一级 | 久久久国产精品电影 | 天天干人人干 | 国产精品视频内 | 欧美日韩精品在线一区二区 | 国内丰满少妇猛烈精品播放 | 成人亚洲欧美 | 怡红院av久久久久久久 | 欧美另类高清 | 色亚洲激情 | 亚洲欧美日韩一二三区 | 亚洲区另类春色综合小说校园片 | 手机看片福利 | 亚洲精品免费在线 | 中文字幕永久在线 | 人人超碰人人 | 亚洲视频播放 | 日韩欧美不卡 | 伊人精品在线 | 69国产精品成人在线播放 | 欧美色精品天天在线观看视频 | 免费手机黄色网址 | 欧美激情第一区 | 国产一级久久久 | 国产成人精品免高潮在线观看 | 日韩精品免费一区 | 国产无限资源在线观看 | 中文在线字幕观看电影 | 色婷婷亚洲婷婷 | 亚洲人人射 | 黄色免费观看视频 | 伊人激情综合 | 成人在线视频免费 | 日本 在线 视频 中文 有码 | 在线观看一级 | 久久精品直播 | 五月天综合激情 | 91精品国产91久久久久福利 | 欧美黄在线 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 麻豆视频大全 | 中文字幕日韩无 | 国产成人av在线 | 五月天国产精品 | 成年人在线观看免费视频 | 91精品国产三级a在线观看 | 国产手机在线观看视频 | 区一区二区三区中文字幕 | 亚洲国产av精品毛片鲁大师 | 日韩精品你懂的 | 999久久久久久久久6666 | 91九色视频导航 | 日韩精品中文字幕有码 | 黄色特级一级片 | 国产免费又爽又刺激在线观看 | 高清视频一区 | 久久影院中文字幕 | 国产成人久久精品 | 日日综合 | 天天操天天操天天干 | 久久精品一二区 | 国产在线污 | 精品在线不卡 | 美女黄网站视频免费 | 91精品在线免费视频 | 在线看片日韩 | av久久久 | 91精品国自产在线观看 | 免费黄色a级毛片 | 91大神精品视频在线观看 | 亚洲视频网站在线观看 | 日韩成人免费在线电影 | 2019中文在线观看 | 国产专区在线看 | 四虎国产免费 | 国产精品久久在线 | 成人av电影免费观看 | 久久久人人人 | 久久99免费 | 韩国精品在线 | 69视频在线| 超碰97av在线 | 国产精品丝袜久久久久久久不卡 | 国产不卡一二三区 | 俺要去色综合狠狠 | 久久久久久高潮国产精品视 | 中文字幕乱码一区二区 | 在线免费av观看 | 亚洲免费专区 | 国产精品黄网站在线观看 | 日韩欧在线 | 日夜夜精品视频 | 免费av免费观看 | 中文字幕 国产精品 | 欧美性大胆 | 成人免费电影 | 蜜桃av久久久亚洲精品 | 日韩特级片| 国产日韩欧美精品在线观看 | 伊人超碰在线 | 欧美色就是色 | 人人要人人澡人人爽人人dvd | 91九色视频导航 | 亚洲视频久久久 | 日韩av电影中文字幕在线观看 | 毛片a级片 | 成人在线观看资源 | 首页国产精品 | 九九三级毛片 | 黄色三级网站 | 亚洲精品久久久蜜桃 | 丝袜一区在线 | 国产盗摄精品一区二区 | 日韩欧美一区二区三区视频 | 在线观看视频 | 一区二区三区www | 狠狠操天天射 | 91精品国产自产在线观看永久 | 久久撸在线视频 | 欧美性精品 | 亚洲欧洲中文日韩久久av乱码 | 3d黄动漫免费看 | 婷婷亚洲五月 | www免费视频com━ | 狠狠久久婷婷 | 亚洲不卡123 | 久久亚洲私人国产精品 | 国产在线观看你懂得 | 日韩在线观看一区二区三区 | 在线看日韩av | 国产一级黄大片 | 久久精品首页 | 久久久精品视频网站 | 国产精品亚州 | av免费网站 | 午夜色婷婷 | a黄在线观看| 国产丝袜制服在线 | av一本久道久久波多野结衣 | 欧美aaa一级| 激情婷婷在线观看 | 国产精品色婷婷视频 | 精品99在线 | 国产午夜小视频 | 日韩资源视频 | 久久精品精品电影网 | 伊人五月综合 | 国内精品久久久久久久久久 | 国产一级免费在线 | 国产视频18 | 久久精品网址 | 免费在线黄 | 国产高清视频在线观看 | 久久97久久97精品免视看 | 成人h电影在线观看 | 亚洲涩涩涩 | 久久久久久网站 | 国产成人精品一区二区三区在线观看 | 最近中文字幕国语免费av | 99性视频| 日韩黄色免费在线观看 | 免费瑟瑟网站 | 亚州欧美视频 | 在线观看免费av网站 | 在线亚洲欧美视频 | 毛片美女网站 | 六月丁香在线视频 | 99久久精品国产亚洲 | 久久免费精品 | 久草在线资源观看 | 成人av在线直播 | 中文字幕一区二区三区乱码在线 | 91丨九色丨丝袜 | 天天射天天干天天操 | 福利视频一二区 | 久久免费成人网 | 99久久精品国产免费看不卡 | 黄色国产高清 | 91亚洲精品乱码久久久久久蜜桃 | 麻豆久久一区二区 | 69人人| 五月天激情综合 | 天天舔天天射天天操 | 久久国产精品99久久人人澡 | 国产精品18久久久久久久久 | 日韩av偷拍 | 久草在线观看视频免费 | 日韩高清在线一区二区三区 | 免费久久久久久 | 一区二区三区免费在线观看 | 一区二区高清在线 | 色999五月色 | 国产婷婷精品 | 一区二区三区手机在线观看 | 亚洲欧洲国产精品 | www.色com | av一二三区 | 狠狠地操 | 日韩四虎| 国内视频 | 伊人激情网| 日本久久电影网 | 天天天综合网 | 久久久久久久18 | 国产色婷婷精品综合在线手机播放 | 日韩欧美电影 | 99久久99久久精品国产片果冰 | 日韩乱码在线 | 99精品国产一区二区三区不卡 | 精品天堂av | 黄色的视频 | 国语精品久久 | 探花视频在线观看+在线播放 | 国产日韩亚洲 | 91大神在线观看视频 | 激情五月综合 | 丁香高清视频在线看看 | 亚洲高清在线观看视频 | 尤物九九久久国产精品的分类 | 国产资源中文字幕 | 91综合色 | 成人av免费在线 | 九九精品视频在线看 | 成年人视频在线 | 天天爱av导航 | av网站手机在线观看 | 亚洲免费av在线播放 | 97人人模人人爽人人少妇 | 欧美成年黄网站色视频 | 国产精品久久久久久模特 | 伊人色综合网 | 亚洲国产精品影院 | 伊人久久精品久久亚洲一区 | 五月在线 | 国产一级黄色av | 草久热| 丁香综合 | 日韩美女久久 | 999久久精品 | 狠狠狠干狠狠 | 欧美大片在线观看一区 | 久久激情视频 | 亚洲三级在线播放 | 亚洲天堂va| 久久精品视频网址 | 国内精品视频一区二区三区八戒 | 91最新视频在线观看 | 成人av电影在线观看 | 麻豆国产电影 | 国产一级性生活视频 | 四虎伊人 | 国产99久久 | 日韩欧美综合精品 | 在线观看亚洲 | 日韩网站在线播放 | 三级av免费看 | 久久男人视频 | 久久精品国产一区二区电影 | 在线免费观看涩涩 | 日韩丝袜 | 在线观看激情av | 99色网站 | 九九九九色 | 国产美女永久免费 | 国产在线高清 | www在线免费观看 | 久精品一区 | 欧洲精品在线视频 | 亚州精品一二三区 | 激情自拍av | 日日婷婷夜日日天干 | 久久97超碰| 亚洲天堂社区 | 欧美激情xxxx性bbbb | 国产亚洲精品久久19p | 视频在线91 | 午夜精品久久久 | 久久99精品波多结衣一区 | 97色国产| 欧美日韩网站 | 99c视频在线 | 久久亚洲精品电影 | 天堂视频中文在线 | 国产99精品在线观看 | 九九热只有这里有精品 | 在线观看视频国产 | 天天操天天能 | www.久久爱.cn | 国产群p视频 | 国产91亚洲 | 成人av观看 | 九九精品视频在线观看 | 久久久免费观看 | 成人午夜电影网站 | 国产精品第一 | 亚洲午夜av久久乱码 | 久久热首页 | 五月天色站 | 99热精品国产 | www.久久久.com| 国产高清专区 | 1000部国产精品成人观看 | 日韩高清一区在线 | 黄a在线观看 | 国产精品不卡视频 | 成人黄色在线看 | 国产精品18久久久久vr手机版特色 | 国内外成人免费在线视频 | 五月激情姐姐 | 日韩亚洲在线视频 | 香蕉影院在线播放 | 91av小视频 | 有没有在线观看av | 国产日韩欧美在线播放 | av亚洲产国偷v产偷v自拍小说 | 免费看色视频 | 久久tv视频| 一区二区三区在线看 | 在线欧美中文字幕 | 亚洲午夜电影网 | 97成人在线| 极品美女被弄高潮视频网站 | 国产精品久久久久久久久蜜臀 | 探花视频在线观看免费 | 国产精品免费看久久久8精臀av | 黄色毛片视频免费 | 在线观看中文字幕视频 | 亚洲精品99久久久久中文字幕 | 国产成人精品综合久久久久99 | 激情五月在线观看 | 久久国产精品影视 | 91丨porny丨九色 | 在线免费观看黄色 | 国产精品黄色av | 久久人人爽人人爽人人片av免费 | www日韩在线观看 | 97偷拍在线视频 | 激情网婷婷 | 国产成人久久av | 在线观看成人av | 国产午夜麻豆影院在线观看 | 久久一精品 | 国产亚洲成人网 | 一区二区精品在线 | 亚洲在线 | 毛片网站在线观看 | 成人电影毛片 | 国产福利一区二区在线 | 狠狠狠狠狠狠干 | 激情综合五月婷婷 | 激情一区二区三区欧美 | 五月婷婷丁香网 | 午夜黄色影院 | 激情五月婷婷综合 | 欧洲亚洲激情 | a黄色片在线观看 | 日韩大片免费在线观看 | 午夜久久福利视频 | 亚洲精品www久久久久久 | 美女精品 | 永久免费的av电影 | a特级毛片 | 人人看人人做人人澡 | 亚洲爱av | 免费日韩电影 | 中文区中文字幕免费看 | 欧美日韩另类在线观看 | 黄色最新网址 | 久久久黄视频 | 国产精品扒开做爽爽的视频 | 中文在线中文资源 | 99c视频在线 | 国产护士hd高朝护士1 | 在线色视频小说 | 午夜国产在线观看 | 欧美日韩国产精品久久 | 国产成人香蕉 | 国产一区二区免费在线观看 | 中文字幕麻豆 | 欧美成人在线免费观看 | 91精品国产高清自在线观看 | 久久综合五月 | 午夜色影院| 日韩在线视频播放 | 欧美资源在线观看 | 国产综合91 | 国产精品久久久久久久久久直播 | 国产精品久久久久久久久久久久午 | 亚洲国产三级在线观看 | 成人av在线影院 | 国产一区二区在线精品 | 成年人在线免费看视频 | 九九爱免费视频在线观看 | 国产视频日本 | 美女黄网久久 | 亚洲精品三级 | 天天干,天天射,天天操,天天摸 | 在线视频 一区二区 | 999电影免费在线观看2020 | 久久综合九色综合久久久精品综合 | 激情伊人 | 免费黄色在线播放 | 国产传媒中文字幕 | 国内精品久久影院 | 欧美精品在线观看一区 | wwwwww色 | 久久久国产网站 | 国产精品久久久久久久久大全 | 808电影免费观看三年 | 免费视频你懂得 | 亚洲男人天堂2018 | 福利视频精品 | 成片视频免费观看 | 美女视频a美女大全免费下载蜜臀 | 日日躁你夜夜躁你av蜜 | 国产精品免费一区二区三区在线观看 | 91高清在线| 国产流白浆高潮在线观看 | 婷婷久久一区二区三区 | 色亚洲激情 | 国产91探花 | 欧美亚洲国产精品久久高清浪潮 | 国产精品成人av久久 | 国产高清免费av | 日韩欧美视频免费观看 | 日韩视频免费观看高清 | 久久你懂得 | 久久久久久久免费看 | 国产免费观看视频 | 国产一区二区三区免费观看视频 | av免费在线看网站 | 亚洲 综合 专区 | 免费亚洲一区二区 | 国产一级视频在线免费观看 | 欧美一区二区三区四区夜夜大片 | 六月丁香激情综合色啪小说 | 黄网在线免费观看 | av在线小说 | 天天艹天天爽 | 久草精品网 | 婷婷丁香六月 | 久久免费视频播放 | 三级视频国产 | 91九色视频国产 | 久草在线免 | 香蕉视频18| 黄色影院在线免费观看 | 高清av免费看 | 99热在线免费观看 | 亚洲精品影院在线观看 | 久久精品伊人 | 韩日视频在线 | 日韩在线观看你懂得 | 午夜10000| 亚洲精品在线观看视频 | 免费黄色在线网址 | 国产一区二区三区在线 | 日韩午夜一级片 | 成人av资源网 | 亚洲欧美日韩一级 | 久久亚洲欧美日韩精品专区 | 精品国产一区二区三区在线 | 波多野结衣在线观看一区二区三区 | 91精品国产一区二区三区 | 美女视频免费精品 | 久久理伦片 | 国产精品a久久 | 精品国产乱码久久久久久浪潮 | 色综合久久中文字幕综合网 | 国产98色在线 | 日韩 | 精品久久久免费视频 | 深爱激情久久 | 福利视频精品 | 精品国内自产拍在线观看视频 | 狠狠久久婷婷 | 久久久电影网站 | 日本动漫做毛片一区二区 | 91原创在线观看 | 日韩高清不卡一区二区三区 | 免费观看www7722午夜电影 | 91亚洲永久精品 | 久久精品视频在线 | 久久福利精品 | 国产综合精品一区二区三区 | 成人av一二三区 | 国产视频亚洲 | 一二三区在线 | 免费合欢视频成人app | 欧美激情第28页 | 国际精品久久久 | 国产视频亚洲精品 | 国产精品综合久久久 | 亚洲美女在线国产 | 日韩精品一区二区三区第95 | 国产精品欧美一区二区三区不卡 | 国产一区二区三区网站 | 爱情影院aqdy鲁丝片二区 | 久久久.com | 日韩欧美国产激情在线播放 | 一区二区激情视频 | 美女免费视频网站 | 国产手机视频在线 | 91精品伦理| 69精品视频在线观看 | 97超碰总站 | www国产亚洲精品 | 国产成人一区二区三区 | 色资源在线| av在线播放一区二区三区 | 久久99亚洲网美利坚合众国 | 人人玩人人添人人 | 欧美一级片免费 | 99精品国产成人一区二区 | 五月婷婷在线观看 | 日韩免费一级电影 | 97人人精品 | 91成人小视频 | 国产a级免费 | 精品乱码一区二区三四区 | 精品夜夜嗨av一区二区三区 | 99精品一区二区三区 | 日韩在线视频观看 | 午夜在线免费观看 | 色天天中文 | 中国一级片在线观看 | 91探花系列在线播放 | 亚洲日日射| 国产.精品.日韩.另类.中文.在线.播放 | 日韩国产高清在线 | 丁香六月激情婷婷 | 亚洲男模gay裸体gay | 久久高清国产 | 夜夜夜夜爽 | 欧美日韩1区2区 | 国产在线a免费观看 | 麻豆视频免费网站 | 欧美精品中文 | 亚洲精品美女久久久久网站 | 狠狠干天天操 | 国内精品视频在线播放 | 一区二区精品视频 | 免费看日韩片 | 日韩av影视在线 | 91福利视频在线 | 国产精品美女久久久网av | 久久99国产精品免费 | 樱空桃av | a精品视频| 91精品啪在线观看国产线免费 | 一区二区欧美激情 | 99精品欧美一区二区蜜桃免费 | 999久久久久久久久久久 | 视频在线观看入口黄最新永久免费国产 | 欧美一级特黄aaaaaa大片在线观看 | 亚洲精品视频在线播放 | 日本中文乱码卡一卡二新区 | 成人影片免费 | 亚洲国产美女精品久久久久∴ | 欧美性色黄大片在线观看 | 激情久久网 | 日韩网站免费观看 | 黄色三级在线看 | 欧美日韩精品网站 | 麻豆国产精品视频 | 久久综合狠狠综合 | 91高清完整版在线观看 | 欧美日韩不卡在线 | 深爱综合网 | 精品国产一区二区在线 | 午夜视频黄 | 精品产品国产在线不卡 | 中文字幕在线观看第三页 | 国产亚洲成av片在线观看 | 99热最新在线 | av大片免费| 欧美激情第十页 | 成年人视频在线免费播放 | 欧美一级片在线免费观看 | 天天狠狠| 91精品啪在线观看国产线免费 | 最近能播放的中文字幕 | 天天综合网天天综合色 | 久久国产色| 成人黄色在线观看视频 | 久草国产在线 | 亚洲开心激情 | 久久久污 | www.色就是色| 91精品免费视频 | 91豆花在线观看 | 日韩欧美一区二区在线 | 黄色一级网 | 欧美 日韩 成人 | 色wwwww| 97视频免费在线 | 深夜免费福利视频 | 500部大龄熟乱视频 欧美日本三级 | 中文字幕av有码 | 天天干天天操天天拍 | 国产又黄又爽无遮挡 | 欧美日韩一级久久久久久免费看 | 永久黄网站色视频免费观看w | 国产精品一区二区三区久久久 | 亚洲精品五月 | 91av中文| 人人爽久久久噜噜噜电影 | 99一级片| 久久久视屏 | 国产九九九精品视频 | 少妇18xxxx性xxxx片 | 婷婷精品在线 | 一区二区三区高清 | 黄色成人毛片 | 日韩视频www | 黄色福利网站 | 国产亚洲精品久久久久久大师 | 成人在线免费观看网站 | 欧美日韩二区在线 | 五月婷婷电影网 | 欧美坐爱视频 | 色视频网站免费观看 | 手机在线永久免费观看av片 | 国产成人精品一区在线 | 欧美精品一区二区性色 | 国产最顶级的黄色片在线免费观看 | 亚洲精品乱码久久久久久高潮 | 亚洲一区精品二人人爽久久 | 国产精品一区二区中文字幕 | 91精品国产综合久久婷婷香蕉 | 国内精品久久久久久久久 | 精品日本视频 | 亚洲一二三区精品 | 一区二区三区在线视频观看58 | 九色精品 | 久久国产精品免费一区二区三区 | 午夜久久 | 一级欧美日韩 | 国产精品久久久久久爽爽爽 | 国产精品久99 | 黄色成人av| 国产精品日韩在线播放 | 人人射人人爽 | 日韩av成人在线观看 | 999男人的天堂 | 亚洲精品乱码久久久久久 | 五月婷婷在线观看视频 | 欧美日韩在线免费观看 | 色综合激情网 | 国产精品免费麻豆入口 | 亚洲高清在线视频 | 日韩两性视频 | 九色91在线视频 | 久久96国产精品久久99漫画 | 波多野结衣动态图 | 国产高清精 | 日本成人a| 久久精品精品 | 久久综合综合久久综合 | 伊人小视频 | 超碰97.com | 久久电影中文字幕视频 | 在线超碰av | 国内成人精品2018免费看 | 午夜精品99久久免费 | 日韩欧美视频在线观看免费 | 国产美女精品视频免费观看 | 亚洲成人精品在线 | 91av资源在线 | 欧美日本中文字幕 | 午夜成人影视 | 97av影院| 天天射天天干天天爽 | 国产亚洲精品久久久久久电影 | 亚洲女在线 | 日韩视 | 波多野结衣理论片 | 国产又粗又猛又黄又爽的视频 | 天天天天色综合 | 成年人在线看视频 | 亚洲国产网站 | 中文字幕在线观看第二页 | 久久视频这里只有精品 | 一区二区三区免费播放 | 日韩va在线观看 | 四月婷婷在线观看 | 成人黄色在线观看视频 | 久久成人麻豆午夜电影 | 2022国产精品视频 | 久久久精品国产一区二区电影四季 | 日韩欧美在线视频一区二区 | 婷婷久久一区二区三区 | 97视频免费在线观看 | 伊人资源视频在线 | 天天操天天操天天操天天操 | 欧美激情综合五月色丁香 | 免费观看黄 | 亚洲五月六月 | 精品国产免费一区二区三区五区 | 日日夜夜精品免费视频 | 97超级碰碰| 激情久久久 | 国内免费的中文字幕 | 在线免费黄色毛片 | 伊人网站| 国产视频不卡一区 | 欧美日韩天堂 | 中文字幕中文字幕在线中文字幕三区 | 国产日韩高清在线 | 探花视频在线观看免费 | 五月天电影免费在线观看一区 | 人人爽久久久噜噜噜电影 | 国产一级视频在线观看 | 免费看国产一级片 |