在一个java接口中获取请求客户端的IP地址

在一个java接口中获取请求客户端的IP地址,第1张

你不是web项目那么request是什么了?

你可以定义一个接口,接口中有setRequest方法,和getRemoteAddr方法

然后在你的主Servlet中将Request设置进去,

再通过getRemoteAddr方法取得IP

实现类中定义一个Request属性,通过setRequest方法设置,

getRemoteAddr方法调用requestgetRemoteAddr方法。

还是没有搞明白你到底要干什么为什么没有request~web项目到处都是request啊~

答:setAttribute(Stringname,Object):设置名字为name的request的参数值

getAttribute(Stringname):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式

getContentLength():返回请求的Body的长度

getHeader(Stringname):获得>

getHeaders(Stringname):返回指定名字的requestHeader的所有值,结果是一个枚举的实例

getHeaderNames():返回所以requestHeader的名字,结果是一个枚举的实例

getInputStream():返回请求的输入流,用于获得请求中的数据

getMethod():获得客户端向服务器端传送数据的方法

getParameter(Stringname):获得客户端传送给服务器端的有name指定的参数值

getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(Stringname):获得有name指定的参数的所有值

getProtocol():获取客户端向服务器端传送数据所依据的协议名称

getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址

getRemoteAddr():获取客户端的IP地址

getRemoteHost():获取客户端的名字

getSession([Booleancreate]):返回和请求相关Session

getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径

getServerPort():获取服务器的端口号

removeAttribute(Stringname):删除请求中的一个属性

我看了一下jdk文档,上面有关ObjectInputStream的描述:

[jdk文档]

ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。

[jdk文档]

从上面可以看到是对基本数据类型序列化和反序列化,String及数组等不是基本数据类型

[jdk文档]

在 Java 中,字符串和数组都是对象,所以在序列化期间将其视为对象。读取时,需要将其强制转换为期望的类型。

readObject 方法负责使用通过对应的 writeObject 方法写入流的数据,为特定类读取和恢复对象的状态。该方法本身的状态,不管是属于其超类还是属于其子类,都没有关系。恢复状态的方法是,从个别字段的 ObjectInputStream 读取数据并将其分配给对象的适当字段。DataInput 支持读取基本数据类型。

尝试读取由对应的 writeObject 方法写入的超出自定义数据边界的对象数据将导致抛出 OptionalDataException(eof 字段值为 true)。超出已分配数据末尾的非对象读取以指示流末尾的方式反映数据结束:按位读取与字节读取或字节数读取一样,将返回 -1,基元读取将抛出 EOFException。

[jdk文档]

读取对象类似于运行新对象的构造方法。为对象分配内存并将其初始化为零 (NULL)。为不可序列化类调用无参数构造方法,然后从以最接近 javalangobject 的可序列化类开始和以对象的最特定类结束的流恢复可序列化类的字段。

从上面看,反序列化时读出的数据皆为基本数据类型,然后可能要自己重新组合成为你要的MyObject类型,如

String name = (String)oisreadObject();

int age = (int)oisreadInt();

MyObject mo = new MyObject();

mosetName(name);

mosetAge(age);

我的理解不知道对不对

以上就是关于在一个java接口中获取请求客户端的IP地址全部的内容,包括:在一个java接口中获取请求客户端的IP地址、java中Request对象的主要方法有哪些、java 将服务器上读取到的返回给客户端的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10121642.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存