Wed. Aug 4th, 2021

Requirement: I want to get the Browser Details (like the Browser Version, Browser Name), Platform Details (Operating System Details), Server and Client IP addresses in Oracle ADF Application

Solution: For the solution of the above requirement follow the steps as shown below:

Step 1: Create an Oracle ADF Fusion Web Application.

Step 2: Create a demo.jspx page.

Drag and drop an af:button and set text=”Show Details” and actionListener=”#{MyBean.showDetails}”

Thus, the complete code for demo.jspx is shown below:

<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
    <jsp:directive.page contentType="text/html;charset=UTF-8"/>
    <f:view>
        <af:document title="demo.jspx" id="d1">
            <af:form id="f1">
                <af:button text="Show Details" id="b1" actionListener="#{MyBean.showDetails}"/>
            </af:form>
        </af:document>
    </f:view>
</jsp:root>

And, the complete code for the MyBean.java class is as below:

package susantotech.com;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;

import javax.servlet.http.HttpServletRequest;

import org.apache.myfaces.trinidad.context.Agent;
import org.apache.myfaces.trinidad.context.RequestContext;

public class MyBean {
    public MyBean() {
    }

    public void showDetails(ActionEvent actionEvent) {
        RequestContext requestCtx = RequestContext.getCurrentInstance();
        Agent agent = requestCtx.getAgent();
        String version = agent.getAgentVersion();
        String browser = agent.getAgentName();
        String platform = agent.getPlatformName();
        String platformVersion = agent.getPlatformVersion();
        FacesContext fctx = FacesContext.getCurrentInstance();
        HttpServletRequest request = (HttpServletRequest) fctx.getExternalContext().getRequest();
        StringBuilder detailMsg =
            new StringBuilder("<html><body><b>Browser Agent and the the IP Address Details</b><br>");
        detailMsg.append("<ul><li><b>Browser : </b>" + browser + "</li><li><b>Version-</b>" + version +
                         "</li><li><b>Plateform : </b>" + platform + "</li>");
        detailMsg.append("<li><b>Plateform Version : </b>" + platformVersion + "</li><li><b>Server IP : </b>" +
                         request.getLocalAddr() + "</li><li><b>Client IP : </b>" + request.getRemoteAddr() +
                         "</li></ul>");
        detailMsg.append("</body></html>");
        FacesMessage errMsg = new FacesMessage(detailMsg.toString());
        errMsg.setSeverity(FacesMessage.SEVERITY_INFO);
        fctx.addMessage(null, errMsg);
    }
}

Save all and run the application. Thus, the ran application is shown below. Please note this application is running on the Google Chrome Browser.

Click on Show Details button and we will get the below output:

Hence, the solution to our requirement.

If you like the post please comment, share, and do join me on Facebook. Please subscribe to my YouTube Channel for video tutorials.

Thanks & Regards,
Susanto Paul

 197 total views,  1 views today

By Susanto Paul

Susanto is an Oracle ACE, a qualified MCA, MBA, and a highly-skilled Senior Oracle Specialist. He is an enthusiastic Blogger and YouTuber who helps learners to solve their complex problems more efficiently. He has 9+ years of experience in multiple technologies like AWS, Oracle ADF, Oracle APEX, Oracle JET, Oracle VBCS, Oracle IDCS, Oracle PL/SQL, Oracle Integration Cloud, Java, JDBC, Servlets, JSP, Spring, Hibernate, HTML5, CSS3, JavaScript, TypeScript, NodesJS, Angular, MySQL, Oracle WebLogic Server, JUnit, JMeter, Selenium Web Driver, etc. He is a certified: Oracle Certified Professional Java SE 6 Programmer, Oracle ADF 11g Certified Implementation Specialist, Oracle Cloud Platform Application Integration 2020 Certified Specialist, Oracle Cloud Infrastructure Foundations 2020 Certified Associate, and Oracle Cloud Infrastructure Developer 2020 Certified Associate

Leave a Reply

Your email address will not be published. Required fields are marked *