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

歡迎訪問 生活随笔!

生活随笔

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

javascript

SpringMVC入门简单静态资源处理

發布時間:2023/12/31 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC入门简单静态资源处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring入門簡單靜態資源處理

  • Springmvc簡介及項目搭建
    • 1. 什么是springMVC?
    • SpringMVC處理請求的流程
    • 3. SpringMVC核心開發步驟
    • 4. SpringMVC的組件
    • 5. 如何在項目中添加springmvc
  • Springmvc之helloword實現
  • 簡單CRUD及返回值處理
    • springmvc對靜態資源的處理

Springmvc簡介及項目搭建

1. 什么是springMVC?

Spring Web MVC是一種基于Java的實現了MVC設計模式的、請求驅動類型的、輕量級Web框架。

SpringMVC處理請求的流程

首先用戶發送請求–>DispatherServlet(拿到請求url并且處理獲得請求/xx)
DispatcherServlet–>HandlerMapping(處理器映射器)找到被@requestMapping注解所標記的類或者方法
DispatcherServlet–>HandlerAdapter(處理器適配器)動態的實例化類,動態調用被標記的方法實現業務
HandlerAdapter–>處理器功能處理方法的調用
ModelAndView的邏輯視圖名–>ViewRecolver
View–>渲染
返回控制權給DispatcherServlet,由DispatcherServlet返回呼應給用戶,流程結束

3. SpringMVC核心開發步驟

1 DispatcherServlet在web.xml中的部署描述,從而攔截請求到springMVC
2 HandlerMapping的配置,從而將請求映射到處理器
3 HandlerAdapter的配置,從而支持多種類型的處理器
4 處理器(頁面控制器)的配置,從而刊行功能處理
5 ViewResolver的配置,從而將邏輯視圖名解析為具體的視圖技術

4. SpringMVC的組件

1 前端控制器(DispatcherServlet)
2 請求到處理器映射(HandlerMapping)
3 處理器適配器(HandlerAdapter)
4 視圖解析器(ViewResolver)
5 處理器或頁面控制器(Controller)
6 驗證器(Validator)
7 命令對象(Command 請求參數綁定到的對象就叫命令對象)
8 表單對象(Form Object提供給表單展示和提交到的對象就叫表單對象)

5. 如何在項目中添加springmvc

1 添加相關依賴

因為等會要演示分頁需要導入jstl

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.liuchunming</groupId><artifactId>ssm</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>ssm Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.plugin.version>3.7.0</maven.compiler.plugin.version><!--添加jar包依賴--><!--1.spring 5.0.2.RELEASE相關--><spring.version>5.0.2.RELEASE</spring.version><!--2.mybatis相關--><mybatis.version>3.4.5</mybatis.version><!--mysql--><mysql.version>5.1.44</mysql.version><!--pagehelper分頁jar依賴--><pagehelper.version>5.1.2</pagehelper.version><!--mybatis與spring集成jar依賴--><mybatis.spring.version>1.3.1</mybatis.spring.version><!--3.dbcp2連接池相關 druid--><commons.dbcp2.version>2.1.1</commons.dbcp2.version><commons.pool2.version>2.4.3</commons.pool2.version><!-- log4j2日志配置相關依賴 --><log4j2.version>2.9.1</log4j2.version><log4j2.disruptor.version>3.2.0</log4j2.disruptor.version><slf4j.version>1.7.13</slf4j.version><!--5.其他--><junit.version>4.12</junit.version><servlet.version>4.0.0</servlet.version><lombok.version>1.18.2</lombok.version><!-- redis與spring的整合依賴 --><redis.version>2.9.0</redis.version><redis.spring.version>1.7.1.RELEASE</redis.spring.version><!-- jackson --><jackson.version>2.9.3</jackson.version><jstl.version>1.2</jstl.version><standard.version>1.1.2</standard.version><tomcat-jsp-api.version>8.0.47</tomcat-jsp-api.version></properties><dependencies><!--1.spring相關--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version></dependency><!--2.mybatis相關--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--pagehelper分頁插件jar包依賴--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>${pagehelper.version}</version></dependency><!--mybatis與spring集成jar包依賴--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis.spring.version}</version></dependency><!--3.dbcp2連接池相關--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-dbcp2</artifactId><version>${commons.dbcp2.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId><version>${commons.pool2.version}</version></dependency><!-- log4j2日志相關依賴 --><!-- log配置:Log4j2 + Slf4j --><!-- slf4j核心包--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>${slf4j.version}</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>jcl-over-slf4j</artifactId><version>${slf4j.version}</version><scope>runtime</scope></dependency><!--核心log4j2jar包--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-api</artifactId><version>${log4j2.version}</version></dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>${log4j2.version}</version></dependency><!--用于與slf4j保持橋接--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-slf4j-impl</artifactId><version>${log4j2.version}</version></dependency><!--web工程需要包含log4j-web,非web工程不需要--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-web</artifactId><version>${log4j2.version}</version><scope>runtime</scope></dependency><!--需要使用log4j2的AsyncLogger需要包含disruptor--><dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>${log4j2.disruptor.version}</version></dependency><!--5.其他--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>${servlet.version}</version><scope>provided</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><!--mybatis與ehcache整合--><dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.1.0</version></dependency><!--ehcache依賴--><dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache</artifactId><version>2.10.0</version></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>${redis.version}</version></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>${redis.spring.version}</version></dependency><!-- jackson --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>${jackson.version}</version></dependency><!-- 5.3、jstl、standard --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>${standard.version}</version></dependency><!-- 5.4、tomcat-jsp-api --><dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jsp-api</artifactId><version>${tomcat-jsp-api.version}</version></dependency></dependencies><build><finalName>ssm</finalName><resources><!--解決mybatis-generator-maven-plugin運行時沒有將XxxMapper.xml文件放入target文件夾的問題--><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><!--解決mybatis-generator-maven-plugin運行時沒有將jdbc.properites文件放入target文件夾的問題--><resource><directory>src/main/resources</directory><includes><include>*.properties</include><include>*.xml</include></includes></resource></resources><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>${maven.compiler.plugin.version}</version><configuration><source>${maven.compiler.source}</source><target>${maven.compiler.target}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><dependencies><!--使用Mybatis-generator插件不能使用太高版本的mysql驅動 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency></dependencies><configuration><overwrite>true</overwrite></configuration></plugin><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build> </project>

2 在WEB-INF下添加springmvc-servlet.xml(spring-mvc.xml)


springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"><!-- 通過context:component-scan元素掃描指定包下的控制器--><!--1) 掃描com.javaxl.zf及子子孫孫包下的控制器(掃描范圍過大,耗時)--><aop:aspectj-autoproxy/><context:component-scan base-package="com.liuchunming"/><!--2) 此標簽默認注冊DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --><!--兩個bean,這兩個bean是spring MVC為@Controllers分發請求所必須的。并提供了數據綁定支持,--><!--@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,讀寫XML的支持(JAXB),讀寫JSON的支持(Jackson)--><mvc:annotation-driven></mvc:annotation-driven><!--3) ViewResolver --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- viewClass需要在pom中引入兩個包:standard.jar and jstl.jar --><property name="viewClass"value="org.springframework.web.servlet.view.JstlView"></property><property name="prefix" value="/"/><property name="suffix" value=".jsp"/></bean><!--4) 單獨處理圖片、樣式、js等資源 --><!--<mvc:resources location="/css/" mapping="/css/**"/>--><mvc:resources location="/static/" mapping="/static/**"/><!--<mvc:resources location="/js/" mapping="/js/**"/>--></beans>

3 修改web.xml

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"><display-name>Archetype Created Web Application</display-name><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 讀取Spring上下文的監聽器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- Spring和web項目集成end --><!-- 防止Spring內存溢出監聽器 --><listener><listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class></listener><!-- 中文亂碼處理 --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><!--web.xml 3.0的新特性,是否支持異步--><async-supported>true</async-supported><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- Spring MVC servlet --><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!--此參數可以不配置,默認值為:/WEB-INF/springmvc-servlet.xml--><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup><!--web.xml 3.0的新特性,是否支持異步--><async-supported>true</async-supported></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

Springmvc之helloword實現

1 @Controller:用于標識處理器類 相當與替換了struts中的<action type=“xxx” 標簽

2 @RequestMapping:請求到處理器功能方法的映射規則,可定義到類和方法
常用參數:value、method
可將@RequestMapping標簽定義到類名處窄化路徑

3 @RequestParam:請求參數到處理器功能處理方法的方法參數上的綁定
常用參數:value、required、defaultValue
注:required設置成false的參數類型必須是引用類型,因為基本數據類型是不能為null的

4 @ModelAttribute:請求參數到命令對象的綁定
常用參數:value
4.1 可用@ModelAttribute標注方法參數,方法參數會被添加到Model對象中(作用:向視圖層傳數據)
4.2 可用@ModelAttribute標注一個非請求處理方法,此方法會在每次調用請求處理方法前被調用(作用:數據初始化)
4.3 可用@ModelAttribute標注方法,方法返回值會被添加到Model對象中(作用:向視圖層傳數據)
但此方法視圖的邏輯圖就會根據請求路徑解析,例如:a/test42 --> /WEB-INF/a/test42.jsp
太麻煩幾乎不用,不用直接保存到Model或ModelAndView中

5@SessionAttributes:指定ModelMap中的哪些屬性需要轉存到session
常用參數:value、types
注1:必須放到class類名處

6 @InitBinder(本章暫不介紹):用于將請求參數轉換到命令對象屬性的對應類型

7@RequestBody(重要):用于目前比較流行的ajax開發的數據綁定(即提交數據的類型為json格式)

@ResponseBody 等于
ObjectMapper om =new ObjectMapper();
String xxx = om.writeValueAsString(“xxx”);
二行代碼
只要有這個@ResponseBody不管你方法的返回值是
String類型還是集合它都能給你返回json數據
第一個springMVC程序:HelloWorld
創建controller包添加HelloContrller

HelloController

package com.liuchunming.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap; import java.util.Map;/*** @author liuchunming* @site www.liuchunming.com* @company xxx公司* @create 2020-10-23 11:17*/ //將這個類交給spring所管理 @Controller public class HelloController {/*** @ResponseBody 等于* ObjectMapper om =new ObjectMapper();* String xxx = om.writeValueAsString("xxx");* 三行代碼* 只要有這個@ResponseBody不管你方法的返回值是* String類型還是集合它都能給你返回json數據** 五種情況* 1、轉發到頁面* 2、轉發到根路徑下的頁面* 3、轉發到requestMapper中* 4、重定向Dao根路徑下的頁面* 5、重定向到requestmapper下* @return*/@ResponseBody@RequestMapping("/hello1")public String hello1() {System.out.println("hello1 springmvc");return "hello1 springmvc";}@RequestMapping("/hello2")public String hello2(){System.out.println("hello2 springmvc 會進入頁面");return "hello";}@ResponseBody@RequestMapping("/hello3")public Map hello3(){System.out.println("hello3 springmvc json");Map map=new HashMap();map.put("total",12);map.put("rows","一串的數據");return map;}/*五種情況* 1、轉發到頁面* 2、轉發到根路徑下的頁面* 3、轉發到requestMapper中* 4、重定向Dao根路徑下的頁面* 5、重定向到requestMapper下* @RequestMapping("/forward1")public String forward1(){System.out.println("進來forward");return "aa";}@RequestMapping("/forward2")public String forward2(){return "forward:/bb.jsp";}@RequestMapping("/forward3")public String forward3(){return "forward:/forward1";}@RequestMapping("/redirect1")public String redirect1(){return "redirect:/bb.jsp";}@RequestMapping("/redirect2")public String redirect2(){return "redirect:/forward1";} */ }

訪問hello1直接返回json串

進入到hello.jsp

集合也是返回json

頁面跳轉五種情況
1、轉發到頁面
2、轉發到根路徑下的頁面
3、轉發到requestMapper中
4、重定向Dao根路徑下的頁面
5、重定向到requestMapper下

轉發:“forward:path”
重定向:“redirect:path”
注1:這兩種跳轉方式將會繞開視圖解析器的前綴和后綴
注2:還有就是如果是在同一controller中則不用使用"/"從根目錄開始,而如果是在不同的controller則一定要從根目錄開始。

HelloController

package com.liuchunming.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap; import java.util.Map;/*** @author liuchunming* @site www.liuchunming.com* @company xxx公司* @create 2020-10-23 11:17*/ //將這個類交給spring所管理 @Controller public class HelloController {/*** @ResponseBody 等于* ObjectMapper om =new ObjectMapper();* String xxx = om.writeValueAsString("xxx");* 三行代碼* 只要有這個@ResponseBody不管你方法的返回值是* String類型還是集合它都能給你返回json數據** 五種情況* 1、轉發到頁面* 2、轉發到根路徑下的頁面* 3、轉發到requestMapper中* 4、重定向Dao根路徑下的頁面* 5、重定向到requestmapper下* @return@ResponseBody@RequestMapping("/hello1")public String hello1() {System.out.println("hello1 springmvc");return "hello1 springmvc";}@RequestMapping("/hello2")public String hello2(){System.out.println("hello2 springmvc");return "hello";}@ResponseBody@RequestMapping("/hello3")public Map hello3(){System.out.println("hello3 springmvc");Map map=new HashMap();map.put("total",12);map.put("rows","一串的數據");return map;}*//*五種情況* 1、轉發到頁面* 2、轉發到根路徑下的頁面* 3、轉發到requestMapper中* 4、重定向Dao根路徑下的頁面* 5、重定向到requestMapper下* */@RequestMapping("/forward1")public String forward1(){System.out.println("進來forward");return "aa";}@RequestMapping("/forward2")public String forward2(){return "forward:/bb.jsp";}@RequestMapping("/forward3")public String forward3(){return "forward:/forward1";}@RequestMapping("/redirect1")public String redirect1(){return "redirect:/bb.jsp";}@RequestMapping("/redirect2")public String redirect2(){return "redirect:/forward1";}}

簡單CRUD及返回值處理

@PathVariable:用于將請求 URL 中的模板變量映射到功能處理方法的參數上,即取出 uri 模板中的變量作為參數。

之前是實現Modedriver來進行傳值的,現在不用了,只需要在方法里面加一個實體就ok了,前臺傳值只需要注意與實體的屬性對應就沒問題。

其實現原理是利用環繞通知中獲取所有參數的那種方法+反射賦值實現的。

分頁標簽
PageTag

package com.liuchunming.tag;import com.liuchunming.util.PageBean;import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.BodyTagSupport; import java.io.IOException; import java.util.Map; import java.util.Map.Entry; import java.util.Set;public class PageTag extends BodyTagSupport{private static final long serialVersionUID = 1L;private PageBean pageBean;public PageBean getPageBean() {return pageBean;}public void setPageBean(PageBean pageBean) {this.pageBean = pageBean;}@Overridepublic int doStartTag() throws JspException {JspWriter out = pageContext.getOut();try {out.print(toHTML());} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return super.doStartTag();}private String toHTML() {StringBuilder sb=new StringBuilder();//拼接下一次發送請求所要提交的隱藏的form表單sb.append("<form id='pageBeanForm' action='"+pageBean.getUrl()+"' method='post'>");//差第幾頁的數據sb.append("<input type='hidden' name='page'>");Map<String, String[]> pageMap = pageBean.getMap();if(pageMap.size()>0) {Set<Entry<String,String[]>> entrySet = pageMap.entrySet();for (Entry<String, String[]> entry : entrySet) {if(!"page".equals(entry.getKey())) {for(String val:entry.getValue()) {sb.append("<input type='hidden' value='"+val+"' name='"+entry.getKey()+"'>");}}}}sb.append("</form>");//默認展示前面四頁int page =pageBean.getPage();//獲取當前頁int max=pageBean.getMaxPage();//獲取最大頁//當前頁前面的頁碼是否大于4,大于就是4,小于前面頁碼-1int before = page > 4 ? 4 : page-1;//總共10頁減去當前頁,再減去當前頁前面的頁碼int after = 10 - 1 - before;//最大頁-當前頁after = max-page > after ? after : max-page;//用來控制上一頁點擊按鈕特效的boolean startFlag = page == 1;//用來控制下一頁點擊按鈕特效的boolean endFlag = max == page; // 拼接分頁條sb.append("<ul class='pagination'>");sb.append("<li class='page-item "+(startFlag ? "disabled" : "")+"'><a class='page-link' href='javascript:gotoPage(1)'>首頁</a></li>");sb.append("<li class='page-item "+(startFlag ? "disabled" : "")+"'><a class='page-link' href='javascript:gotoPage("+pageBean.getPreivousPage()+")'>&lt;</a></li>");// 代表了當前頁的前4頁for (int i = before; i > 0 ; i--) {sb.append("<li class='page-item'><a class='page-link' href='javascript:gotoPage("+(page-i)+")'>"+(page-i)+"</a></li>");}sb.append("<li class='page-item active'><a class='page-link' href='javascript:gotoPage("+pageBean.getPage()+")'>"+pageBean.getPage()+"</a></li>");// 代表了當前頁的后5頁for (int i = 1; i <= after; i++) {sb.append("<li class='page-item'><a class='page-link' href='javascript:gotoPage("+(page+i)+")'>"+(page+i)+"</a></li>");}sb.append("<li class='page-item "+(endFlag ? "disabled" : "")+"'><a class='page-link' href='javascript:gotoPage("+pageBean.getNextPage()+")'>&gt;</a></li>");sb.append("<li class='page-item "+(endFlag ? "disabled" : "")+"'><a class='page-link' href='javascript:gotoPage("+pageBean.getMaxPage()+")'>尾頁</a></li>");sb.append("<li class='page-item go-input'><b>到第</b><input class='page-link' type='text' id='skipPage' name='' /><b>頁</b></li>");sb.append("<li class='page-item go'><a class='page-link' href='javascript:skipPage()'>確定</a></li>");sb.append("<li class='page-item'><b>共"+pageBean.getTotal()+"條</b></li>");sb.append("</ul>");// 拼接分頁的js代碼sb.append("<script type='text/javascript'>");sb.append("function gotoPage(page) {");sb.append("document.getElementById('pageBeanForm').page.value = page;");sb.append("document.getElementById('pageBeanForm').submit();");sb.append("}");sb.append("function skipPage() {");sb.append("var page = document.getElementById('skipPage').value;");sb.append("if (!page || isNaN(page) || parseInt(page) < 1 || parseInt(page) > "+max+") {");sb.append("alert('請輸入1~N的數字');");sb.append("return;");sb.append("}");sb.append("gotoPage(page);");sb.append("}");sb.append("</script>");return sb.toString();} }

pageBean

package com.liuchunming.util;import javax.servlet.http.HttpServletRequest; import java.io.Serializable; import java.util.Map;public class PageBean implements Serializable {private static final long serialVersionUID = 2422581023658455731L;//頁碼private int page=1;//每頁顯示記錄數private int rows=10;//總記錄數private int total=0;//是否分頁private boolean isPagination=true;//上一次的請求路徑private String url;//獲取所有的請求參數private Map<String,String[]> map;public PageBean() {super();}//設置請求參數public void setRequest(HttpServletRequest req) {String page=req.getParameter("page");String rows=req.getParameter("rows");String pagination=req.getParameter("pagination");this.setPage(page);this.setRows(rows);this.setPagination(pagination);this.url=req.getContextPath()+req.getServletPath();this.map=req.getParameterMap();}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public Map<String, String[]> getMap() {return map;}public void setMap(Map<String, String[]> map) {this.map = map;}public int getPage() {return page;}public void setPage(int page) {this.page = page;}public void setPage(String page) {if(null!=page&&!"".equals(page.trim()))this.page = Integer.parseInt(page);}public int getRows() {return rows;}public void setRows(int rows) {this.rows = rows;}public void setRows(String rows) {if(null!=rows&&!"".equals(rows.trim()))this.rows = Integer.parseInt(rows);}public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}public void setTotal(String total) {this.total = Integer.parseInt(total);}public boolean isPagination() {return isPagination;}public void setPagination(boolean isPagination) {this.isPagination = isPagination;}public void setPagination(String isPagination) {if(null!=isPagination&&!"".equals(isPagination.trim()))this.isPagination = Boolean.parseBoolean(isPagination);}/*** 獲取分頁起始標記位置* @return*/public int getStartIndex() {//(當前頁碼-1)*顯示記錄數return (this.getPage()-1)*this.rows;}/*** 末頁* @return*/public int getMaxPage() {int totalpage=this.total/this.rows;if(this.total%this.rows!=0)totalpage++;return totalpage;}/*** 下一頁* @return*/public int getNextPage() {int nextPage=this.page+1;if(this.page>=this.getMaxPage())nextPage=this.getMaxPage();return nextPage;}/*** 上一頁* @return*/public int getPreivousPage() {int previousPage=this.page-1;if(previousPage<1)previousPage=1;return previousPage;}@Overridepublic String toString() {return "PageBean [page=" + page + ", rows=" + rows + ", total=" + total + ", isPagination=" + isPagination+ "]";} }

l.tld

<?xml version="1.0" encoding="UTF-8"?><taglib xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"version="2.0"><description>JSTL 1.1 core library</description><display-name>JSTL core</display-name><tlib-version>1.1</tlib-version><short-name>l</short-name><uri>/liuchunming</uri><tag><name>page</name><tag-class>com.liuchunming.tag.PageTag</tag-class><body-content>JSP</body-content><attribute><name>pageBean</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag> </taglib>

BookController

package com.liuchunming.controller;import com.liuchunming.model.Book; import com.liuchunming.service.BookService; import com.liuchunming.util.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest; import java.util.List;/*** @author liuchunming* @site www.liuchunming.com* @company xxx公司* @create 2020-10-24 9:03* @RequestMapping("/book") :定義命名空間,防止請求重復*/ @Controller @RequestMapping("/book") public class BookController {@Autowiredprivate BookService bookService;@RequestMapping("/list")public String list(Book book, HttpServletRequest req){PageBean pageBean =new PageBean();pageBean.setRequest(req);List<Book> bb = this.bookService.listPager(book, pageBean);req.setAttribute("bookList",bb);req.setAttribute("pageBean",pageBean);return "bookList";}@RequestMapping("/proSave")public String proSave(Book book, HttpServletRequest req){if(book !=null && book.getBid() !=null && book.getBid()!=0){Book b = this.bookService.selectByPrimaryKey(book.getBid());req.setAttribute("book2",b);}return "bookEdit";}@RequestMapping("/add")public String add(Book book,HttpServletRequest req){this.bookService.insert(book);//redirect:/book/list 跳到命名空間中的list方法return "redirect:/book/list";}@RequestMapping("/edit")public String edit(Book book, HttpServletRequest req){this.bookService.updateByPrimaryKeySelective(book);return "redirect:/book/list";}@RequestMapping("/del/{bid}")public String del(@PathVariable("bid") Integer bid, HttpServletRequest req){this.bookService.deleteByPrimaryKey(bid);return "redirect:/book/list";} }

效果

模糊查詢

springmvc對靜態資源的處理

正常來說我訪問項目下這張圖片是訪問不到的會報錯404,springmvc框架會將靜態資源文件訪問,當作一個request請求來處理,最終會找不到對應的資源文件


在springmvc-servlet.xml中配置映射js/css映射路徑


訪問效果

總結

以上是生活随笔為你收集整理的SpringMVC入门简单静态资源处理的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日韩在线观看影院 | 亚洲国产97在线精品一区 | 99热高清| 日日夜夜综合 | 成人xxxx| 综合色播| 久草资源免费 | 欧美一区在线观看视频 | 91久久精品一区 | 99免费精品| 亚洲色图美腿丝袜 | 欧日韩在线 | 国产精品成人在线 | 成年人国产在线观看 | 久久久久久久久久久久电影 | 激情网婷婷| 久久久久久久久免费视频 | 黄色免费看片网站 | 国产91电影在线观看 | 综合网久久 | 精品极品在线 | 精品一区二区三区香蕉蜜桃 | 久久精品国产久精国产 | 国产精品一区二区三区电影 | 麻豆91网站 | 久久久久久久久免费视频 | www五月天婷婷 | 人人艹人人 | 日韩免费一区二区 | 亚洲一区网 | 国产亚洲情侣一区二区无 | 性色av免费看 | 日韩激情中文字幕 | 亚洲日本韩国一区二区 | 人人插人人舔 | 亚洲色图美腿丝袜 | 国产精品成人aaaaa网站 | 亚洲一区网| 91在线视频精品 | 四虎伊人 | 日本一区二区三区视频在线播放 | 久久伊人综合 | 色伊人网 | 99亚洲精品视频 | 免费观看十分钟 | 精品国产大片 | 免费视频三区 | 日韩网站一区 | av中文在线| 丁香婷婷激情国产高清秒播 | av中文字幕免费在线观看 | 国产黄色视 | 国产一区视频导航 | 91av在线电影 | 91高清免费看 | 综合色亚洲 | 成人一级| 免费观看9x视频网站在线观看 | 成人精品在线 | 麻豆91精品视频 | 日韩在线中文字幕 | 亚洲午夜久久久久久久久 | 免费看片色 | 日韩特级片 | 激情xxxx| 久久久午夜剧场 | 日本韩国在线不卡 | 久久综合影视 | 亚洲精品国偷拍自产在线观看蜜桃 | 中文字幕亚洲欧美日韩2019 | 天天射天天射 | 操操碰 | 免费a级观看 | 日韩视频在线一区 | 亚洲综合精品视频 | 天天草天天干天天 | 久久成人在线 | 国产黄在线免费观看 | 中文字幕在线色 | 成人黄视频 | 日韩精品一区二区三区三炮视频 | 久久色中文字幕 | 国产精品成人自产拍在线观看 | 91精品一区国产高清在线gif | 国产精品视屏 | 日韩av一区二区三区在线观看 | 国产精品毛片久久蜜 | 麻豆精品视频 | 特级毛片在线观看 | 久久精品理论 | 亚洲精品国产片 | 国产精品美女久久久久久久 | 久草在线视频中文 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 1000部国产精品成人观看 | 国产精彩视频 | 热99久久精品 | 91av视频在线观看 | 国产精品九色 | 欧美超碰在线 | 在线电影日韩 | 亚洲做受高潮欧美裸体 | 天天操天天曰 | 国产艹b视频 | 一本一本久久a久久精品牛牛影视 | av看片在线| 正在播放一区 | 91精品啪在线观看国产 | 99视频播放 | 久久影院亚洲 | 五月天久久久 | 美女免费视频观看网站 | 最近免费中文字幕大全高清10 | 中文在线中文a | 久久免费视频1 | 国产色在线,com | 婷婷久久网| 久久色亚洲 | 91九色蝌蚪视频在线 | 99精品免费在线观看 | 国内精品久久久久久久久久久久 | 免费看在线看www777 | 天天av天天 | 成人在线视频观看 | 天天草天天 | 久久理论电影 | 欧美最新另类人妖 | 成人一级片免费看 | 九九热免费在线观看 | 婷婷色婷婷 | 亚洲女人av | 在线视频日韩一区 | 激情小说网站亚洲综合网 | 日韩在线观看第一页 | 天天做天天爱天天综合网 | 国产精选在线 | 亚洲精品久久久蜜桃 | 成人手机在线视频 | 免费在线观看av网址 | 国产中文字幕视频 | 日韩av电影国产 | 国产精品情侣视频 | 亚洲成av片人久久久 | 国产女教师精品久久av | 免费在线观看黄 | 国产精品专区在线 | 久久久三级视频 | 91手机电视 | 国产亚洲人| 国产伦精品一区二区三区免费 | 国内精品视频在线 | 国产日韩欧美网站 | 在线观看视频精品 | 超碰大片 | 国产91小视频 | 精品国产91亚洲一区二区三区www | 欧美污污网站 | 国产五十路毛片 | 免费看的黄色网 | 欧美日韩国产精品久久 | av高清影院| 亚洲视频免费 | 97麻豆视频 | 日韩精品无 | 亚洲电影av在线 | 少妇bbb好爽 | av播放在线 | 免费看片网址 | 日韩高清成人 | 久久精品免费电影 | 一级特黄aaa大片在线观看 | av福利在线 | 国产精品福利在线播放 | 在线 日韩 av | 在线天堂中文在线资源网 | 超碰激情在线 | 精品一二 | 亚洲第一区在线播放 | 国产成人av网 | 黄色1级大片 | 亚洲综合情 | 国产欧美精品一区二区三区 | 国产香蕉97碰碰碰视频在线观看 | 在线观看 亚洲 | 久久伊人综合 | 日韩丝袜在线观看 | 日韩在线高清免费视频 | 黄色在线观看污 | 天天操福利视频 | 色中色亚洲 | 免费看黄色小说的网站 | 亚洲一级国产 | 美女在线免费观看视频 | 精品一区二区在线播放 | 一二三区视频在线 | 国产亚洲视频在线免费观看 | www.色国产 | 九色视频网址 | 免费看黄的 | 久久不见久久见免费影院 | 成人毛片100免费观看 | 日日干夜夜爱 | 国产毛片久久久 | 激情深爱.com | 国产在线一区二区 | 国产国语在线 | 国产精品美女视频网站 | 国内一区二区视频 | 精品日韩av| 久久极品 | 日韩毛片精品 | 国产资源在线播放 | 国产精品一区二区三区在线 | 国产精品成人一区二区 | 五月精品 | 五月激情丁香图片 | 伊人亚洲精品 | 成人av高清 | 日韩精品久久一区二区 | 欧美日韩不卡在线视频 | 国产 欧美 日韩 | 黄色av成人在线观看 | 国产一线二线三线在线观看 | 91人网站 | 午夜久久久影院 | 成人毛片一区二区三区 | 98涩涩国产露脸精品国产网 | 99精品国产一区二区三区不卡 | 欧美日韩中字 | 亚洲国产精品久久久久婷婷884 | www五月天婷婷 | 超碰97人| 午夜电影久久 | www.夜夜干.com | 亚洲天天摸日日摸天天欢 | 亚洲国产三级在线观看 | 九九热av| 日韩电影一区二区在线 | 久久久久久久久久久久电影 | 国产精品成人a免费观看 | 五月天婷婷在线观看视频 | 欧美色伊人 | 亚洲精品视频免费观看 | 欧美日韩国产一区二区三区 | 久久国产精品久久w女人spa | 亚洲精品综合欧美二区变态 | 日韩国产高清在线 | 免费在线观看成年人视频 | 香蕉视频一级 | 精品1区2区 | 国产精品毛片网 | 91香蕉视频在线下载 | 久久久久久久久免费 | 欧美人体xx| 午夜美女福利 | 韩日电影在线 | 国产成人免费精品 | 久久精品一区二区三 | 亚洲专区 国产精品 | 国产高清在线观看av | 久久精品视频在线观看免费 | 正在播放国产91 | 国产流白浆高潮在线观看 | 中文字幕视频播放 | av在线一级 | 亚洲精品天天 | 国产精品一区久久久久 | 亚洲午夜精品福利 | 久久精品精品电影网 | 日韩成人精品一区二区三区 | 69国产精品视频免费观看 | 欧美日韩免费网站 | 精品久久久久久国产偷窥 | 日本精品二区 | 欧美一级特黄aaaaaa大片在线观看 | 99免费在线观看视频 | 99精品一级欧美片免费播放 | 综合激情av | 521色香蕉网站在线观看 | 久久国产精品免费一区二区三区 | 热re99久久精品国产99热 | 日韩在线视频二区 | 国产精品手机在线播放 | 成 人 黄 色视频免费播放 | 人人看黄色 | 99久久久久久久久久 | 久草在线免费色站 | 区一区二在线 | 久久综合欧美精品亚洲一区 | 久久综合狠狠综合久久激情 | 日韩特级片 | 久久精品国产免费看久久精品 | 天天综合天天做 | 视频在线一区二区三区 | 日韩av中文字幕在线 | 亚洲精品66| 天天色婷婷 | 中文字幕视频观看 | 亚洲精品国内 | 91视频在线观看免费 | 欧美 日韩精品 | 日韩一区二区三区免费视频 | 久久婷婷五月综合色丁香 | 国产美女视频免费 | 韩国精品福利一区二区三区 | 亚洲女人天堂成人av在线 | 69久久久久久久 | 久久视讯| 98精品国产自产在线观看 | 婷色在线 | av在线播放中文字幕 | 97免费在线观看 | 狠狠干激情 | 欧美午夜精品久久久久久孕妇 | 天天天操操操 | 成人羞羞视频在线观看免费 | 色综合天天综合在线视频 | 黄色成人91 | 日韩精品黄 | 国产精品久久视频 | 久久精品香蕉 | 在线免费观看的av | 欧美成a人片在线观看久 | 黄色三级在线观看 | 午夜免费视频网站 | 激情欧美xxxx | 岛国av在线不卡 | 日韩欧美一区二区三区视频 | 最近高清中文在线字幕在线观看 | 一区二区视频在线播放 | 中文不卡视频在线 | 丁香婷婷综合激情 | 西西4444www大胆视频 | 中文字幕久久亚洲 | 一区二区三区电影大全 | 悠悠av资源片 | 韩日精品中文字幕 | 国产一级片免费视频 | 成人av在线网 | 中文字幕在线成人 | 久久精品3 | 天天操天天操天天操天天操天天操天天操 | 日韩一区二区三区在线观看 | 成人午夜电影网 | 欧美一级免费高清 | 日韩欧美精品在线观看 | 欧美激情亚洲综合 | av电影av在线| 99热在线国产 | av免费在线观看1 | 欧美日韩在线免费观看 | 国产精品va在线观看入 | 精品国产乱码久久久久久1区二区 | 国产视频2021| 最近高清中文在线字幕在线观看 | 91亚色在线观看 | 999久久久国产精品 高清av免费观看 | 国产精品一区二区在线观看免费 | 亚洲综合在线五月天 | 久草久草久草久草 | 97av免费视频 | 欧美日韩在线视频观看 | 美女网站在线播放 | 免费在线观看午夜视频 | 色婷久久| 深爱激情久久 | 97在线精品 | 久草网免费| 亚洲国产日韩在线 | 国产一区在线看 | 五月天色综合 | www.xxxx变态.com| 国产护士在线 | 99精品视频在线播放观看 | 亚洲欧美视频在线播放 | 日韩欧美国产精品 | 黄色在线成人 | 欧美视频日韩视频 | 夜夜躁日日躁狠狠久久av | 最新真实国产在线视频 | 激情久久伊人 | 91天堂影院 | 天天操操操操操 | 日韩在线观看精品 | www.色午夜,com | 亚洲影院一区 | 国产精品久久久久免费观看 | 国产精品中文字幕av | 91av在线免费视频 | 欧美日韩一级久久久久久免费看 | 91精品国自产在线观看 | 国产视频黄 | 奇人奇案qvod | 免费看亚洲毛片 | 精品国产成人 | 黄色av电影在线 | 亚州国产视频 | 黄色福利视频网站 | 96精品视频 | 天堂网一区二区 | 91成人看片 | 夜夜躁狠狠燥 | 亚洲精品综合一区二区 | 国产成人一区二区三区 | 美女视频黄频大全免费 | 玖玖999| www.人人草| www在线观看视频 | 久久婷婷国产 | 久久狠狠干 | 成人免费在线播放视频 | 深爱婷婷| 2021国产精品 | 99精品视频网站 | 亚洲永久精品一区 | 亚洲另类视频在线观看 | 精品免费视频 | 亚洲精品视频网址 | 国产一区二三区好的 | 久草在线视频首页 | 能在线观看的日韩av | 精品亚洲午夜久久久久91 | 国产精品入口传媒 | 亚洲专区在线播放 | 婷婷久久网 | 国产精品福利无圣光在线一区 | 国产精品日韩在线播放 | 久久激五月天综合精品 | 欧美日本一区 | 人人爱天天操 | 国产大片黄色 | 在线观看91av | 国产一区二区在线观看视频 | 日韩三级视频在线看 | 日本最新高清不卡中文字幕 | 国产精品麻豆三级一区视频 | 欧美一区在线观看视频 | 91精品在线免费观看视频 | 人人澡人人添人人爽一区二区 | 欧美日韩精品区 | 亚洲区视频在线观看 | 美女久久99 | 精品一区 在线 | 久久国产成人午夜av影院潦草 | 欧美视频日韩视频 | 免费能看的黄色片 | 久久久久久久久久久影视 | 国产一级性生活 | 国产乱码精品一区二区蜜臀 | 99精品在线视频播放 | 91成人精品一区在线播放69 | 欧美性一级观看 | 在线观看www视频 | 日日夜夜草 | 亚洲三级精品 | 久久这里只有精品视频首页 | 久久久国产精品免费 | 国产精品久久久久久久久久 | 久久国产精品久久久 | 精品三级av | 精品视频网站 | 欧美日韩在线精品 | 久久久亚洲国产精品麻豆综合天堂 | 麻豆免费看片 | 婷婷久久网站 | 国产原厂视频在线观看 | 免费看污在线观看 | 97色狠狠 | 日韩av片无码一区二区不卡电影 | 日韩精品中文字幕在线 | 日本精a在线观看 | 超碰在线人人艹 | 久久精品香蕉视频 | 91.精品高清在线观看 | 69精品| 三级黄色网址 | 日韩精品久久久久久久电影99爱 | 国产精品一区二区三区久久久 | 免费观看午夜视频 | 激情综合色图 | 六月丁香综合 | 91网站观看| 婷婷丁香激情五月 | 国产一卡二卡在线 | 欧美国产日韩中文 | 国产高清在线 | 狠狠色丁香久久婷婷综合丁香 | 日本精品久久久久久 | 91大片网站| 国产中文字幕网 | 一色av| 婷婷精品在线视频 | 亚洲综合网站在线观看 | 久久久久免费视频 | 337p西西人体大胆瓣开下部 | 久久99在线 | 2021国产精品 | 狠狠躁夜夜av | 天天插综合| 黄色av一级片 | 中文字幕一区二区在线播放 | 久久一区国产 | 国产99久久九九精品免费 | 亚洲欧美国产精品 | 97在线视频免费 | 在线欧美最极品的av | 成人少妇影院yyyy | 亚洲国产日韩一区 | 久久一久久 | 亚洲精品美女视频 | 又紧又大又爽精品一区二区 | 欧美美女视频在线观看 | 欧美a级免费视频 | 久草在| 91c网站色版视频 | 天天干天天操天天搞 | 国产精品免费看久久久8精臀av | 成人av在线看 | 日韩高清观看 | 亚洲欧美综合精品久久成人 | 97超碰人人在线 | 久久综合色一综合色88 | 国产一级做a | 视频在线国产 | 99在线热播 | 国产精品资源在线观看 | 日韩av网站在线播放 | 特级毛片爽www免费版 | 韩国精品一区二区三区六区色诱 | 日韩免费福利 | 亚洲一区二区视频在线播放 | 日韩影片在线观看 | 天天干夜夜夜 | 日韩性色| 日韩欧美aaa | 91成年视频| 国产黄视频在线观看 | 美女免费视频观看网站 | 国产香蕉视频 | 日本黄网站 | 日韩一区二区三区高清在线观看 | 成人av在线播放网站 | 伊人伊成久久人综合网站 | 人人爱在线视频 | 波多野结衣在线观看一区二区三区 | 久二影院 | www日日夜夜 | 欧美最新另类人妖 | 国内丰满少妇猛烈精品播 | 欧美日韩伦理在线 | 最近字幕在线观看第一季 | 国产精品18久久久久久久网站 | 免费av影视 | 国产日韩精品视频 | 国产免费影院 | av在线免费播放网站 | 久久久999精品视频 国产美女免费观看 | 国产一区在线免费 | 日韩r级电影在线观看 | 欧美激情精品久久久久 | 色资源网免费观看视频 | 午夜视频在线观看一区二区三区 | 视频99爱| a黄色大片 | 99精品欧美一区二区三区黑人哦 | www.婷婷com | 免费碰碰| 伊人视频 | 久久久亚洲麻豆日韩精品一区三区 | 成 人 黄 色视频免费播放 | 国产成人精品亚洲精品 | 亚洲欧美日韩在线看 | 国产主播大尺度精品福利免费 | 国内精品久久久久久 | 天天操操操操操 | 欧美日韩精品电影 | av免费观看在线 | 最近免费观看的电影完整版 | 国产精品一区二区精品视频免费看 | 免费看片成年人 | aaawww| 在线电影播放 | 亚洲影视九九影院在线观看 | 国产毛片aaa | 日韩在线视频一区 | 日韩精品极品视频 | 91资源在线播放 | 久草免费在线观看视频 | 99热这里只有精品久久 | 成人久久综合 | 国产一区免费 | 天天操天天射天天插 | 亚洲综合干 | 婷婷九九 | www.伊人色.com | 97超碰在线播放 | 99久热在线精品视频观看 | 亚洲综合色丁香婷婷六月图片 | 久久精品综合一区 | 亚洲自拍av在线 | 久久久久电影 | 亚洲电影成人 | www.eeuss影院av撸 | 97在线精品国自产拍中文 | 婷婷亚洲最大 | 成人在线观看av | 日本久久中文 | 深爱激情婷婷网 | 日韩电影在线一区 | 97国产视频| 在线观看91av | 国产精品自在线拍国产 | 精品中文字幕在线观看 | 成人四虎影院 | 91日韩在线视频 | 99爱在线观看 | 美国av片在线观看 | 亚洲国产精品99久久久久久久久 | 久久伊99综合婷婷久久伊 | 亚洲欧洲国产精品 | 中文字幕一区二区三区久久蜜桃 | 夜色成人网 | 精品欧美一区二区在线观看 | 国产区在线视频 | 中文字幕在线观看网 | 九九热视频在线播放 | 毛片的网址 | 69视频国产| 亚洲性少妇性猛交wwww乱大交 | 久久婷综合 | 97成人精品视频在线播放 | 国产在线观看高清视频 | 欧美一区二区三区在线 | 婷婷六月天丁香 | 黄色三级免费网址 | 草莓视频在线观看免费观看 | 手机成人在线 | 国产在线观看h | 色婷婷狠狠操 | 色视频国产直接看 | 国产黄在线免费观看 | 久久精彩视频 | 噜噜色官网 | 日韩欧美在线第一页 | 日日夜夜天天射 | 欧美大片aaa | 视频二区 | 一区二区三区免费网站 | 免费看国产精品 | 日本精品一区二区在线观看 | 草莓视频在线观看免费观看 | 91高清免费 | 中文在线最新版天堂 | 四虎成人精品在永久免费 | 香蕉视频一级 | 免费看一级特黄a大片 | 国产一级片免费视频 | 99精品欧美一区二区三区 | 久久久午夜精品福利内容 | 一区二区三区四区精品视频 | 免费观看成人 | 九九免费精品视频在线观看 | 91丨porny丨九色 | 97超碰人 | 探花视频网站 | 黄网站app在线观看免费视频 | 日本黄色免费大片 | 在线观看精品一区 | 在线 成人 | 九九热久久久 | 香蕉影院在线观看 | 黄色免费观看视频 | 激情丁香5月| 午夜精品一二区 | 久久成人午夜视频 | 成年人在线观看视频免费 | 日韩欧美在线第一页 | 亚洲视频2| 成人va在线观看 | 国产精品国产三级国产aⅴ入口 | 久久视频免费在线 | 天海翼一区二区三区免费 | 日韩av一卡二卡三卡 | 88av网站 | 91九色国产在线 | 国产一级片播放 | 日韩精品网址 | 欧美日韩国产一二 | 三级小视频在线观看 | www.午夜色.com | 国产日韩一区在线 | 国产在线观看国语版免费 | 九九影视理伦片 | 久久久久久久精 | 国产打女人屁股调教97 | 韩日成人av | 91在线中文字幕 | 国产精品免费av | 91av成人 | 中文字幕在线中文 | 亚洲激情在线播放 | 超碰人在线 | 国产在线一线 | 成人午夜黄色影院 | av成人免费| 麻豆影视网站 | 中文字幕乱在线伦视频中文字幕乱码在线 | 91丝袜美腿 | 日韩欧美aaa| 国产一区视频在线播放 | 主播av在线 | 在线看片视频 | 人人澡人摸人人添学生av | 日韩电影一区二区三区 | 91九色精品女同系列 | 日韩欧美在线播放 | 精品视频www| 国产成人a亚洲精品 | 国产亚洲精品久 | 日日添夜夜添 | 日韩av影视在线观看 | 亚洲精品网址在线观看 | 黄色www在线观看 | 免费在线观看日韩视频 | 99精品视频在线 | 成人久久综合 | 全久久久久久久久久久电影 | 一区二区精品在线 | 亚洲精品国产精品国自产观看 | 免费在线看v | 在线观看视频免费大全 | 欧美精品九九 | 最新久久免费视频 | 日日夜夜骑 | 中文字幕二区三区 | 国产极品尤物在线 | 最新日韩在线 | 国产精品亚洲视频 | 免费aa大片 | 久久精品日产第一区二区三区乱码 | 天天操天天能 | 最近高清中文在线字幕在线观看 | 在线不卡的av | 日韩在线中文字幕 | 欧美九九视频 | 射久久| 日日摸日日添日日躁av | 激情网站免费观看 | 国产成人不卡 | 人人澡人人舔 | 久久午夜影视 | 久久免费视频一区 | 国产精品密入口果冻 | 国产精品6 | 国产最新在线观看 | 在线视频中文字幕一区 | 麻豆91精品91久久久 | 国产成人亚洲在线电影 | 亚洲精品国产精品国自产 | 日本女人在线观看 | 又黄又刺激视频 | 91av中文字幕 | 色天天| 国产精品乱码在线 | 日本午夜在线观看 | 久久国产精品99国产 | 在线岛国av | av青草| 国产精品久久久久免费a∨ 欧美一级性生活片 | 精品91在线| 国产永久免费高清在线观看视频 | 麻豆影视网站 | 在线黄色av电影 | 国产日产高清dvd碟片 | 午夜av影院 | 精品久久久免费 | 久久成人黄色 | av午夜电影| 激情丁香婷婷 | 亚洲国产成人久久综合 | 中文字幕 国产视频 | 国产玖玖精品视频 | 日韩一区二区在线免费观看 | 久久草在线精品 | 国产精久久久 | 久久男人中文字幕资源站 | 91精品黄色 | 免费无遮挡动漫网站 | 1024手机看片国产 | 丰满少妇对白在线偷拍 | 69亚洲乱| 久久精品这里热有精品 | 国产一在线精品一区在线观看 | 久久影视一区二区 | 日韩欧美视频免费观看 | 国产日韩精品一区二区三区 | 亚洲国产欧美在线人成大黄瓜 | 亚洲精品网址在线观看 | www.日韩免费 | 久久久精品一区二区三区 | 午夜精品一区二区三区免费视频 | 国产在线综合视频 | 日韩理论在线视频 | 欧美成人精品xxx | 在线观看不卡视频 | 综合视频在线 | 日韩性网站 | 日韩免费观看av | 久久综合中文色婷婷 | 天天操夜夜干 | 久草视频免费看 | 成年人在线观看免费视频 | 国产一级免费视频 | 国产成人精品免高潮在线观看 | 国产精品久久久久久久久岛 | 久久婷婷影视 | 免费看的黄色的网站 | 亚洲国产精品电影 | 欧美性生活免费看 | 91麻豆精品国产91久久久无需广告 | 一本一本久久a久久精品综合小说 | 日韩成人精品一区二区三区 | 久操视频在线播放 | 久久亚洲福利视频 | 在线成人观看 | 免费视频91 | 毛片网站观看 | 欧美在线资源 | 国产精品网红直播 | 日日干夜夜爱 | 国产色资源 | 黄网站色成年免费观看 | ww视频在线观看 | 一区在线免费观看 | 在线观看91久久久久久 | 中文字幕在线观看视频免费 | 91在线看视频免费 | 久久国产网 | 一区二区不卡高清 | 欧美性大胆 | 婷婷av综合 | 九九在线精品视频 | 91黄色免费看 | 国产黄色在线 | 日韩欧美亚州 | 国产超碰97| 嫩草av影院 | 成人一区二区三区中文字幕 | 亚洲国产日韩欧美在线 | 久久精品爱爱视频 | 天天色视频 | 国产分类视频 | 国产精品久免费的黄网站 | 亚洲精品动漫在线 | 日韩久久精品一区 | 中文字幕欧美日韩va免费视频 | 一级性生活片 | 久久精品国产99国产 | 91成人精品一区在线播放69 | 激情图片区 | 伊人天堂久久 | 在线观看视频99 | 99精品视频免费全部在线 | 丝袜av一区| 婷婷开心久久网 | 亚洲精品91天天久久人人 | 丁香六月五月婷婷 | 黄色av电影在线 | 超碰在线97国产 | 久久久久久久久国产 | 欧美大jb| 久久久wwww| 久久久久久久久久亚洲精品 | 日韩视频一区二区 | 国产亚州av | a级国产乱理论片在线观看 伊人宗合网 | 久久精品欧美一区二区三区麻豆 | 在线观看日韩视频 | 国产精品人人做人人爽人人添 | 亚洲精色 | 精品久久久久一区二区国产 | 免费看的黄网站软件 | 99国产精品一区二区 | 又黄又爽又色无遮挡免费 | 午夜精品一区二区国产 | 精品国产自在精品国产精野外直播 | 丁香视频免费观看 | av一级片网站 | 免费在线观看av网址 | 久久五月婷婷综合 | 91少妇精拍在线播放 | 国产一区二三区好的 | 天天躁天天狠天天透 | 最新国产精品亚洲 | 一区二区三区免费在线播放 | 亚洲一区视频在线播放 | 日韩精品国产一区 | 久久久久精 | 亚洲闷骚少妇在线观看网站 | 97超碰资源 | 婷婷福利影院 | 黄色大全视频 | 天天爱综合 | 久久久久99999 | 国产精品久久久久久久午夜 | 中文字幕视频网站 | 久久99在线 | 成人一级视频在线观看 | 99视频在线精品免费观看2 | 免费在线观看一区 | 日韩高清在线观看 | 久久久久国产精品免费免费搜索 | 亚洲黄色软件 | 91av视频免费在线观看 | 成人小视频在线 | 天堂av免费看 | 日韩黄色免费电影 | 日韩视频一区二区在线 | 美女很黄免费网站 | 99精品国产免费久久久久久下载 | 在线影院中文字幕 | 天天操天天操天天操天天操天天操 | 在线观看国产永久免费视频 | 丁香六月婷婷开心婷婷网 | 国产欧美高清 | 伊人热 | 国产美女精品视频 | 久久成人国产 | 玖玖视频在线 | 国产精品video爽爽爽爽 | 日本爽妇网| 91爱看片| 蜜桃av久久久亚洲精品 | av在线不卡观看 | 国产99视频在线观看 | 国产伦精品一区二区三区无广告 | 中文字幕中文字幕在线一区 | 国产又粗又猛又色 | 欧美成人视 | 国产一级片视频 | 黄色一级大片在线免费看国产一 | 国产亚洲视频中文字幕视频 | 成人性生爱a∨ | 人人舔人人 | 青青网视频 | 国产精品网红福利 | 国产精品黄色在线观看 | 日韩免费一区二区三区 | 精品国产视频一区 | 特级黄色视频毛片 | 91成人在线免费观看 | 国产精品9999 | 日韩一区视频在线 | 99re6热在线精品视频 | 91麻豆视频 | 国产一级片直播 | 成人影视片| 在线 精品 国产 | 久久久久99精品国产片 | www免费黄色 | 亚洲一级电影在线观看 | 久久开心激情 | 欧美调教网站 | 免费高清在线一区 | 精品爱爱 | 97人人澡人人添人人爽超碰 | 五月综合| 欧洲黄色片 | 国产福利在线 | 日韩视频二区 | 免费国产ww | 国产香蕉97碰碰久久人人 | www.狠狠操| 91一区啪爱嗯打偷拍欧美 | 国产精品国产自产拍高清av | 免费在线观看不卡av | 日产中文字幕 | 久久免费精品一区二区三区 | 成人av高清 | www.夜色.com | 九九日韩| 黄色一级免费电影 | 日韩最新中文字幕 | 国产丝袜 | 久久人人爽人人爽人人 | 亚洲在线视频网站 | 香蕉影院在线播放 | 亚洲免费精彩视频 | 久久国产精品久久国产精品 | 九九久久精品 | www.xxx.性狂虐 | www激情久久 | 91亚洲激情 | 国产主播大尺度精品福利免费 | 99精品国产兔费观看久久99 | 国产一级片不卡 | 亚洲伦理精品 | 成人免费xxxxxx视频 |