HTML Tutorials |
|
XML Tutorials |
|
Browser Scripting |
|
Server Scripting |
|
.NET (dotnet) |
|
Multimedia |
|
Web Building |
|
Java Tutorials |
|
Programming Langauges |
|
Soft Skills |
|
Database Tutorials |
|
Operating System |
|
Software Testing |
|
SAP Module |
|
Networking Programming |
|
Microsoft Office |
|
Accounting |
|
|
Accesso a delle variabili standard del cgi |
Per sviluppare l'applicazione riuscita di fotoricettore, dovete spesso conoscere m�lto circa l'ambiente in cui sta funzionando. Potete avere bisogno di di scoprire circa l'assistente che sta eseguendo i vostri servlets o gli specifics del cliente che sta trasmettendo le richieste. E qualunque cosa il genere di ambiente l'applicazione stia funzionando dentro, il pi� certamente avete bisogno delle informazioni sulle richieste che l'applicazione sta maneggiando.
|
Vantaggi di usando Servlets sopra il cgi
|
- Tipo pi� forte controllare. Cio� pi� aiuto dal compilatore negli errori catching. Un programma del cgi usa una funzione per richiamare la relativa variabile di ambiente. Molti errori non possono essere trovati fino a che non causino il problema runtime. Guardiamo come sia un programma che i servlets del cgi trovano l'orificio su cui il relativo assistente sta funzionando.
Uno scritto del cgi scritto nella chiamata del Perl: $port = $ENV {�SERVER_PORT�}; l'orificio � una variabile non archiviata. Un programma del cgi scritto nella chiamata di C: La probabilit� per gli errori accidentali � inoltre alta. Il nome di variabile di ambiente potrebbe essere sbagliato l'ortografia di o il tipo di dati non potrebbe abbinare che cosa la variabile di ambiente restituisce.
Un servlet, d'altra parte, chiamata:
int port = req.getServerPort ()
Ci� elimina gli errori accidentali molto perch� il compilatore pu� garantire che non ci sono errori d'ortografia ed ogni tipo di ritorno � mentre dovrebbe essere.
Calcolo in ritardo. Quando l'assistente lancia un programma del cgi, il valore per ogni variabile di ambiente deve essere precalcolato e passato, se il programma del cgi la usa oppure no. Un assistente che lancia i servlets ha l'opzione per migliorare le prestazioni da delaying questi calcoli ed effettuarle su richiesta come stato necessario. Pi� interazione con l'assistente. Una volta che il programma del cgi comincia l'esecuzione, � untethered dal relativo assistente. L'unico percorso di comunicazione disponibile al programma � la relativa uscita standard. Un servlet, tuttavia, pu� anche funzionare con l'assistente. Come discusso nell'ultimo capitolo, un servlet funziona all'interno dell'assistente (una volta possibile) o come trattato collegato fuori dell'assistente (se necessario). Usando questa connettivit�, un servlet pu� fare le richieste ad-hoc per ha calcolato le informazioni che soltanto l'assistente pu� fornire. Per esempio, un servlet pu� avere relativo assistente fa la traduzione arbitraria del percorso, prendente in considerazione gli pseudonimi ed i percorsi virtuali dell'assistente.
|
Variabili di ambiente del cgi ed i metodi corrispondenti di Servlet
|
CGI Environment Variable |
HTTP Servlet Method |
SERVER_NAME |
req.getServerName() |
SERVER_SOFTWARE |
getServletContext().getServerInfo() |
SERVER_PROTOCOL |
req.getProtocol() |
SERVER_PORT |
req.getServerPort() |
REQUEST_METHOD |
req.getMethod() |
PATH_INFO |
req.getPathInfo() |
PATH_TRANSLATED |
req.getPathTranslated() |
SCRIPT_NAME |
req.getServletPath() |
DOCUMENT_ROOT |
req.getRealPath("/") |
QUERY_STRING |
req.getQueryString() |
REMOTE_HOST |
req.getRemoteHost() |
REMOTE_ADDR |
req.getRemoteAddr() |
AUTH_TYPE |
req.getAuthType() |
REMOTE_USER |
req.getRemoteUser() |
CONTENT_TYPE |
req.getContentType() |
CONTENT_LENGTH |
req.getContentLength() |
HTTP_ACCEPT |
req.getHeader("Accept") |
HTTP_USER_AGENT |
req.getHeader("User-Agent") |
HTTP_REFERER |
req.getHeader("Referer") |
|
Il seguente esempio che legge tutte le variabili del cgi
|
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
/** Creates a table showing the values of all the CGI variables.
*
* Part of tutorial on servlets and JSP that appears at
* 1999 Marty Hall; may be freely used or adapted.
*/
public class ShowCGIVariables extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String[][] variables =
{
{ "AUTH_TYPE", request.getAuthType() },
{ "CONTENT_LENGTH", String.valueOf(request.getContentLength()) },
{ "CONTENT_TYPE", request.getContentType() },
{ "DOCUMENT_ROOT", getServletContext().getRealPath("/") },
{ "PATH_INFO", request.getPathInfo() },
{ "PATH_TRANSLATED", request.getPathTranslated() },
{ "QUERY_STRING", request.getQueryString() },
{ "REMOTE_ADDR", request.getRemoteAddr() },
{ "REMOTE_HOST", request.getRemoteHost() },
{ "REMOTE_USER", request.getRemoteUser() },
{ "REQUEST_METHOD", request.getMethod() },
{ "SCRIPT_NAME", request.getServletPath() },
{ "SERVER_NAME", request.getServerName() },
{ "SERVER_PORT", String.valueOf(request.getServerPort()) },
{ "SERVER_PROTOCOL", request.getProtocol() },
{ "SERVER_SOFTWARE", getServletContext().getServerInfo() }
};
String title = "Servlet Example: Showing CGI Variables";
out.println(ServletUtilities.headWithTitle(title) +
"<body bgcolor=\"#FDF5E6\">\n" +
"<h1 align="center"> + title + "</h1>\n" +
"<table boder=1 align="center"\n" +
"<tr bgcolor=\"#FFAD00\">\n" +
"<th>CGI Variable Name<h1>Value");
for(int i=0; i
{
String varName = variables[i][0];
String varValue = variables[i][1];
if (varValue == null)
varValue = "Not specified";
out.println("<tr><td>" + varName + "<td>" + varValue);
}
out.println("</table></body></html>");
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
|
|
|
|
Keywords:
cgi tutorial,servlets tutorial,php variables,perl variables,cgi scripts,java servlets,mysql variables,cgi forms
|
|
HTML Quizes |
|
XML Quizes |
|
Browser Scripting Quizes |
|
Server Scripting Quizes |
|
.NET (dotnet) Quizes |
|
Multimedia Quizes |
|
Web Building Quizes |
|
Java Quizes |
|
Programming Langauges Quizes |
|
Soft Skills Quizes |
|
Database Quizes |
|
Operating System Quizes |
|
Software Testing Quizes |
|
SAP Module Quizes |
|
Networking Programming Quizes |
|
Microsoft Office Quizes |
|
Accounting Quizes |
|
|