上下文:( Java)Web应用程序使用apache shiro进行会话管理,身份验证,授权。 现在仅针对移动用户,需要在创建期间更改会话属性(例如:增加会话超时间隔等)。
如何区分移动客户端和桌面浏览器客户端? 浏览器用户代理可能会给出值,但它是否可靠?
当移动设备使用Web应用程序时,需要注意的其他事项(在后端的会话处理方面)?
答案 0 :(得分:1)
我们发现使用弹簧移动设备模块最简单:http://docs.spring.io/spring-mobile/docs/current/reference/html/device.html
您只需在web.xml中添加一个servlet过滤器,它就会将当前设备信息保留在请求中:
<filter>
<filter-name>deviceResolverRequestFilter</filter-name>
<filter-class>org.springframework.mobile.device.DeviceResolverRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>deviceResolverRequestFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后你可以使用util
获取信息 Device currentDevice = DeviceUtils.getCurrentDevice((HttpServletRequest) request);
if (currentDevice != null && (currentDevice.isMobile() || currentDevice.isTablet())){
//do mobile stuff
} else {
//do desktop stuff
}
检测移动设备的所有用户代理程序都由该库处理。
至于你的第二个问题,如果网页是从移动设备或桌面加载的,那么服务方面就没有什么区别。他们都有HttpSessions,cookies等。