The following simple examples show how you can integrate JSP pages, servlets, and ColdFusion pages. They also show how you can use the Request, Application, and Session scopes to share data between ColdFusion pages, JSP pages, and servlets.
The following page sets Request, Session, and application variables and calls a JSP page, passing it a name parameter:
<cfapplication name="myApp" sessionmanagement="yes"> <cfscript> Request.myVariable = "This"; Session.myVariable = "is a"; Application.myVariable = "test."; GetPageContext().include("hello.jsp?name=Bobby"); </cfscript>
The following table describes the CFML code and its function:
Code | Description |
---|---|
<cfapplication name="myApp" |
Specifies the application name as myApp and enables session management. In most applications, this tag is in the Application.cfm page. |
<cfscript> Request.myVariable = "This"; Session.myVariable = "is a"; Application.myVariable = "test."; |
Sets ColdFusion Request, Session, and Application, scope variables. Uses the same name, myVariable, for each variable. |
GetPageContext().include |
Uses the |
The hello.jsp page is called by the ColdFusion page. It displays the name
parameter in a header and the three variables in the remainder of the body.
<%@page import="java.util.*" %> <h2>Hello <%= request.getParameter("name")%>!</h2> <br>Request.myVariable: <%= request.getAttribute("myVariable")%> <br>session.myVariable: <%= ((Map)(session.getAttribute("myApp"))).get("myVariable")%> <br>Application.myVariable: <%= ((Map)(application.getAttribute("myApp"))).get("myVariable")%>
The following table describes the JSP code and its function (line breaks added for clarity):
Code | Description |
---|---|
<%@page import="java.util.*" %> |
Imports the java.util package. This contains methods required in the JSP page. |
<h2>Hello <%= request.getParameter |
Displays the name passed as a URL parameter from the ColdFusion page. The parameter name is case-sensitive, Note: The |
<br>request.myVariable: <%= request. |
Uses the The JSP page must use all lowercase characters to refer to all request scope variables that it shares with CFML pages. You can use any case on the CFML page, but if you use mixed case to all uppercase on the JSP page, the variable will not get its value ColdFusion page. |
<br>session.myVariable: |
Uses the CFML pages and JSP pages share Session variables independent of the variable name case. The variable on the JSP page can have any case mixture and still receive the value from the ColdFusion page. For example, instead of myVariable, you could use MYVARIABLE or myvariable on this line. |
<br>Application.myVariable: <%= |
Uses the CFML pages and JSP pages share Application variables independent of the variable name case. The variable on the JSP page can have any case mixture and still receive the value from the ColdFusion page. For example, instead of myVariable, you could use MYVARIABLE or myvariable on this line. |
The following JSP page sets Request, Session, and application variables and calls a ColdFusion page, passing it a name parameter:
<%@page import="java.util.*" %> <% request.setAttribute("myvariable", "This");%> <% ((Map)session.getAttribute("myApp")).put("myVariable", "is a");%> <% ((Map)application.getAttribute("myApp")).put("myVariable", "test.");%> <jsp:include page="hello.cfm"> <jsp:param name="name" value="Robert" /> </jsp:include>
The following table describes the JSP code and its function:
Code | Description |
---|---|
<%@page import="java.util.*" %> |
Imports the java.util package. This contains methods required in the JSP page. |
<% request.setAttribute("myvariable", |
Uses the The JSP page must use all lowercase characters to refer to all request scope variables that it shares with CFML pages. You can use any case on the CFML page, but if you use mixed case to all uppercase on the JSP page, the JSP page will not share it with the ColdFusion page. |
<% ((Map)session.getAttribute("myApp")) |
Uses the CFML pages and JSP pages share Session variables independent of the variable name case. The variable on the JSP page can have any case mixture and still share the value with the ColdFusion page. For example, instead of myVariable, you could use MYVARIABLE or myvariable on this line. |
<% ((Map)application.getAttribute |
Uses the CFML pages and JSP pages share Application variables independent of the variable name case. The variable on the JSP page can have any case mixture and still share the value with the ColdFusion page. For example, instead of myVariable, you could use MYVARIABLE or myvariable on this line. |
<jsp:include page="hello.cfm"> <jsp:param name="name" value="Robert" /> </jsp:include> |
Sets the name parameter to Robert and calls the ColdFusion page hello.cfm. |
The following hello.cfm page is called by the JSP page. It displays the Name parameter in a heading and the three variables in the remainder of the body.
<cfapplication name="myApp" sessionmanagement="yes"> <cfoutput> <h2>Hello #URL.name#!</h2> Request.myVariable: #Request.myVariable#<br> Session.myVariable: #Session.myVariable#<br> Application.myVariable: #Application.myVariable#<br> </cfoutput>
The following table describes the CFML code and its function:
Code | Description |
---|---|
<cfapplication name="myApp" |
Specifies the application name as myApp and enables session management. In most applications, this tag is in the Application.cfm page. |
<cfoutput> <h2>Hello #URL.name#!</h2> |
Displays the name passed using the |
Request.myVariable: |
Displays the Request.myVariable, Session. myVariable, and Application.myVariable values. Note that all variable names on CFML pages are case independent. |