当前位置:首页 » 云服务器 » 服务器为什么可以用request方法

服务器为什么可以用request方法

发布时间: 2022-10-09 23:33:36

A. Request信号什么意思

代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他 Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回你所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的缓冲池,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果你的浏览器所请求的数据就在它本机的存储器上而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器。一般用户的可用带宽都较小,但是通过带宽较大的代理服务器与目标主机相连能大大提高浏览速度和效率。更重要的是它所提供的安全功能。通过代理服务器访问目标主机,可以将用户本身的IP地址隐藏起来,目标主机能看到的只是代理服务器的IP地址而已。很多网络黑客就是通过这种办法隐藏自己的真实IP,从而逃过监视。
常用代理的类型可以按所采用协议类型分为http代理、socks4代理和socks5代理。不论采用哪种代理,都需要知道代理服务器的一些基本信息:
① 代理服务器的IP地址
② 代理服务所在的端口
③ 这个代理服务是否需要用户认证?如果需要,您要向提供代理的网络管理员申请一个用户和口令。

什么是HTTP代理? 什么是socks代理?

什么是HTTP代理:www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)是就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。

什么是socks代理:相应的,采用socks协议的代理服务器就是SOCKS服务器。是一种通用的代理服务器。Socks是个电路级的底层网关,是 DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks 不要求应用程序遵循特定的操作系统平台,Socks 代理与应用层代理、 HTTP 层代理不同,Socks 代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。
如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问 Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于 您一定可以通过SOCKS访问Internet。常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容:
① SOCKS服务器的IP地址
② SOCKS服务所在的端口
③ 这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令
知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。
在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和各种游戏应用软件当中。

什么是socks4和socks5代理?

socks4和socks5都属于socks协议,只是由于所支持的具体应用不同而存在差异。socks4代理只支持TCP应用,而socks5代理则可以支持TCP和UDP两种应用。不过由于socks5代理还支持各种身份验证机制,服务器端域名解析等,而socks4代理没有,所以通常对外开放的 socks代理都是socks4代理,因此,UDP应用通常都不能被支持。也就是说,socks4能干的socks5都可以干,反过来就不行了

B. servlet中什么时候用request.getParameter

request.getParameter 方法的用途很明确的。
就是用来获得提交的数据。提交的数据一般是指
GET方式或者POST方法提交上来的数据。
例如:
<form method="GET" >
...
<input name="aaa" value="111" >
...
</form>
那么在提交时,servlet就能够通过request.getParameter("aaa")得到提交的数据。
注意不要和 request.getAttribute() 方法搞混了。这个方法不能得到提交的数据。
只能用于相同服务下的servlet与servlet之间,servlet与jsp,jsp与servlet之间传递
数据。

C. java中request是个什么东东,干什么用的

request这个对象不用事先宣告,就可以在JSP网页中使用,在转译为Servlet之后,它会转换为javax.servlet.http.HttpServletRequest型态的对象,HttpServletRequest对象是有关于客户端所发出的请求之对象,只要是有关于客户端请求的信息,都可以借由它来取得,例如请求标头、请求方法、请求参数、使用者IP等等信息。

request的主要方法:

getParameterNames():取得客户端所发出的请求参数名称.

getParameter():可以让您指定请求参数名称,以取得对应的设定值.

getServerName():请求的服务器.

getProtocol():使用协议.

getMethod():请求方法.

getServerPort():请求端口号.

getContextPath():Context路径.

getServletPath(): Servlet路径.

getRequestURI():URI路径.

getQueryString():查询字符串.

getRemoteAddr():使用者主机IP.

getRemotePort():使用者使用端口号.

简单来说就是取值用的。

D. 什么情况下页面没有参数值为什么服务端可以用request.getParameter("参数名")来接收客户端的参数值

而request.getparameter则是则是的用在servlet或者action中,它的作用是接受表单提交来的数据,比如你的jsp页面中的表单提交的数据。所以两者的区别大概如下:requestScope的用于展示页面,从request对象中取出对象或者变量来显示,而request中的对象或者变量也是程序员通过手动的方式request.setAttribute方法来放入request对象中的而request.getparameter则的应用于后台的方法中,它的参数不是程序员手动设置的,而是由表单来接受用户输入的值会随着用户的请求被放入request对象中。补充:另外${requestScope}这叫EL表达式,它和JSP页面结合的更加紧密,使用这种方式可以让JSP看起来整齐和美观而<%=request.getparameter%这种方式则是脚本方式,也就是在jsp中嵌入java的代码,jsp中过多的嵌入脚本使得页面臃肿,还有显示的html和java的逻辑代码混在一起在后期维护的时候非常困哪

E. 为什么用request.getRemoteAddr获得的全是127.0.0.1

获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或192.168.1.110,而并不是客户端的真实IP。
经过代理以后,由于在客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的 IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。当我们访问index.jsp/时,其实并不是我们浏览器真正访问到了服务器上的index.jsp文件,而是先由代理服务器去访问index.jsp ,代理服务器再将访问到的结果返回给我们的浏览器,因为是代理服务器去访问index.jsp的,所以index.jsp中通过request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。
于是可得出获得客户端真实IP地址的方法一:
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
获得客户端真实IP地址的方法二:
public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟哪个才是真正的用户端的真实IP呢?
答案是取X-Forwarded-For中第一个非unknown的有效IP字符串。如:
X-Forwarded-For:192.168.1.110, 192.168.1.120, 192.168.1.130, 192.168.1.100
用户真实IP为: 192.168.1.110

F. 在JSP中,可以通过request.getParameter方式获得客户端传递给服务器的数据

<%request.getParameter("a");%>

我不建议写到JSP中,一般不会这么写。
应该写在后台的java程序里。

G. 可以使用request对象访问任何http请求传递的信息,它有多个对象集合,以下不是re

1、Application 对象
可以使用 Application 对象使给定应用程序的所有用户共享信息。
2、Request 对象
可以使用 Request 对象访问任何用 HTTP 请求传递的信息,包括从 HTML 表格用 POST 方法或 GET 方法传递的参数、cookie 和用户认证。Request 对象使您能 够访问发送给服务器的二进制数据,如上载的文件。
3、Request对象的五个集合:
1)、QueryString:在发送一个请求是,客户机可在URL内,文件名包含信息的名/值对。此集合存储URL中提供的任何值。
2)、Form:如果客户机发送一个FROM请求,且设置method属性为post,则表单元素的值被存储在此集合中。
3)、ServerVariables:Web服务器自身存储了大量有关此请求的信息,包含在HTTP服务器变量中。这些信息可作为一个集合使用。
4)、Cookies:如果客户机正从服务器接收cookie,它发送信息到服务器,而服务器将其存放在Cookies集合中。
5)、ClientCertificate:客户机证书是一种在客户机与服务器间交换的数字证书,它验证试图与服务器联络的用户的身份。
4、Response 对象
可以使用 Response 对象控制发送给用户的信息。包括直接发送信息给浏览器、 重定向浏览器到另一个 URL 或设置 cookie 的值。
5、Server 对象
Server 对象提供对服务器上的方法和属性进行的访问。最常用的方法是创建 Ac tiveX 组件的实例 (Server.CreateObject)。其他方法用于将 URL 或 HTML 编码 成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期限。
6、Session 对象
可以使用 Session 对象存储特定的用户会话所需的信息。当用户在应用程序的页 之间跳转时,存储在 Session 对象中的变量不会清除;而用户在应用程序中访问 页时,这些变量始终存在。也可以使用 Session 方法显式地结束一个会话和设置 空闲会话的超时期限。
7、ObjectContext 对象
可以使用 ObjectContext 对象提交或撤消由 ASP 脚本初始化的事务

H. 简述在客户端/服务器端模式下, Request对象和Response对象的联系和区别

request对象代表和请求所有相关的信息。当你请求处理结束了,request对象也就销毁掉。

response表示响应给客户端的内容,比如客户端页面是否缓存、Cookie内容、客户端是否要跳转别页面等。也就是response就是服务器 响应 给客户端信息的对象。

I. Ajax的setRequestHeader有什么用参数可以写什么

在Ajax应用程序中,XmlHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器返回的响应信息和数据。
XMLHttpRequest简介
XMLHttpRequest可以提供不重新加载页面的情况下更新网页,在页面加载后在客户端向服务器请求数据,在页面加载后在服务器端接受数据,在后台向客户端发送数据。XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档形式返回内容。尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。
XMLHttpRequest和Javascript
Javascript本身并未具备向服务器发送请求的能力,要么使用window.open()方法重新打开一个页面向服务器提交请求,要么使用XMLHttpRequest对象发送请求。不同的是,前者是普通的即同步交互模式,而后者是异步交互方式。
XMLHttpRequest提供了一系列的属性和方法,来向服务器发送异步的http请求;在服务器处理用户请求的过程中,XMLHttpRequest通过属性的状态值来实时反映http请求所处的状态,并根据这些状态指示Javascript做相应的处理;当服务器顺利完成响应用户行为的动作、并将响应数据返回时,XMLHttpRequest提供的response系列方法,可以将这些响应数据以文本、XML Document对象、Ado Stream对象或者unsigned byte数组的方式组装起来,提供给Javascript处理。
XMLHttpRequest的五步使用法:
1、 建立XMLHttpRequest对象
2、 注册回调函数
3、 使用open方法社会自和服务器端交互的基本信息
4、 设置发送的数据,开始和服务器端交互
5、 在回调函数中判断交互是否结束,响应是否正确,并根据需要过去服务器端返回的数据,更新页面内容
下面我们以用户名确认来实现XMLHttpRequest的五步使用法:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
var xmlhttp;
function submit(){
//1.创建XHLHttpRequest对象
if(window.XMLHttpRequest){
//alert("IE7,IE8 ,FireFox。Mozillar、Safari,Opera");
//IE7,IE8 ,FireFox。Mozillar、Safari,Opera
xmlhttp=new XMLHttpRequest();
if(xmlhttp.overrideMimeType){
xmlhttp.overrideMimeType("text/xml");
}
}else if(window.ActiveXObject){
//IE6,IE6.5 IE5
alert("IE6,IE6.5 IE5");
var activexName= ['MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0','msxml2.xmlhttp.3.0','MSXML2.XMLHTTP.2.0',
'MSXML2.XMLHTTP.1.0'];
for(var i=0; i<activexName.length;i++){
try{
xmlhttp=new ActiveXObject(activexName[i]);
break;
}catch(e){
}
}
}
if(xmlhttp==undefined||xmlhttp==null){
alert("当前浏览器不支持穿件XMLHttpRequest对象,请更换浏览器");
return;
}
//alert(xmlhttp);
//2.注册回调方法
xmlhttp.onreadystatechange=callback;
//错误的写法callback();
//记忆一个固定用法,获取文本框中用户输入的内容
var userName=document.getElementById("UserName").value;
//POST方式交互
//3.设置和服务器端交互的相应参数
xmlhttp.open("POST","AjaxServer",true);
//POST方式交互所需要增加的代码
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//4.设置向服务器端发送的数据,启动和服务器端的交互
xmlhttp.send("name="+userName);
}
function callback(){
//5.判断和服务器端的交互是否完成,还有判断服务器端是否正确返回了数据
if(xmlhttp.readyState==4){
//表示和服务器端的交互已经完成
//服务器返回的http状态码
//200表示“成功”,404表示“未找到”。500表示“服务器内容部错误”
//alert(xmlhttp.status);
if(xmlhttp.status==200){
//表示服务器端的响应代码是200,正确的返回了数据
//纯文本数据的接受方法
var message=xmlhttp.responseText;
//XML数据对应的DOM对象的接受方法
//使用前提是,服务器端需要设置content-type为text/xml
//var domXml=xmlhttp.responseXML;
alert("bb");
//记忆想div标签填充文本内容的方法
var div=document.getElementById("message");
div.innerHTML=message;
}
}
}
</script>
</head>
<body>
<input type="text" id="UserName"/>
<input type="button" value="校验用户名" onclick="submit()"/>
<br/>
<div id="message"></div>
</body>
</html>

J. HttpServletRequest是借口怎么可以实例化呢又为什么可以调用里面的方法呢如request.getParameter()

给你写个示例吧,道理是一样的。接口不能实例化,实例化的是接口的实现类,用的方法也是接口实现类的方法,不是接口的方法。

publicclassDemo{
publicstaticvoidmain(String[]args){
Animalanimal=newDog();//接口引用指向实现类的对象
animal.howl();//调用的是实现类的方法
Animalanimal2=newCat();
animal2.howl();

Animalanimal3=newAnimal(){//匿名内部类,也是对接口Animal的实现
@Override
publicvoidhowl(){
System.out.println("这是匿名内部类");
}
};
animal3.howl();
}

}

//狗
classDogimplementsAnimal{

@Override
publicvoidhowl(){
System.out.println("汪汪");
}
}

classCatimplementsAnimal{

@Override
publicvoidhowl(){
System.out.println("喵喵");
}
}

//动物接口
interfaceAnimal{
voidhowl();//叫声
}
热点内容
爱情空间源码 发布:2025-01-12 04:51:53 浏览:890
mongodbphp安装 发布:2025-01-12 04:41:08 浏览:578
sql存储文件路径 发布:2025-01-12 04:37:31 浏览:242
我的世界服务器小灰机 发布:2025-01-12 04:21:36 浏览:931
九通车联网账号密码多少 发布:2025-01-12 04:21:32 浏览:293
怎么把服务器的ip固定了 发布:2025-01-12 03:55:42 浏览:580
php服务器开发 发布:2025-01-12 03:55:35 浏览:674
软件自制编程 发布:2025-01-12 03:54:00 浏览:536
j2ee和java的区别 发布:2025-01-12 03:42:44 浏览:583
android6小米 发布:2025-01-12 03:38:35 浏览:87