Professional Documents
Culture Documents
Communication
Initialization and Communication
1
Initialization
8
ServletConfig
9
ServletConfig
10
init param for a particular servlet
<servlet>
<servlet-name>servlet-name</servlet-name>
<init-param>
<param-name>param-name</param-name>
<param-value>param-value</param-value>
</init-param>
…
</servlet>
In servlet servlet-name :
String var-name=getInitParameter(“param-name”);
11
ServletContext
13
ServletContext
Getting ServletContext
• ServletContext getServletContext()
method of HttpServlet
or
• Initialize an instance of cxt by overriding
init(ServletContext) method.
14
Methods of ServletContext
15
Status 2xx
19
Status 4xx
20
doPost(
Status 5xx ) not
defined!
21
Status 3xx
22
public class S1{
…
HTTP status code 3xx response.sendRedirect
indicating the redirect (“http://pondser/app2);
…
}
PondServer
23
Inter Servlet Communication
24
forward
request
response
GET Request for servlet S1
S1
forward
S2
S2
Calls doGet() method of S2.
If the request was for POST, then
doPost() of S2 gets called.
26
javax.servlet.RequestDispatcher
• RequestDispatcher is an interface that has methods to
forward or include.
• void forward(ServletRequest request,
ServletResponse response)
• void include(ServletRequest request,
ServletResponse response.
• RequestDispatcher instance is obtained through
– ServletContext or ServletRequest method-
RequestDispatcher getRequestDispatcher(String
path)
or w.r.t. to <url-pattern>
– ServletContext method
RequestDispatcher
getNamedDispatcher(String name)
w.r.t. to <servlet-name>
27
Request Attributes
<html><head><title>Register</title></head>
<body>
<h2>Register</h2>
<table border=1><tr><td>
<form method=post action="register">
Name:<input type=text name=name>
Email:<input type=text name=email>
<input type=submit></form>
</body>
</html> On submitting this form, a servlet is invoked that checks for
the validity of data. If the data is invalid, the same form is
displayed with an error message, otherwise another servlet
is invoked that displays a friendly message.
30
web.xml
<web-app>
<display-name>Register</display-name>
<servlet>
<servlet-name>Register</servlet-name>
<servlet-class>Register</servlet-class>
</servlet>
<servlet>
<servlet-name>Success</servlet-name>
<servlet-class>Success</servlet-class>
</servlet>
<servlet>
<servlet-name>Failure</servlet-name>
<servlet-class>Error</servlet-class>
</servlet>
31
<servlet-mapping>
<servlet-name>Register</servlet-name>
<url-pattern>/register.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Success</servlet-name>
<url-pattern>/success.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Failure</servlet-name>
<url-pattern>/error.do</url-pattern>
</servlet-mapping>
</web-app>
32
Register Servlet
// assume imports
public class Register extends HttpServlet {
public void doPost(HttpServletRequest
request,HttpServletResponse response) throws
IOException, ServletException {
PrintWriter out = response.getWriter();
String name=request.getParameter("name");
String email=request.getParameter("email");
33
else{
request.setAttribute("error","Name or
email not entered");
request.getRequestDispatcher("error.do"
).include(request,response);
request.getRequestDispatcher("index.htm
l").include(request,response);
}
}}
34
Success Servlet
//assume imports
public class Success extends HttpServlet {
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws
IOException, ServletException {
PrintWriter out = response.getWriter();
try{
response.setContentType("text/html");
out.println("<html><head><title>Success
</title>");
35
out.println("<head><body>");
out.println("Thanks <I>
"+request.getParameter("name")+"</I>" );
out.println("</body></html>");
}catch(Exception e){out.println(e.toString());
}}
}
36
J2EE Application Servers support for
Connection Pooling
48