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 exampleString 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 Syntaxsession.getAttributeNames()
The returned value by this method getAttributeNames() is Enumeration of object.
For exampleexforsys = 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