Detail
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Unknown
Mobile Device
d
@Named @SessionScoped
public class MobileBrowserBean extends AbstractJeeBean implements Serializable
{
final static Logger logger = LoggerFactory.getLogger(MobileBrowserBean.class);
private static final long serialVersionUID = 1L;
private boolean isMobile; public boolean getIsMobile() { return isMobile; }
private String userAgent; public String getUserAgent() {return userAgent;}
private String deviceType; public String getDeviceType() {return deviceType;}
@Inject AppBrowserBean bBrowser;
@PostConstruct
public void init()
{
super.initSecurity();
showcase();
}
private void showcase()
{
final HttpServletRequest request =(HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
userAgent = request.getHeader("user-agent");
Capabilities capabilities = bBrowser.getParser().parse(userAgent);
deviceType = capabilities.getDeviceType();
boolean isPhone = capabilities.getDeviceType().equals("Mobile Phone");
boolean isTablet = capabilities.getDeviceType().equals("Tablet");
logger.info("User-Agent: "+userAgent);
logger.info("Device Type: "+deviceType);
logger.info(" isPhone: "+isPhone);
logger.info(" isTablet: "+isTablet);
isMobile = isPhone;
}
}
@Named @ApplicationScoped
public class AppBrowserBean implements Serializable
{
final static Logger logger = LoggerFactory.getLogger(AppBrowserBean.class);
private static final long serialVersionUID = 1L;
private UserAgentParser parser; public UserAgentParser getParser() {return parser;}
@PostConstruct
public void init()
{
ProcessingTimeTracker ptt = ProcessingTimeTracker.instance().start();
try
{
parser = new UserAgentService().loadParser(Arrays.asList(BrowsCapField.DEVICE_TYPE));
}
catch (IOException | ParseException e) {e.printStackTrace();}
logger.info(JeeLogMessage.postConstruct(ptt));
}
}