Preview
Prezentăm în continuare câteva metode ale interfeţei HTTPServletRequest, precizând care dintre ele este moştenită de la interfaţa ServletRequest.
Interfaţa HTTPServletRequest defineşte un obiect care permite servlet-ului să identifice informaţia trimisă de client. Containerul servlet crează un obiect de acest tip, conţinând cererea către servlet, pe care îl transmite ca argument metodelor de serviciu. Sunt incluse aici numele şi valorile parametrilor din cerere, atribute şi fluxul de intrare.
public String getMethod()
întoarce numele metodei conţinută în cerere;
public String getQueryString()
întoarce şirul de parametri ce urmează căii din URL. Dacă nu apar parametri, metoda întoarce null. Cum de obicei prima tranzacţie se face fără parametri, metoda poate fi folosită pentru a identifica această primă tranzacţie;
public String getRequestURI()
întoarce porţiunea din cerere dintre numele protocolului şi querystring;
public String getContextPath()
întoarce porţiunea din URI care precizează contextul cererii;
public String getServletPath()
întoarce porţiunea din URI care invocă servlet-ul.
Următoarele metode sunt moştenite de la interfaţa ServletRequest:
public String getRemoteAddr()
întoarce adresa IP numerică a clientului;
public String getServerName()
întoarce adresa IP simbolică a serverului;
int getServerPort()
întoarce portul prin care comunică serverul;
public String getContentType()
întoarce tipul MIME al cererii sau null (dacă acest tip nu a fost precizat). Pentru anumite tipuri MIME, şirul de caractere întors conţine şi alte informaţii; de exemplu pentru tipul \"multipart/form-data\" mai este inclus şi şirul de carcatere ce constituie linia separatoare (vezi paragraful referitor la transmiterea de fişere între client şi server).
Metoda getInputStream va fi prezentată atunci când vom vorbi despre fluxuri.
Următoarele două metode permit accesarea parametrilor din şirul de parametri adăugaţi comenzii HTTP, de exemplu prin acţionarea unui buton de tip submit.
public String getParameter(String nume)
întoarce valoarea parametrului-cerere nume, sau null dacă acesta nu există. În cazul în care parametrului-cerere îi sunt asociate mai multe valori (caz în care de fapt trebuie folosită metoda getParameterValues), metoda întoarce prima informaţie întoarsă de metoda getParameterValues.
public String[] getParameterValues(String nume)
întoarce un tablou cu valorile asociate parametrului-cerere nume. Metoda este folosită atunci când parametrul-cerere are mai multe valori (de exemplu cele selectate în cadrul unui meniu). Dacă nume nu există, este întors null.
Exemplu. Considerăm următorul servlet:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Ex1 extends HttpServlet {
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,IOException {
resp.setContentType(\"text/html\");
ServletOutputStream out = resp.getOutputStream();
String RemoteAddr = req.getRemoteAddr();
String Method = req.getMethod();
String ServerName = req.getServerName();
int ServerPort = req.getServerPort();
String RequestURI = req.getRequestURI();
String ContextPath = req.getContextPath();
String ServletPath = req.getServletPath();
String ContentType = req.getContentType();
out.println(
\" Info_Client\" +
\" RemoteAddr : \" + RemoteAddr +
\" Method : \" + Method +
\" ServerName : \" + ServerName +
\" ServerPort : \" + ServerPort +
\" RequestURI : \" + RequestURI +
\" ContextPath : \" + ContextPath +
\" ServletPath : \" + ServletPath +
\" ContentType : \" + ContentType +
\"\");
}
}
La executare, browser-ul va afişa:
RemoteAddr : 127.0.0.1
Method : GET
ServerName : localhost
ServerPort : 8080
RequestURI : /User/servlet/Ex1
ContextPath : /User
ServletPath : /servlet/Ex1
ContentType : null
Răspuns
Interfeţele:
public interface ServletResponse
public interface HttpServletResponse extends ServletResponse
definesc un obiect prin intermediul căruia servlet-ul transmite un răspuns clientului, răspuns dirijat către fluxul de ieşire ataşat acestui obiect. HttpServletResponse furnizează în plus funcţionalitate HTTP.
Dintre metode menţionăm doar următoarele:
public void setContentType(String tip)
în care tip precizează versiunea protocolului MIME (de exemplu \"text/html\") folosit la transmiterea răspunsului;
public void addHeader(String s1, String s2)
prin care se adaugă antetul (header-ul) cu numele s1 şi cu valoarea s2. Un exemplu va fi prezentat în capitolul referitor la transmiterea de fişiere.
|