仓酷云

标题: JAVA网站制作之jsp Servlet基本进门进修:会见CGI变量... [打印本页]

作者: 不帅    时间: 2015-1-18 11:11
标题: JAVA网站制作之jsp Servlet基本进门进修:会见CGI变量...
C#是盗用了Java的源代码,仿照开发的,原因是Java是开源的啊,盗了也白盗,还有一点,开发C#语言的团队是就是开发Java语言的团队,是微软重金挖过去的啊cgi|js|servlet|变量|会见
6.1CGI变量概述

  假如你是从传统的CGI编程转而进修JavaServlet,也许已习气了“CGI变量”这一观点。CGI变量搜集了各类有关哀求的信息:

部分来自HTTP哀求命令和哀求头,比方Content-Length头;
部分来自Socket自己,比方主机的名字和IP地点;
也有部分与服务器安拆卸置有关,比方URL到实践路径的映照。
  6.2尺度CGI变量的Servlet等价暗示

  下表假定request对象是供应给doGet和doPost办法的HttpServletRequest范例对象。CGI变量寄义从doGet或doPost会见
AUTH_TYPE假如供应了Authorization头,这里指定了详细的形式(basic大概digest)。request.getAuthType()
CONTENT_LENGTH只用于POST哀求,暗示所发送数据的字节数。严厉地讲,等价的表达体例应当是String.valueOf(request.getContentLength())(前往一个字符串)。但更罕见的是用request.getContentLength()前往寄义不异的整数。
CONTENT_TYPE假如指定的话,暗示前面所跟数据的范例。request.getContentType()
DOCUMENT_ROOT与http://host/对应的路径。getServletContext().getRealPath("/")
注重低版本Servlet标准中的等价表达体例是request.getRealPath("/")。

HTTP_XXX_YYY会见恣意HTTP头。request.getHeader("Xxx-Yyy")
PATH_INFOURL中的附加路径信息,即URL中Servlet路径以后、查询字符串之前的那部分。request.getPathInfo()
PATH_TRANSLATED映照到服务器实践路径以后的路径信息。request.getPathTranslated()
QUERY_STRING这是字符串情势的附加到URL前面的查询字符串,数据仍然是URL编码的。在Servlet中很少必要用到未经解码的数据,一样平常利用getParameter会见各个参数。request.getQueryString()
REMOTE_ADDR收回哀求的客户机的IP地点。request.getRemoteAddr()
REMOTE_HOST收回哀求的客户机的完全的域名,如java.sun.com。假如不克不及断定该域名,则前往IP地点。request.getRemoteHost()
REMOTE_USER假如供应了Authorization头,则代表其用户部分。它代表收回哀求的用户的名字。request.getRemoteUser()
REQUEST_METHOD哀求范例。一般是GET大概POST。但偶然也会呈现HEAD,PUT,DELETE,OPTIONS,大概TRACE.request.getMethod()
SCRIPT_NAMEURL中挪用Servlet的那一部分,不包括附加路径信息和查询字符串。request.getServletPath()
SERVER_NAMEWeb服务器名字。request.getServerName()
SERVER_PORT服务器监听的端口。严厉地说,等价表达应当是前往字符串的String.valueOf(request.getServerPort())。但常常利用前往整数值的request.getServerPort()。
SERVER_PROTOCOL哀求命令中的协定名字和版本(即HTTP/1.0或HTTP/1.1)。request.getProtocol()
SERVER_SOFTWAREServlet引擎的名字和版本。getServletContext().getServerInfo()

  6.3实例:读取CGI变量

  上面这个Servlet创立一个表格,显现除HTTP_XXX_YYY以外的一切CGI变量。HTTP_XXX_YYY是HTTP哀求头信息,请拜见上一节先容。


  ShowCGIVariables.java
packagehall;

importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.util.*;

publicclassShowCGIVariablesextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html");
PrintWriterout=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()}
};
Stringtitle="显现CGI变量";
out.println(ServletUtilities.headWithTitle(title)+
"<BODYBGCOLOR=\"#FDF5E6\">\n"+
"<H1ALIGN=CENTER>"+title+"</H1>\n"+
"<TABLEBORDER=1ALIGN=CENTER>\n"+
"<TRBGCOLOR=\"#FFAD00\">\n"+
"<TH>CGIVariableName<TH>Value");
for(inti=0;i<variables.length;i++){
StringvarName=variables[0];
StringvarValue=variables[1];
if(varValue==null)
varValue="<I>Notspecified</I>";
out.println("<TR><TD>"+varName+"<TD>"+varValue);
}
out.println("</TABLE></BODY></HTML>");
}

publicvoiddoPost(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
doGet(request,response);
}
}
Java的B/s开发是通常是javaweb开发,又叫J2EE开发,J2SE是手机开发。C#的C/s和B/s开发是说.net和Asp开发。。u在这里说明一点;资深一点的Java和C#程序员都明白一点
作者: 爱飞    时间: 2015-1-20 16:19
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 变相怪杰    时间: 2015-1-29 12:56
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 愤怒的大鸟    时间: 2015-2-6 01:05
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
作者: 若天明    时间: 2015-2-8 22:40
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
作者: 精灵巫婆    时间: 2015-2-9 17:19
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 老尸    时间: 2015-2-10 01:11
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 海妖    时间: 2015-2-28 10:27
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 再现理想    时间: 2015-3-9 22:19
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 只想知道    时间: 2015-3-17 02:11
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 不帅    时间: 2015-3-23 15:51
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2