当前位置: 首页 > news >正文

女孩子做网站推广wordpress 清除缓存

女孩子做网站推广,wordpress 清除缓存,房地产销售技巧,天津网站开发制作1.什么是Spring Mobile? Spring Mobile是一个基于Spring Web MVC框架扩展的一个针对不同移动终端的应用开发框架。通过它我们在适配不同终端方面,就不用费劲心思了。 Spring Mobile的主要功能 自动设备检测: Spring Mobile在 server端内置了一个设备解…

1.什么是Spring Mobile?

Spring Mobile是一个基于Spring Web MVC框架扩展的一个针对不同移动终端的应用开发框架。通过它我们在适配不同终端方面,就不用费劲心思了。

Spring Mobile的主要功能

  • 自动设备检测: Spring Mobile在 server端内置了一个设备解析器的抽象层。它会分析所有过来的请求,然后侦测到设备信息,比如,设备的类型,操作系统等等。
  • 网站偏好管理:使用网站偏好管理,Spring Mobile允许用户选择移动/平板电脑/网站的视图。 这是比较不赞成的技术,因为通过使用DeviceDelegatingViewresolver,我们可以根据设备类型跳转到对应的视图层,而不需要来自用户端的任何输入。
  • 站点切换器:站点切换器能够根据用户的设备类型(比如:手机,平板,浏览器等等)将用户自动切换到最合适的视图。
  • 设备感知视图管理器:通常,根据设备类型,我们将用户请求转发到特定站点,以处理特定设备。 Spring Mobile的View Manager使开发人员能够灵活地将所有视图以预定义的格式显示出来,Spring Mobile将根据设备类型自动管理不同的视图。

2.代码工程

实验目的

实验客户端类型识别

pom.xml

<?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"><parent><artifactId>springboot-demo</artifactId><groupId>com.et</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>SpringMobile</artifactId><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><spring-mobile-device.version>1.1.5.RELEASE</spring-mobile-device.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.springframework.mobile</groupId><artifactId>spring-mobile-device</artifactId><version>${spring-mobile-device.version}</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-freemarker</artifactId></dependency></dependencies>
</project>

controller

判断客户端来源

package com.et.springmobile.controller;import java.util.logging.Logger;import org.springframework.mobile.device.Device;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class IndexController {private final static Logger LOGGER = Logger.getLogger(IndexController.class.getName());@GetMapping("/")public String greeting(Device device) {String deviceType = "browser";String platform = "browser";String viewName = "index";if (device.isNormal()) {deviceType = "browser";} else if (device.isMobile()) {deviceType = "mobile";viewName = "mobile/index";} else if (device.isTablet()) {deviceType = "tablet";viewName = "tablet/index";}platform = device.getDevicePlatform().name();if (platform.equalsIgnoreCase("UNKNOWN")) {platform = "browser";}LOGGER.info("Client Device Type: " + deviceType + ", Platform: " + platform);return viewName;}}

config

Spring Boot自动注入了3个类,DeviceResolverHandlerInterceptor,SitePreferenceHandlerInterceptor和SitePreferenceMethodArgumentResolver。DeviceResolverHandlerInterceptor是HandlerInterceptor的一个实现,从名字来看,它拦截到应用的请求,判断发送请求设备的类型。当设备解决以后,SitePreferenceMethodArgumentResolver允许SpringMVC在Controller中使用SitePreference实体。在内部,DeviceResolverHandlerInterceptor判断请求头中的User-Agent,基于请求头中的值,判断请求是否来自浏览器(桌面)、手机、还是Pad。 SitePreferenceHandlerInterceptor利用探测到的设备,判断用户的初始站点偏好。如果用户喜欢另一个站点,则选择该站点,并在随后的请求中使用,以覆盖已解析的设备值。站点偏好是通过请求中特殊的查询字符串设置的。一旦接收到,偏好将被持久化到cookie中,以供将来参考。站点偏好功能在Spring Boot中默认是打开的,可以通过上面的设置关闭它。

package com.et.springmobile;import java.util.List;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver;
import org.springframework.mobile.device.DeviceResolverHandlerInterceptor;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class AppConfig implements WebMvcConfigurer {@Beanpublic DeviceResolverHandlerInterceptor deviceResolverHandlerInterceptor() {return new DeviceResolverHandlerInterceptor();}@Beanpublic DeviceHandlerMethodArgumentResolver deviceHandlerMethodArgumentResolver() {return new DeviceHandlerMethodArgumentResolver();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(deviceResolverHandlerInterceptor());}@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {argumentResolvers.add(deviceHandlerMethodArgumentResolver());}}

DemoApplication.java

package com.et.springmobile;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}
}

application.properties

spring.mobile.devicedelegatingviewresolver.enabled: true
spring.freemarker.template-loader-path: classpath:/templates
spring.freemarker.suffix: .ftl

以上只是一些关键代码,所有代码请参见下面代码仓库

代码仓库

  • GitHub - Harries/springboot-demo: a simple springboot demo with some components for example: redis,solr,rockmq and so on.

3.测试

启动Spring Boot应用

测试来源

访问http://127.0.0.1:8080/,使用chrome 模拟不同的客户端,console日志输出如下:

21:47:42.341 [http-nio-8080-exec-1] INFO o.s.web.servlet.DispatcherServlet - Completed initialization in 40 ms
21:47:42.430 [http-nio-8080-exec-1] INFO c.e.s.controller.IndexController - Client Device Type: browser, Platform: browser
21:49:10.378 [http-nio-8080-exec-5] INFO c.e.s.controller.IndexController - Client Device Type: mobile, Platform: ANDROID
21:49:21.414 [http-nio-8080-exec-6] INFO c.e.s.controller.IndexController - Client Device Type: mobile, Platform: ANDROID
21:49:35.192 [http-nio-8080-exec-7] INFO c.e.s.controller.IndexController - Client Device Type: mobile, Platform: IOS
21:49:51.647 [http-nio-8080-exec-8] INFO c.e.s.controller.IndexController - Client Device Type: mobile, Platform: IOS

4.引用

  • Spring Mobile Reference Documentation
  • Spring Boot集成Spring Mobile快速入门Demo | Harries Blog™

 

http://www.yayakq.cn/news/194519/

相关文章:

  • 安阳企业建网站南京手机app开发公司
  • 做直播网站用什么语言网站群建设分析
  • 苍南规划建设局网站微信公众号转入公司网站建设
  • 搜外滴滴友链南昌优化网站排名
  • 网站正在建设页面模板怎么样在网络上赚钱
  • 网站建设 提升和扩大软件服务外包人才培养专业
  • 怎么在自己做的网站上发视频教程域名注册查询系统
  • 做网站个网站要多少钱免费网站建设基础步骤
  • 网站建设的种类网站编程设计方向
  • 免费python在线正常网站小程序开发有什么好处
  • 网站上面的图片是怎么做的ui设计软件培训学校
  • 如何用网页设计制作个人网站迁西网站定制
  • 能打开各种网站的浏览器推荐徐东网站建设公司
  • 数码类网站名称如何介绍一个网站的促销功能
  • 宁波企业网站制作推广计划怎么删除
  • 视频网站开发公司公司网站建设外包流程
  • 营销型网站建设一般多少钱如何免费建立公司网站
  • 曲靖网站建设0doit专业集团门户网站建设
  • 网站建设及服务合同书软文写作模板
  • 宁波网站推广平台咨询公司wordpress 评分主题
  • php网站开发多线程开发做微信商城网站
  • 网站优化用户体验数据分析师需要学哪些课程
  • 深圳品牌网站策划广州地图
  • 深圳企业做网站公司哪家好平台连接
  • 常用的做网站的工具都有哪些网站不兼容怎么办啊
  • 推广链接跳转医疗类网站还有做seo
  • 网站访客代码js建设网站需要准备哪些内容
  • 网站里的注册怎么做盐城手机网站制作
  • iis网站下载响应式网站404页面怎么做
  • 有了域名自己电脑怎么做网站wordpress自动采集手动写