This document provides an overview of Java servlets. It discusses that servlets are modules that extend request/response-oriented servers like Java web servers. Unlike applets, servlets do not have a graphical user interface. The document then covers servlet basics, uses for servlets including providing CGI script functionality and load balancing, and differences between generic and HTTP servlets. It also provides examples of simple servlets and using HTTP servlets to process web forms and handle GET and POST requests. Finally, it discusses session state maintenance using HTTP session objects.
Servlet architecture comes under a java programming language used to create dynamic web applications. Mainly servlets are used to develop server-side applications. Servlets are very robust and scalable. Before introducing servlets, CGI (common gateway interface) was used.
Servlet architecture comes under a java programming language used to create dynamic web applications. Mainly servlets are used to develop server-side applications. Servlets are very robust and scalable. Before introducing servlets, CGI (common gateway interface) was used.
What is the DOM?
The DOM is a W3C (World Wide Web Consortium) standard.
The DOM defines a standard for accessing documents:
"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."
The W3C DOM standard is separated into 3 different parts:
Core DOM - standard model for all document types
XML DOM - standard model for XML documents
HTML DOM - standard model for HTML documents
The HTML DOM (Document Object Model)
When a web page is loaded, the browser creates a Document Object Model of the page.
The HTML DOM model is constructed as a tree of Objects.
With the HTML DOM, JavaScript can access and change all the elements of an HTML document.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
In JavaScript, almost "everything" is an object.
-Booleans can be objects (if defined with the new keyword)
-Numbers can be objects (if defined with the new keyword)
-Strings can be objects (if defined with the new keyword)
-Dates are always objects
-Maths are always objects
-Regular expressions are always objects
-Arrays are always objects
-Functions are always objects
-Objects are always objects
JSP technology has facilitated the segregation of the work of a Web designer and a Web developer.
A Web designer can design and formulate the layout for the Web page by using HTML.
On the other hand, a Web developer working independently can use java code and other JSP specific tags to code the business logic.
The simultaneous construction of the static and dynamic content facilitates development of quality applications with increased productivity.
What is the DOM?
The DOM is a W3C (World Wide Web Consortium) standard.
The DOM defines a standard for accessing documents:
"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."
The W3C DOM standard is separated into 3 different parts:
Core DOM - standard model for all document types
XML DOM - standard model for XML documents
HTML DOM - standard model for HTML documents
The HTML DOM (Document Object Model)
When a web page is loaded, the browser creates a Document Object Model of the page.
The HTML DOM model is constructed as a tree of Objects.
With the HTML DOM, JavaScript can access and change all the elements of an HTML document.
This talk introduces Spring's REST stack - Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth and Spring Social - while refining an API to move higher up the Richardson maturity model
In JavaScript, almost "everything" is an object.
-Booleans can be objects (if defined with the new keyword)
-Numbers can be objects (if defined with the new keyword)
-Strings can be objects (if defined with the new keyword)
-Dates are always objects
-Maths are always objects
-Regular expressions are always objects
-Arrays are always objects
-Functions are always objects
-Objects are always objects
JSP technology has facilitated the segregation of the work of a Web designer and a Web developer.
A Web designer can design and formulate the layout for the Web page by using HTML.
On the other hand, a Web developer working independently can use java code and other JSP specific tags to code the business logic.
The simultaneous construction of the static and dynamic content facilitates development of quality applications with increased productivity.
ABOUT CORE JAVA COURSE SCOPE:
JAVA based business programs perform well because constant JAVA requirements help designers to create multilevel programs with a component centered approach.
JAVA growth allows secure and top rated application growth on several systems. Many companies in India have well-qualified application technicians having skills in Java, J2EE, JSP, and J2ME, JAVA Programming Solutions help your businesses to do better. Many companies recruit fresh candidates as trainees in CORE JAVA and later on student’s knowledge will be enhanced.
PROGRAM EDGES:
Our training segments are completely designed according to current IT market.
Student will go through the coaching of OOPs concept and DBMS, RDBMS ideas as free of charge package before starting of Java Training.
We offer regular, speed up and end of the week coaching in Java training.
Our major concern is to offer java technology coaching to you so that you can be wiser and create effective programs and programs more quickly using any system – such as Oracle’s program server and web facilities software.
After finishing java training, students can easily create and set up your own real-time java program.
Study material is provided with the course which includes ideas, illustrations and real-time illustrations.
basic information about image files and why we use lots of kinds image file formats.
Some key terms like pixels, pixel depths, resolution, monochore, grayscale and colored images which will be used in the next sections of the presentation.
Basic compression methods which are used in image compression and give information about lossy/lossles images.
JPEG, PNG, GIF and BMP detailed
The series of presentations contains the information about "Management Information System" subject of SEIT for University of Pune.
Subject Teacher: Tushar B Kute (Sandip Institute of Technology and Research Centre, Nashik)
http://www.tusharkute.com
Http Server Programming in JAVA - Handling http requests and responsesbharathiv53
This ppt contains HTML forms and CGI; HTTP; Servlet Programming; The Life Cycle of a
Servlet; Using Tomcat for Servlet Development; A simple Servlet;
deployment of simple servlets, web server (Java web server / Tomcat/ Web
logic) The Servlet API; The Javax.servlet Package; Reading Servlet
Parameter; The Javax.servlet.http package; Handling HTTP Requests and
Responses, HTTP GET and POST methods, Using Cookies; Session
Tracking
Servlet
Common Gateway Interface (CGI), Lifecycle of a Servlet, deploying a servlet, The Servlet API, Reading Servlet parameters, Reading Initialization parameters, Handling Http Request & Responses, Using Cookies and Sessions, connecting to a database using JDBC.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
2. 01/30/15 Distributed Computing, M. L. Liu2
Introduction
Servlets are modules that extend request/response-
oriented servers, such as Java-enabled web servers.
Servlets are to servers what applets are to browsers: an
external program invoked at runtime.
Unlike applets, however, servlets have no graphical
user interface.
Servlets can be embedded in many different servers
because the servlet API, which you use to write
servlets, assumes nothing about the server's
environment or protocol.
Servlets are portable.
3. 01/30/15 Distributed Computing, M. L. Liu3
Servlet Basics
A servlet is an object of the javax.servlet class.
It runs inside a Java Virtual Machine on a server host.
Unlike applets, servlets do not require special support
in the web browser.
The Servlet class is not part of the Java Development
Kit (JDK). You must download the JDSK (Java
Servlet Development Kit).
A servlet is an object. It is loaded and runs in an object
called a servlet engine, or a servlet container.
4. 01/30/15 Distributed Computing, M. L. Liu4
Uses for Servlets
http://java.sun.com/docs/books/tutorial/servlets/overview/index.html
Providing the functionalities of CGI scripts with a better
API and enhanced capabilities.
Allowing collaboration between people. A servlet can handle
multiple requests concurrently, and can synchronize
requests. This allows servlets to support systems such as on-
line conferencing.
Forwarding requests. Servlets can forward requests to other
servers and servlets. Thus servlets can be used to balance
load among several servers that mirror the same content,
and to partition a single logical service over several servers,
according to task type or organizational boundaries.
5. 01/30/15 Distributed Computing, M. L. Liu5
Generic Servlets and HTTP Servlets
Java Servlet Programming, O’Reilley Press
Every servlet must implement the javax.servlet.Servlet
interface
Most servlets implement the interface by extending
one of these classes
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
A generic servlet should override the service( ) method
to process requests and generate appropriate responses.
An HTTP servlet overrides the doPost( ) and/or doGet(
) method.
6. 01/30/15 Distributed Computing, M. L. Liu6
Generic and HTTP Servlets
G e n e r ic S e r v le t
s e r v ic e ( )
S e r v e r
C lie n t
r e q u e s t
r e s p o n s e
H T T P S e r v le t
s e r v ic e ( )
H T T P S e r v e r
B r o w s e r
r e q u e s t
r e s p o n s e
d o G e t ( )
d o P o s t ( )
7. 01/30/15 Distributed Computing, M. L. Liu7
A simple Servlet, from
http://java.sun.com/docs/books/tutorial/servlets/overview/simple.html
public class SimpleServlet extends HttpServlet {
/** * Handle the HTTP GET method by building a simple web page. */
public void doGet (HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
PrintWriter out;
String title = "Simple Servlet Output";
// set content type and other response header fields first
response.setContentType("text/html");
// then write the data of the response out = response.getWriter();
out.println("<HTML><HEAD><TITLE>");
out.println(title);
out.println("</TITLE></HEAD><BODY>");
out.println("<H1>" + title + "</H1>");
out.println("<P>This is output from SimpleServlet.");
out.println("</BODY></HTML>");
out.close();
}
}
8. 01/30/15 Distributed Computing, M. L. Liu8
Using HTTP Servlet to process web forms
http://java.sun.com/docs/books/tutorial/servlets/client-interaction/req-res.html
Requests and Responses
Methods in the HttpServlet class that handle
client requests take two arguments:
An HttpServletRequest object, which
encapsulates the data from the client
An HttpServletResponse object, which
encapsulates the response to the client
public void doGet (HttpServletRequest request,
HttpServletResponse response)
public void doPost(HttpServletRequest request,
HttpServletResponse response)
9. 01/30/15 Distributed Computing, M. L. Liu9
HttpServletRequest Objects
http://java.sun.com/docs/books/tutorial/servlets/client-interaction/req-res.html
An HttpServletRequest object provides access to HTTP header
data, such as any cookies found in the request and the HTTP
method with which the request was made.
The HttpServletRequest object also allows you to obtain
the arguments that the client sent as part of the request.
To access client data:
The getParameter method returns the value of a named
parameter. If your parameter could have more than one value, use
getParameterValues instead. The getParameterValues
method returns an array of values for the named parameter. (The
method getParameterNames provides the names of the
parameters.)
For HTTP GET requests, the getQueryString method returns a
String of raw data from the client. You must parse this data
yourself to obtain the parameters and values.
10. 01/30/15 Distributed Computing, M. L. Liu10
HttpServletRequest Interface
public String ServletRequest.getQueryString( ); returns the query string of
the requst.
public String GetParameter(String name): given the name of a parameter in
the query string of the request, this method returns the value.
String id = GetParameter(“id”)
public String[ ] GetParameterValues(String name): returns multiple values
for the named parameter – use for parameters which may have multiple
values, such as from checkboxes.
String[ ] colors = req.getParmeterValues(“color”);
if (colors != null)
for (int I = 0; I < colors.length; I++ )
out.println(colors[I]);
public Enumeration getParameterNames( ): returns an enumeration object
with a list of all of the parameter names in the query string of the request.
11. 01/30/15 Distributed Computing, M. L. Liu11
HttpServletResponse Objects
http://java.sun.com/docs/books/tutorial/servlets/client-interaction/req-res.html
An HttpServletResponse object provides two
ways of returning data to the user:
The getWriter method returns a Writer
The getOutputStream method returns a
ServletOutputStream
Use the getWriter method to return text data to the
user, and the getOutputStream method for binary
data.
Closing the Writer or ServletOutputStream after
you send the response allows the server to know when
the response is complete.
12. 01/30/15 Distributed Computing, M. L. Liu12
HttpServletResponse Interface
public interface HttpServletResponse extends
ServletResponse: “The servlet engine provides an object
that implements this interface and passes it into th servlet
through the service method” – “Java Server Programming”
public void setContentType(String type) : this method must
be called to generate the first line of the HTTP response:
setContentType(“text/html”);
public PrintWriter getWriter( ) throws IOException:
returns an object which can be used for writing the
responses, one line at a time:
PrintWriter out = res.getWriter;
out.println(“<h1>Hello world</h1>”);
13. 01/30/15 Distributed Computing, M. L. Liu13
Servlets are Concurrent servers
http://java.sun.com/docs/books/tutorial/servlets/client-interaction/req-res.html
HTTP servlets are typically capable of serving
multiple clients concurrently.
If the methods in your servlet do work for
clients by accessing a shared resource, then you
must either:
Synchronize access to that resource, or
Create a servlet that handles only one client request
at a time.
14. 01/30/15 Distributed Computing, M. L. Liu14
Handling GET requests
http://java.sun.com/docs/books/tutorial/servlets/client-interaction/http-
methods.html
public class BookDetailServlet extends HttpServlet {
public void doGet (HttpServletRequest request,
HttpServletResponse response) throws
ServletException, IOException
{
...
// set content-type header before accessing the Writer
response.setContentType("text/html");
PrintWriter out = response.getWriter();
// then write the response
out.println("<html>" +
"<head><title>Book Description</title></head>" + ...
);
//Get the identifier of the book to display
String bookId = request.getParameter("bookId");
if (bookId != null) {
// fetch the information about the book and print it ...
} out.println("</body></html>");
15. 01/30/15 Distributed Computing, M. L. Liu15
Handling POST Requests
http://java.sun.com/docs/books/tutorial/servlets/client-interaction/http-
methods.html
public class ReceiptServlet extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
...
// set content type header before accessing the Writer
response.setContentType("text/html");
PrintWriter out = response.getWriter( );
// then write the response
out.println("<html>" + "<head><title> Receipt </title>"
+ ...);
out.println("Thank you for purchasing your books from us
" + request.getParameter("cardname") + ...);
out.close();
}
...
}
16. 01/30/15 Distributed Computing, M. L. Liu16
The Life Cycle of an HTTP Servlet
The web server loads a servlet when it is called
for in a web page.
The web server invokes the init( ) method of
the servlet.
The servlet handles client responses.
The server destroys the servlet (at the request of
the system administrator). A servlet is
normally not destroyed once it is loaded.
17. 01/30/15 Distributed Computing, M. L. Liu17
Servlet Examples
See Servletsimple folder in code sample:
HelloWorld.java: a simple servlet
Counter.java: illustrates that a servlet is persistent
Counter2.java: illustrates the use of synchronized
method with a servlet
GetForm.html, GetForm.java: illustrates the
processing of data sent with an HTTP request via the
GET method
PostForm.html, PostForm.java: illustrates the
processing of data sent with an HTTP request via the
POST method
18. 01/30/15 Distributed Computing, M. L. Liu18
Session State Information
The mechanisms for state information
maintenance with CGI can also be used for
servlets: hidden-tag, URL suffix, file/database,
cookies.
In addition, a session tracking mechanism is
provided, using an HttpSession object.
19. 01/30/15 Distributed Computing, M. L. Liu19
Cookies in Java
http://java.sun.com/products/servlet/2.2/javadoc/index.html
A cookie has a name, a single value, and optional attributes such as a
comment, path and domain qualifiers, a maximum age, and a version
number. Some Web browsers have bugs in how they handle the optional
attributes, so use them sparingly to improve the interoperability of your
servlets.
The servlet sends cookies to the browser by using the
HttpServletResponse.addCookie(javax.servelet.http.Cookie) method,
which adds fields to HTTP response headers to send cookies to the
browser, one at a time. The browser is expected to support 20 cookies
for each Web server, 300 cookies total, and may limit cookie size to 4
KB each.
The browser returns cookies to the servlet by adding fields to HTTP
request headers. Cookies can be retrieved from a request by using the
HttpServletRequest.getCookies( ) method. Several cookies might have
the same name but different path attributes.
20. 01/30/15 Distributed Computing, M. L. Liu20
Processing Cookies with Java
Java Server Programming – Wrox press
A cookie is an object of the javax.servlet.http.cookie class.
Methods to use with a cookie object:
public Cookie(String name, String value): creates a cookie
with the name-value pair in the arguments.
• import javax.servlet.http.*
• Cookie oreo = new Cookie(“id”,”12345”);
public string getName( ) : returns the name of the cookie
public string getValue( ) : returns the value of the cookie
public void setValue(String _val) : sets the value of the
cookie
public void setMaxAge(int expiry) : sets the
maximum age of the cookie in seconds.
21. 01/30/15 Distributed Computing, M. L. Liu21
Processing Cookies with Java – 2
Java Server Programming – Wrox press
public void setPath(java.lang.String uri) : Specifies a path for
the cookie to which the client should return the cookie. The cookie is
visible to all the pages in the directory you specify, and all the pages in
that directory's subdirectories. A cookie's path must include the servlet
that set the cookie, for example, /catalog, which makes the cookie visible
to all directories on the server under /catalog.
public java.lang.String getPath() : Returns the path on the
server to which the browser returns this cookie. The cookie is visible to
all subpaths on the server.
public String getDomain( ) : returns the domain of the cookie.
• if orea.getDomain.equals(“.foo.com”)
• … // do something related to golf
public void setDomain(String _domain): sets the cookie’s domain.
22. 01/30/15 Distributed Computing, M. L. Liu22
doGet Method using cookies
public void doGet(HttpServletResponse req, HttpServletResponse res)
throws ServletException, IOExceiption{
res.setContentType(“text/html”);
PrintWriter out = res.getWriter( );
out.println (“<H1>Contents of your shopping cart:</H1>”);
Cookie cookies[ ];
cookies = req.getCookies( );
if (cookies != null) {
for ( int i = 0; i < cookies.length; i++ ) {
if (cookies[i].getName( ).startWith(“Item”))
out.println( cookies[i].getName( ) + “: “ + cookies[i].getValue( ));
out.close( );
}
23. 01/30/15 Distributed Computing, M. L. Liu23
Servlet & Cookies Example
See Servletcookies folder in code sample:
Cart.html: web page to allow selection of items
Cart.java: Servlet invoked by Cart.html; it instantiates
a cookie object for each items selected.
Cart2.html: web page to allow viewing of items
currently in cart
Cart2.java: Servlet to scan cookies received with the
HTTP request and display the contents of each cookie.
24. 01/30/15 Distributed Computing, M. L. Liu24
HTTP Session Objects
http://java.sun.com/products/servlet/2.2/javadoc/index.html
The javax.servlet.http package provides a
public interface HttpSession: Provides a way to
identify a user across more than one page request or
visit to a Web site and to store information about that
user.
The servlet container uses this interface to create a
session between an HTTP client and an HTTP server.
The session persists for a specified time period, across
more than one connection or page request from the
user. A session usually corresponds to one user, who
may visit a site many times.
25. 01/30/15 Distributed Computing, M. L. Liu25
HTTP Session Object - 2
http://java.sun.com/products/servlet/2.2/javadoc/index.html
This interface allows servlets to
View and manipulate information about a session, such as
the session identifier, creation time, and last accessed time
Bind objects to sessions, allowing user information to
persist across multiple user connections
Session object allows session state information to be
maintained without depending on the use of cookies
(which can be disabled by a browser user.)
Session information is scoped only to the current web
application (ServletContext), so information stored in
one context will not be directly visible in another.
26. 01/30/15 Distributed Computing, M. L. Liu26
The Session object
A S e s s i o n o b j e c t
s e r v e l e t e n g i n e
w e b s e r v e r
S e r v e r h o s t
C l i e n t h o s t
r e q u e s t / r e s p o n s e
s e r v le t
27. 01/30/15 Distributed Computing, M. L. Liu27
Obtaining an HTTPSession Object
• A session object is obtained using the getSession( ) method of the
HttpServletRequest object (from doPost or doGet)
• public HTTPSession getSession(boolean create):
Returns the current HttpSession associated with this request or,
if if there is no current session and create is true, returns a new
session. If create is false and the request has no valid
HttpSession, this method returns null.
To make sure the session is properly maintained, you must call this
method before the response is committed.
public class ShoppingCart extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletRespnse res)
throws ServletException, IOException
…
// get session object
HttpSession session = req.getSession(true)
if (session != null) {
…
} …
28. 01/30/15 Distributed Computing, M. L. Liu28
The HTTPSession Object methods
public java.lang.String getId( ): returns a string containing
the unique identifier assigned to this session. The identifier is
assigned by the servlet container and is implementation
dependent.
public java.lang.Object
getAttribute(java.lang.String name): returns the object
bound with the specified name in this session, or null if no
object is bound under the name.
public java.util.Enumeration getAttributeNames( ):
returns an Enumeration of String objects containing the names
of all the objects bound to this session.
public void removeAttribute(java.lang.String name):
removes the object bound with the specified name from this
session. If the session does not have an object bound with the
specified name, this method does nothing.
29. 01/30/15 Distributed Computing, M. L. Liu29
Session Object example
See ServletSession folder in code sample:
Cart.html: web page to allow selection of items
Cart.java: Servlet invoked by Cart.html; it instantiates
a session object which contains descriptions of items
selected.
Cart2.html: web page to allow viewing of items
currently in cart
Cart2.java: Servlet to display items in the shopping
cart, as recorded by the use a session object in the Cart
servlet
30. 01/30/15 Distributed Computing, M. L. Liu30
Summary - 1
A servlet is a Java class.
Its code is loaded to a servlet container on the
server host.
It is initiated by the server in response to a
client’s request.
Once loaded, a servlet is persistent.
31. 01/30/15 Distributed Computing, M. L. Liu31
Summary - 2
For state information maintenance:
hidden form fields
cookies
the servlet’s instance variables may hold global data
a session object can be used to hold session data