Upload
adwait-gore
View
240
Download
0
Embed Size (px)
Citation preview
8/8/2019 Servlets 3
1/25
3
SERVLETS
8/8/2019 Servlets 3
2/25
The hierarchy
Servlet, Generic servlet, HTTP Servlet
8/8/2019 Servlets 3
3/25
All servlets must implement the Servlet
interface
Methods:
init() service()
destroy()
getServletConfig()
getServletInfo()
Servlet Interface
8/8/2019 Servlets 3
4/25
Abstract classthat implements
Servlet and ServletConfig
GenericServlet Class
8/8/2019 Servlets 3
5/25
Abstract classthat extends GenericServletClassto provide a framework for the HTTP Protocol
doGet(HttpServletRequest req,
Htt
pServletR
esp
on
se re
sp)
doPost(HttpServletRequest req,
HttpServletResponse resp)
getLastModified((HttpServletRequest req)
HttpServlet Class
8/8/2019 Servlets 3
6/25
1. Subclassoff HttpServlet
2. Override doGet(....) method
3. HttpServletRequest
getParameter("paramName")
4. HttpServletResponse
setContentType
get PrintWriter
send textto client via PrintWriter
5. Don't use instance variables
5 Simple Steps for Java Servlets
8/8/2019 Servlets 3
7/25
Single instance created
init() method called
You can override init() in your subclassof HttpServlet
to dosome initial code....
init() is NOT called again on further requests
Servlet Lifecycle
(Creation)
8/8/2019 Servlets 3
8/25
On each request, the server spawns a new thread and calls
service()
service() checks HTTP requesttype and calls appropriate
doXXXX(Get, Post, Put...)
Servlet Lifecycle
(Service Method)
8/8/2019 Servlets 3
9/25
called in response to an HTTP GET and an HTTP
POST
In doGetMethod the parameters are appended tothe
URL and sent along with header informationIn doPost, parameters are sent in separate line in the
body
doGet() & doPost()
8/8/2019 Servlets 3
10/25
public void doGet(HttpServletRequest req, HttpServletResponse resp){
doPost(req,resp);}
public void doPost(HttpServletRequest req, HttpServletResponse resp){
//processthe incoming request}
We can call one method from the
other
8/8/2019 Servlets 3
11/25
For some reason (servlet idle, etc) the server may
wantto remove the servlet from memory
destroy() allows you to close DB connections, wrap
up, etc...
Servlet Lifecycle
(Destroy Method)
8/8/2019 Servlets 3
12/25
The Connection interface establishes a
connection (session) with a specific
database.Within the contextof a
Connection, SQLstatements are
executed and results are returned.
Connection interface
8/8/2019 Servlets 3
13/25
Connection myConnection;
myConnection =DriverManager.getConnection("jdbc:odbc:
orcldb", "stduser", "stduser");
e.g.
8/8/2019 Servlets 3
14/25
The Statement interface creates an object
that is used to execute a static SQL
statement and obtain the results produced
by it.
Statement Interface
8/8/2019 Servlets 3
15/25
Statement stmt =
myConnection.createStatement();
e.g.
8/8/2019 Servlets 3
16/25
The ResultSet interface provides accessto
a table of data.AResultSetobject is
usually generatedby executing a
Statement.
ResultSet interface
8/8/2019 Servlets 3
17/25
ResultSet rs = stmt.executeQuery("select *
from student_semester_result;");
e.g.
8/8/2019 Servlets 3
18/25
A SQLstatement is precompiled and
stored in a PreparedStatement object.
Thisobject can thenbe used to efficiently
execute thisstatement multiple times.
Interface PreparedStatement
8/8/2019 Servlets 3
19/25
PreparedStatement pst = myConnection.prepareStatement("Select * from emp_sal"
);
ResultSet rs = pst.executeQuery();
e.g.
8/8/2019 Servlets 3
20/25
Returns a resultsetobject using the
specified statementor prepared statement
object and SQL SELECT statement.
Execute Query
8/8/2019 Servlets 3
21/25
rs = stmt.executeQuery( "select * from
names" );
e.g.
8/8/2019 Servlets 3
22/25
Using the specified statementor prepared
statementobject and SQL INSERT,
UPDATE or DELETE statement.
Returns:
Integer - the number of rows updated.
Execute Update
8/8/2019 Servlets 3
23/25
stmt = "delete from names where
last_name = 'smith'"
if stmt.executeUpdate( stmt ) = 0 then
break
end
e.g.
8/8/2019 Servlets 3
24/25
See the StdMgmtServlet.java file
Example
8/8/2019 Servlets 3
25/25
Cookies and Privacy
Sessions
Next..