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 |
|
|
Zugänglich machen der Standard CGI Variables |
Um die erfolgreiche Netzanwendung zu errichten, mußt du häufig in dem Klima viel auskennen in das sie läuft. Du kannst auf Bediener herausfinden müssen, der deine servlets oder die Besonderen des Klienten durchführt, der Anträge sendet. Und egal was Art des Klimas die Anwendung innen läuft, benötigst du zweifellos die Informationen über die Anträge, die die Anwendung anfaßt.
|
Vorteile des Verwendens von Servlets über cgi
|
- Stärkere Art überprüfung. Das heißt, mehr Hilfe vom Compiler in anziehenden Störungen. Ein cgi Programm verwendet eine Funktion, um seine Klimavariable zurückzuholen. Viele Störungen können nicht gefunden werden, bis sie Laufzeitproblem verursachen. Lassen Sie uns betrachten, wie ein cgi Programm und servlets das Tor finden, auf dem sein Bediener läuft.
Ein cgi Index geschrieben in Perl Anruf: $port = $ENV {„SERVER_PORT“}; Tor ist eine unklassifizierte Variable. Ein cgi Programm geschrieben in C Anruf: Die Wahrscheinlichkeit für versehentliche Störungen ist auch groß. Der Klimavariable Name könnte fehlbuchstabiert werden, oder die Datenart konnte nicht zusammenbringen, was die Klimavariable zurückbringt.
Ein servlet einerseits Anruf:
internes Tor = req.getServerPort ()
Dieses beseitigt eine Menge versehentlichen Störungen, weil der Compiler garantieren kann, daß es keine Fehlbuchstabierungen gibt und jede Rückholart ist, während sie sein sollte.
Verzögerte Berechnung. Wenn der Bediener ein cgi Programm ausstößt, muß der Wert für jede Klimavariable im Voraus berechnet und überschritten sein, ob das cgi Programm sie oder nicht verwendet. Ein Bediener, der die servlets ausstößt, hat die Wahl, zum von Leistung durch delaying zu verbessern diese Berechnungen und Durchführen sie auf Nachfrage, wie gebraucht. Mehr Interaktion mit Bediener. Sobald das cgi Programm Durchführung anfängt, ist es untethered von seinem Bediener. Der einzige Verbindungsweg, der für Programm vorhanden ist, ist sein Standardausgang. Ein servlet kann mit dem Bediener jedoch auch arbeiten. Wie im letzten Kapitel besprochen, funktioniert ein servlet entweder innerhalb des Bedieners (wenn möglich) oder als verbundenes Prozeß außerhalb des Bedieners (wenn notwendig). Mit dieser Konnektivität kann ein servlet ad hoc Anträge für bilden errechnete die Informationen, die nur der Bediener voraussetzen kann. Z.B. kann ein servlet seinen Bediener haben tun die willkürliche Wegübersetzung und in Erwägung die Namensabkürzungen und virtuellen die Wege des Bedieners ziehen.
|
Cgi Klima-Variablen und die entsprechenden Servlet Methoden
|
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") |
|
The following example reading all the CGI variables
|
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 |
|
|