Académique Documents
Professionnel Documents
Culture Documents
des Servlets
GenericServlet
{abstract}
HttpServlet
{abstract}
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response); }
@Override
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
Larbi Hassouni Servlets
}} 7
• Les méthodes doGet et doPost reçoivent un
argument objet request de type
HttpServletRequest.
• L'interface HttpServletRequest hérite de
l'interface ServletRequest.
• L'objet request peut exécuter toutes les
méthodes des deux interfaces
Servlet
String username = request.getParameter("username");
String password = request.getParameter("password");
out.println("username: " + username + "<br />");
out.println("password: " + password + "<br />");
Larbi Hassouni Servlets 18
Formulaire:
<fieldset>
<legend>Handling CheckBoxes</legend>
Speaking language:<br/>
<input type="checkbox" name="language" value="english" />English<br/>
<input type="checkbox" name="language" value="french" />French<br/>
</fieldset>
Servlet
// Handling CheckBoxes
String[] languages = request.getParameterValues("language");
if (languages != null) {
out.println("Languages are: <br />");
for (String lang : languages) {
out.println(lang + "<br />");
}
}
Larbi Hassouni Servlets 19
• Pour une case à cocher qui a l'attribut value, la
méthode getParameter obtient la valeur de cet
attribut si la case à cocher est sélectionnée, et
null dans le cas contraire
• Pour une case à cocher qui n'a pas l'attribut
value, la méthode getParameter obtient la valeur
"on" si la case à cocher est sélectionnée, et null
dans le cas contraire
• Par conséquent, vous pouvez déterminer si un
utilisateur a sélectionné une case à cocher en
testant si sa valeur n'est pas null.
Servlet
// Handling RadioButtons
String gender = request.getParameter("gender");
out.println("Gender is: " + gender+"<br/>");
Larbi Hassouni Servlets 21
Formulaire:
<fieldset>
<legend>Handling Text area</legend>
Feedback:<br/>
<textarea rows="5" cols="30"name="feedback">
</textarea>
</fieldset>
Servlet
// Handling Textarea
String feedback = request.getParameter("feedback");
out.println("Feed back is: <br/>" + feedback +"<br/>");
Larbi Hassouni Servlets 22
Formulaire:
<fieldset>
<legend>Handling Combo Boxes</legend>
Job Category:
<select name="jobCat">
<option value="tech">Technology</option>
<option value="admin">Administration</option>
<option value="biology">Biology</option>
<option value="science">Science</option>
</select>
</fieldset>
Servlet
// Handling ComboBox
String jobCategory = request.getParameter("jobCat");
out.println("Job category is:
Larbi Hassouni
" + jobCategory +"<br />");
Servlets 23
Formulaire:
<fieldset>
<legend>Handling List Boxes with multiple value</legend>
Visited cities:
<select name="city" multiple>
<option value="Tanger">Tanger</option>
<option value="Fes">Fes</option>
<option value="Rabat">Rabat</option>
</select>
</fieldset>
Servlet
// Handling ListBox with multiple values
String[] vcities = request.getParameterValues("city");
if (vcities != null) {
out.println("visited cities are: <br />");
for (String cit : vcities) {
out.println(cit + "<br />");
}
Larbi Hassouni } Servlets 24
Larbi Hassouni Servlets 25
Larbi Hassouni Servlets 26
Larbi Hassouni Servlets 27
Larbi Hassouni Servlets 28
• Lorsque vous travaillez avec une servlet vous
utilisez typiquement des chemins relatifs pour
spécifier des fichiers faisant partie de
l'application.
• Cependant des fois, vous avez besoin d'utiliser
le chemin absolu de l'un de ces fichiers.
out.println("</body></html>");
}
}
Larbi Hassouni Servlets 31
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException
{
// TODO Auto-generated method stub
response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.print("<!DOCTYPE html>");
out.print("<html>");
out.print("<head><title>Chemin absolu d'un
fichier</title></head>");
out.print("<body>");
out.print("<h2>Chemin absolu d'un fichier</h2>");
out.print("<p>");
ServletContext src = request.getServletContext();
String cheminabsolu = src.getRealPath("/myform01.html");
out.print(cheminabsolu);
out.print("</p>");
out.print("</body>");
out.print("</html>");
}
rd.forward(request, response);
//method may be include or forward
package mypkg;
import java.io.IOException;
…………………………………………………………………….
String n=request.getParameter("userName");
out.print("Welcome "+n);
}}
USE mohadb;
} finally { DBUtil.closePreparedStatement(ps); }
}
Larbi Hassouni Servlets 63
public static int update(User user) {
Connection con = DBUtil.dbConnect("mohadb", "moha", "topsecret");
PreparedStatement ps = null;
return ps.executeUpdate();
} finally { DBUtil.closePreparedStatement(ps);
}
}
Larbi Hassouni Servlets 64
public static int delete(User user) {
Connection con = DBUtil.dbConnect("mohadb", "moha", "topsecret");
PreparedStatement ps = null;
return ps.executeUpdate();
} catch (SQLException e) {
System.out.println(e);
return 0;
} finally {
DBUtil.closePreparedStatement(ps);
}
}
br { clear: both; }
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import business.User;
import data.DBUser;
<servlet>
<servlet-name>EmailListServlet</servlet-name>
<servlet-class>email.EmailListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>EmailListServlet</servlet-name>
<url-pattern>/emailList</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
</web-app>
<init-param>
<param-name>CheminRelatifFichier</param-name>
<param-value>/WEB-INF/EmailList.txt</param-value>
</init-param>
init-params={@InitParam(name="CheminRelatifFichier",
value="/WEB-INF/EmailList.txt")
}
)
• Il faut répéter l'annotation @InitParam pour chaque paire name/value.
Méthode Description
Returns a reference to the
ServletContext in which this servlet is
public ServletContext getServletContext()
running and which contains information
about the entire web application context
Returns a ServletConfig object that
public ServletConfig getServletConfig() contains information about a single servlet's
configuration.
<servlet-mapping>
<servlet-name>EntryServlet</servlet-name>
<url-pattern>/start</url-pattern>
</servlet-mapping>
</web-app>
An other manner
Retrouver les noms et valeurs de tous les
parametres d'initialization d'une servlet avec
ServletConfig
<init-param>
<param-name>password</param-name>
<param-value>oracle</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>DemoServlet</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
</web-app>
Larbi Hassouni Servlets 94
import java.io.IOException;
@WebServlet("/DemoServlet")
public class DemoServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
ServletConfig config=getServletConfig();
Enumeration<String> e=config.getInitParameterNames();
String str="";
while(e.hasMoreElements()){
str=e.nextElement();
out.print("<br>Name: "+str);
out.print(" value: "+config.getInitParameter(str));
}
out.close();
}}
Larbi Hassouni Servlets 95
ServletConfig Interface
The core advantage of ServletConfig is that you don't need to edit the servlet
file if information is modified from the web.xml file.
<servlet>
<servlet-name>sonoojaiswal</servlet-name>
<servlet-class>DemoServlet</servlet-class>
<context-param>
<param-name>dname</param-name>
<param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>
</context-param>
<servlet-mapping>
<servlet-name>sonoojaiswal</servlet-name>
<url-pattern>/context</url-pattern>
</servlet-mapping>
</servlet>
</web-app>
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DemoServlet extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
res.setContentType("text/html");
PrintWriter out=res.getWriter();
ServletContext context=getServletContext();
Enumeration<String> e=context.getInitParameterNames();
String str="";
while(e.hasMoreElements()){
str=e.nextElement();
out.print("<br> "+context.getInitParameter(str));
}
}}