Saturday, 30 March 2013

JSP JAVA Server Pages

Java Server Pages !

An extensible Web technology that uses template data, custom elements, scripting languages, and server-side Java objects to return dynamic content to a client. Typically the template data is HTML or XML elements and The client is often a Web browser.
Java Servlet
A Java program that extends the functionality of a Web server, generating dynamic content and interacting with Web clients using a request-response paradigm.
Static contents
  • Typically static HTML page
  • Same display for everyone
Dynamic contents
  • Contents is dynamically generated based on conditions
  • Conditions could be User identity, Time of the day, User entered values through forms and selections
JSP Page
A text-based document capable of returning both static and dynamic content to a client browser. Static content and dynamic content can be intermixed. Static contents are HTML, XML, Text and Dynamic contents are Java code, Displaying properties of JavaBeans, Invoking business logic defined in Custom tags.
Directives
There are five types of JSP directives and scripting elements. With JSP 1.0, most of your JSP is enclosed within a single tag that begins with <% and ends with %>. With the newer JSP 1.1 specification, there are also XML-compliant versions.
JSP directives are for the JSP engine. They do not directly produce any visible output but instead tell the engine what to do with the rest of the JSP page. They are always enclosed within the <%@ … %> tag. The two primary directives are page and include. The taglib directive will not be discussed but is available for creating custom tags with JSP 1.1.
The page directive is the one you'll find at the top of almost all your JSP pages. Although not required, it lets you specify things like where to find supporting Java classes:
<%@ page import="java.util.Date" %>
where to send the surfer in the event of a runtime Java problem:
<%@ page errorPage="errorPage.jsp" %>
and whether you need to manage information at the session level for the user, possibly across multiple Web pages (more later on sessions with JavaBeans):
<%@ page session="true" %>
The include directive lets you separate your content into more manageable elements, such as those for including a common page header or footer. The page included could be a fixed HTML page or more JSP content:
<%@ include file="filename.jsp" %>
Declarations
JSP declarations let you define page-level variables to save information or define supporting methods that the rest of a JSP page may need. If you find yourself including too much code, it is usually better off in a separate Java class. Declarations are found within the <%! … %> tag. Always end variable declarations with a semicolon, as any content must be valid Java statements: <%! int i=0; %>.
Expressions
With expressions in JSP, the results of evaluating the expression are converted to a string and directly included within the output page. JSP expressions belong within <%= … %> tags and do not include semicolons, unless part of a quoted string:
<%= i %>
<%= "Hello" %>
Code Fragments/Scriptlets
JSP code fragments or scriptlets are embedded within <% … %> tags. This Java code is then run when the request is serviced by the Web server. Around the scriptlets would be raw HTML or XML, where the code fragments let you create conditionally executing code, or just something that uses another piece of code. For example, the following displays the string "Hello" within H1, H2, H3, and H4 tags, combining the use of expressions and scriptlets. Scriptlets are not limited to one line of source code:
<% for (int i=1; i<=4; i++){ %>
>Hello<%=i%>>
<% } %>
Comments
The last of the key JSP elements is for embedding comments. Although you can always include HTML comments in your files, users can view these if they view the page's source. If you don't want users to be able to see your comments, you would embed them within the <%-- … --%> tag:
<%-- comment for server side only --%>

Scripts in JSP

A JSP scriptlet is used to contain any code fragment that is valid for the scripting language used in a page. The syntax for a scriptlet is as follows:
<%
scripting-language-statements
%>
When the scripting language is set to java, a scriptlet is transformed into a Java programming language statement fragment and is inserted into the service method of the JSP page’s servlet. A programming language variable created within a scriptlet is accessible from anywhere within the JSP page.
In the web service version of the hello1 application, greeting.jsp contains a scriptlet to retrieve the request parameter named username and test whether it is empty. If the if statement evaluates to true, the response page is included. Because the if statement opens a block, the HTML markup would be followed by a scriptlet that closes the block.
<%
String username = request.getParameter("username");
if ( username != null && username.length() > 0 ) {
%>
<%@include file="response.jsp" %>
<%
}
%>

JSP Objects and Components !

JSP expressions
If a programmer wants to insert data into an HTML page, then this is achieved by making use of the JSP expression.
The general syntax of JSP expression is as follows:
<%= expression %>
The expression is enclosed between the tags <%= %>
For example, if the programmer wishes to add 10 and 20 and display the result, then the JSP expression written would be as follows:
<%= 10+20 %>

Implicit Objects
Implicit Objects in JSP are objects that are automatically available in JSP. Implicit Objects are Java objects that the JSP Container provides to a developer to access them in their program using JavaBeans and Servlets. These objects are called implicit objects because they are automatically instantiated.
There are many implicit objects available. Some of them are:
request
The class or the interface name of the object request is http.httpservletrequest. The object request is of type Javax.servlet.http.httpservletrequest. This denotes the data included with the HTTP Request. The client first makes a request that is then passed to the server. The requested object is used to take the value from client’s web browser and pass it to the server. This is performed using HTTP request like headers, cookies and arguments.
response
This denotes the HTTP Response data. The result or the information from a request is denoted by this object. This is in contrast to the request object. The class or the interface name of the object response is http.HttpServletResponse. The object response is of type Javax.servlet.http. >httpservletresponse. Generally, the object response is used with cookies. The response object is also used with HTTP Headers.
Session
This denotes the data associated with a specific session of user. The class or the interface name of the object Session is http.HttpSession. The object Session is of type Javax.servlet.http.httpsession. The previous two objects, request and response, are used to pass information from web browser to server and from server to web browser respectively. The Session Object provides the connection or association between the client and the server. The main use of Session Objects is for maintaining states when there are multiple page requests. This will be explained in further detail in following sections.
Out
This denotes the Output stream in the context of page. The class or the interface name of the Out object is jsp.JspWriter. The Out object is written: Javax.servlet.jsp.JspWriter
PageContext
This is used to access page attributes and also to access all the namespaces associated with a JSP page. The class or the interface name of the object PageContext is jsp.pageContext. The object PageContext is written: Javax.servlet.jsp.pagecontext
Application
This is used to share the data with all application pages. The class or the interface name of the Application object is ServletContext. The Application object is written: Javax.servlet.http.ServletContext
Config
This is used to get information regarding the Servlet configuration, stored in the Config object. The class or the interface name of the Config object is ServletConfig. The object Config is written Javax.servlet.http.ServletConfig
Page
The Page object denotes the JSP page, used for calling any instance of a Page's servlet. The class or the interface name of the Page object is jsp.HttpJspPage. The Page object is written: Java.lang.Object
The most commonly used implicit objects are request, response and session objects.

JSP Session Object
Session Object denotes the data associated with a specific session of user. The class or the interface name of the object session is http.HttpSession. The object session is written as:
Javax.servlet.http.httpsession.
The previous two objects, request and response, are used to pass information from web browser to server and from server to web browser respectively. But the Session Object provides the connection or association between the client and the server. The main use of Session Objects is to maintain states when there are multiple page requests.
The main feature of session object is to navigate between multiple pages in a application where variables are stored for the entire user session. The session objects do not lose the variables and the value remains for the user’ session. The concept of maintenance of sessions can be performed by cookies or URL rewriting. A detailed approach of session handling will be discusses in coming sections.
Methods of session Object
There are numerous methods available for session Object. Some are:
  • getAttribute(String name)
  • getAttributeNames
  • isNew()
  • getCreationTime
  • getId
  • invalidate()
  • getLastAccessedTime
  • getMaxInactiveInterval
  • removeAttribute(String name)
  • setAttribute(String, object)
getAttribute(String name)
The getAttribute method of session object is used to return the object with the specified name given in parameter. If there is no object then a null value is returned.
General syntax of getAttribute of session object is as follows:
session.getAttribute(String name)
The value returned is an object of the corresponding name given as string in parameter. The returned value from the getAttribute() method is an object written: java.lang.Object.
For example
String exforsys = (String) session.getAttribute("name");
In the above statement, the value returned by the method getAttribute of session object is the object of name given in parameter of type java.lang. Object and this is typecast to String data type and is assigned to the string exforsys.
getAttributeNames
The getAttributeNames method of session object is used to retrieve all attribute names associated with the current session. The name of each object of the current session is returned. The value returned by this method is an enumeration of objects that contains all the unique names stored in the session object.
General Syntax
session.getAttributeNames()
The returned value by this method getAttributeNames() is Enumeration of object.
For example
exforsys = session.getAttributeNames( )
The above statement returns enumeration of objects, which contains all the unique names stored in the current session object in the enumeration object exforsys.
isNew()
The isNew() method of session object returns a true value if the session is new. If the session is not new, then a false value is returned. The session is marked as new if the server has created the session, but the client has not yet acknowledged the session. If a client has not yet chosen the session, i.e., the client switched off the cookie by choice, then the session is considered new. Then the isNew() method returns true value until the client joins the session. Thus, the isNew() method session object returns a Boolean value of true of false.
General syntax of isNew() of session object is as follows:
session.isNew()
The returned value from the above method isNew() is Boolean


 

JSP Request Objects !

The request object in JSP is used to get the values that the client passes to the web server during an HTTP request. The request object is used to take the value from the client’s web browser and pass it to the server. This is performed using an HTTP request such as: headers, cookies or arguments. The class or the interface name of the object request is http.httpservletrequest.
The object request is written: Javax.servlet.http.httpservletrequest.
Methods of request Object
There are numerous methods available for request object. Some of them are:
  • getCookies()
  • getHeader(String name)
  • getHeaderNames()
  • getAttribute(String name)
  • getAttributeNames()
  • getMethod()
  • getParameter(String name)
  • getParameterNames()
  • getParameterValues(String name)
  • getQueryString()
  • getRequestURI()
  • getServletPath()
  • setAttribute(String,Object)
  • removeAttribute(String)
getCookies()
The getCookies() method of request object returns all cookies sent with the request information by the client. The cookies are returned as an array of Cookie Objects. We will see in detail about JSP cookies in the coming sections.
General syntax of getHeader() of request object is as follows:
request.getHeader("String")
getHeader()request object returned value is a string.
For example:
String onlinemca = request.getHeader("onlinemca");
The above would retrieve the value of the HTTP header whose name is onlinemca in JSP.
getHeader(String name)
The method getHeader(String name) of request object is used to return the value of the requested header. The returned value of header is a string.
eneral syntax of getHeader() of request object is as follows:
request.getHeader("String")
In the above the returned value is a String.
For example:
String online = request.getHeader("onlinemca");
The above would retrieve the value of the HTTP header whose name is onlinemca in JSP.
getHeaderNames()
The method getHeaderNames() of request object returns all the header names in the request. This method is used to find available headers. The value returned is an enumerator of all header names.
General syntax of getHeaderNames() of request object is as follows:
request.getHeaderNames();
In the above the returned value is an enumerator.
For example:
Enumeration onlinemca = request.getHeaderNames();
The above returns all header names under the enumerator onlinemca.
getAttribute(String name)
The method getAttribute() of request object is used to return the value of the attribute. The getAttribute() method returns the objects associated with the attribute. When the attribute is not present, then a null value is returned. If the attribute is present then the return value is the object associated with the attribute.
General syntax of getAttribute() of request object is as follows:
request.getAttribute()
In the above the returned value is an object.
For example:
Object onlinemca = request.getAttribute("test");
The above retrieves the object stored in the request test and returns the object in onlinemca.
getAttributeNames()
The method getAttribute() of request object is used to return the object associated with the particular given attribute. If the user wants to get names of all the attributes associated with the current session, then the request object method getAttributeNames() can be used. The returned value is an enumerator of all attribute names.
General syntax of getAttributeNames() of request object is as follows:
request.getAttributeNames()
For example:
Enumeration onlinemca = request.getAttributeNames();
The above returns all attribute names of the current session under the enumerator: onlinemca.
getMethod()
The getMethod() of request object is used to return the methods GET, POST, or PUT corresponding to the requested HTTP method used.
General syntax of getMethod() of request object is as follows:
request.getMethod()
For example:
if (request.getMethod().equals("POST"))
{
.........
.........
}
In the above example, the method returned by the request.getMethod is compared with POST Method and if the returned method from request.getMethod() equals POST then the statement in if block executes.
getParameter(String name)
getParameter() method of request object is used to return the value of a requested parameter. The returned value of a parameter is a string. If the requested parameter does not exist, then a null value is returned. If the requested parameter exists, then the value of the requested parameter is returned as a string.
General syntax of getParameter() of request object is as follows:
request.getParameter(String name)
The returned value by the above statement is a string.
For example:
String onlinemca = request.getParameter("test");
The above example returns the value of the parameter test passed to the getParameter() method of the request object in the string onlinemca. If the given parameter test does not exist then a null value is assigned to the string onlinemca.
getParameterNames()
The getParameterNames() method of request object is used to return the names of the parameters given in the current request. The names of parameters returned are enumeration of string objects.
General syntax of getParameterNames() of request object is as follows:
request.getParameterNames()
Value returned from the above statement getParameterNames() method is enumeration of string objects.
For example:
Enumeration exforsys = request.getParameterNames();
The above statement returns the names of the parameters in the current request as an enumeration of string object.
getParameterValues(String name)
The getParameter(String name) method of request object was used to return the value of a requested given parameter. The returned value of the parameter is a string. If there are a number of values of parameter to be returned, then the method getParameterValues(String name) of request object can be used by the programmer. The getParameterValues(String name) method of request object is used to return all the values of a given parameter’s request. The returned values of parameter is a array of string objects. If the requested parameter is found, then the values associated with it are returned as array of string object. If the requested given parameter is not found, then null value is returned by the method.
General syntax of getParameterValues of request object is as follows:
request.getParameterValues(String name)
The returned value from the above method getParameterValues() is array of string objects.
For example:
String[] vegetables = request.getParameterValues("vegetable");
The above example returns a value of parameter vegetable passed to the method getParameterValues() of request object and the returned values are array of string of vegetables.
getQueryString()
The getQueryString() method of request object is used to return the query string from the request. From this method, the returned value is a string.
General syntax of getQueryString() of request object is as follows:
request.getQueryString()
Value returned from the above method is a string.
For example:
String onlinemca=request.getQueryString();
out.println("Result is"+exforsys);
The above example returns a string exforsys from the method getQueryString() of request object. The value is returned and the string is printed in second statement using out.println statement.
getRequestURI()
The getRequestURI() method of request object is used for returning the URL of the current JSP page. Value returned is a URL denoting path from the protocol name up to query string.
General syntax of getRequestURI() of request object is as follows:
request.getRequestURI()
The above method returns a URL.
For example:
out.println("URI Requested is " + request.getRequestURI());
Output of the above statement would be:
URI Requested is /Jsp/test.jsp
getServletPath()
The getServletPath() method of request object is used to return the part of request URL that calls the servlet.
General syntax of getServletPath() of request object is as follows:
request.getServletPath()
The above method returns a URL that calls the servlet.
For example:
out.println("Path of Servlet is " + request.getServletPath());
The output of the above statement would be:
Path of Servlet is/test.jsp
setAttribute(String,Object)
The setAttribute method of request object is used to set object to the named attribute. If the attribute does not exist, then it is created and assigned to the object.
General syntax of setAttribute of request object is as follows:
request.setAttribute(String, object)
In the above statement the object is assigned with named string given in parameter.
For example:
request.setAttribute("username", "onlinemca");
The above example assigns the value onlinemca to username.
removeAttribute(String)
The removeAttribute method of request object is used to remove the object bound with specified name from the corresponding session. If there is no object bound with specified name then the method simply remains and performs no function.
General syntax of removeAttribute of request object is as follows:
request.removeAttribute(String);

JSP Response Objects !

The response object denotes the HTTP Response data. The result or the information of a request is denoted with this object. The response object handles the output of the client. This contrasts with the request object. The class or the interface name of the response object is http.HttpServletResponse.
-The response object is written: Javax.servlet.http.httpservletresponse.
-The response object is generally used by cookies.
-The response object is also used with HTTP Headers.
Methods of response Object
There are numerous methods available for response object. Some of them are:
  • setContentType()
  • addCookie(Cookie cookie)
  • addHeader(String name, String value)
  • containsHeader(String name)
  • setHeader(String name, String value)
  • sendRedirect(String)
  • sendError(int status_code)
setContentType()
setContentType() method of response object is used to set the MIME type and character encoding for the page.
General syntax of setContentType() of response object is as follows:
response.setContentType();
For example:
response.setContentType("text/html");
The above statement is used to set the content type as text/html dynamically.
addCookie(Cookie cookie)
addCookie() method of response object is used to add the specified cookie to the response. The addcookie() method is used to write a cookie to the response. If the user wants to add more than one cookie, then using this method by calling it as many times as the user wants will add cookies.
General syntax of addCookie() of response object is as follows:
response.addCookie(Cookie cookie)
For example:
response.addCookie(Cookie exforsys);
The above statement adds the specified cookie exforsys to the response.
addHeader(String name, String value)
addHeader() method of response object is used to write the header as a pair of name and value to the response. If the header is already present, then value is added to the existing header values.
General syntax of addHeader() of response object is as follows:
response.addHeader(String name, String value)
Here the value of string is given as second parameter and this gets assigned to the header given in first parameter as string name.
For example:
response.addHeader("Author", "onlinemca");
The output of above statement is as below:
Author: onlinemca
containsHeader(String name)
containsHeader() method of response object is used to check whether the response already includes the header given as parameter. If the named response header is set then it returns a true value. If the named response header is not set, the value is returned as false. Thus, the containsHeader method is used to test the presence of a header before setting its value. The return value from this method is a Boolean value of true or false.
General syntax of containsHeader() of response object is as follows:
response.containsHeader(String name)
Return value of the above containsHeader() method is a Boolean value true or false.
setHeader(String name, String value)
setHeader method of response object is used to create an HTTP Header with the name and value given as string. If the header is already present, then the original value is replaced by the current value given as parameter in this method.
General syntax of setHeader of response object is as follows:
response.setHeader(String name, String value)
For example:
response.setHeader("Content_Type","text/html");
The above statement would give output as
Content_Type: text/html
sendRedirect(String)
sendRedirect method of response object is used to send a redirect response to the client temporarily by making use of redirect location URL given in parameter. Thus the sendRedirect method of the response object enables one to forward a request to a new target. But one must note that if the JSP executing has already sent page content to the client, then the sendRedirect() method of response object will not work and will fail.
General syntax of sendRedirect of response object is as follows:
response.sendRedirect(String)
In the above the URL is given as string.
For example:
response.sendRedirect("http://xxx.test.com/error.html");
The above statement would redirect response to the error.html URL mentioned in string in Parameter of the method sendRedirect() of response object.
sendError(int status_code)
sendError method of response object is used to send an error response to the client containing the specified status code given in parameter.
General syntax of sendError of response object is as follows:
response.sendError(int status_code)




No comments:

Post a Comment