`
pursue_excellence
  • 浏览: 12399 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

servlet programming中的获取信息总结

阅读更多
1、获取servlet信息
   每个注册的servlet名字都有与之相连的特定初始化(init)参数。servlet任何时候都可以使用这个初始化参数。它们在web.xml配置描叙符中并多在init中用来设置初始化和servlet的默认值。
①取得servlet初始化参数:  
servlet用getInitParameter()方法来访问它的初始化参数:
public String servletConfig.getInitParameter(String name)
类GenericServlet实现接口ServletConfig并提供对方法getInitparameter()的直接访问。这就意味着这个方     法可如此调用:
       public void init() throws ServletException {
        String greeting=getInitParameter("greeting");
}

②取得servlet初始化参数名:
servlet用getInitParameterNames()来检测所有初始化参数。
public Enumeration ServletConfig.getInitParameterNames()
类GenericServlet还可以使该方法直接为servlet所用。

③取得servlet名称:
在ServletConfig接口中也可以返回一个servlet注册名称的方法:
public String ServletConfig.getServletName();

2、服务器:
servlet可查出很多所在服务器的信息。它可得到主机名、监听端口、服务器软件等等。servlet可将这些信息发送给客户端,用它来定制基于指定服务器包的操作,或直接来限制将要运行的服务器。
①取得服务器信息:
servlet可通过ServletContext对象来取得所在服务器大部分信息。
有5个方法来获得服务器信息,2个用发送到servlet的ServletRequest对象来调用。3个由servlet所在服务器中的ServletContext对象来调用。
public String ServletRequest.getServerName()//获得服务器名
public String ServletRequest.getServerPort()//获得服务器端口
public String ServletContext.getServerInfo()//获得服务器软件信息
public Object ServletContext.getServerAttribute(String name)//获得服务器软件的信息
public Enumeration ServletContext.getAttributeNames()//属性名获取
②取得环境初始化参数
servlet的初始化参数被传送到单个servlet.当多个servlet访问同一个初始化参数值时候,这些参数应该被设置成环境初始化参数。ServletContext有2个方法 -----getInitParameter()和
getInitParameterNames()来检索环境初始化信息:
public String ServletContext.getInitParameter(String name)
public Enumeration ServletContext.getInitParameterNames()
③确定servlet版本
public int ServletContext.getMajorVersion()
public int ServletContext.getMinorVersion()

3、客户端
因为对每个请求网页需要鉴别,servlet就有能力知道客户机和实际用户信息。这些信息中可用于登记访问数据,为各个用户填写信息或者限制对用户的访问。
①取得客户机的信息:
servlet能够使用getRemoteAddr()和getRemoteHost()来检索
public String ServletRequest.getRemoteAddr()
public String ServletRequest.getRemoteHost()
②取得用户信息:
public String HttpServletRequest.getRemoteUser()
当servlet调用getRemoteUser()时,服务器已确定用户身份并调用该servlet。
③请求:
现在我们已经知道了servlet如何查找服务器和客户端。现在进一步来看最重要的内容,servlet如何得到客户端的需求。
请求参数:每个对servlet作出请求都可能带着很多请求参数。这些参数都是一些名/值对来告诉servlet一些处理请求的附加信息。
public String ServletRequest.getParameter(String name)
public String[] ServletRequest.getParameterValues(String name)
public Enumeration ServletRequest.getParameterNames()
public String ServletRequest.getQueryString()//检索请求的查询字符串队列
取得路径信息:除了参数,HTTP请求还包含为附加路径信息或者虚拟路径的内容。通常,附加路径信息用于在servlet要使用的服务器上指明文件。这个路径信息被编码存放在HTTP请求的URL中。例如:http://server:port/servlet/viewFile/index.html.
这些代码调用ViewFile servlet把/index.html作为附加路径信息传递。servlet可访问这个路径信息并作将/index.html字符串转化为真正的 index.html路径。什么是/index.html真正的路径?它是完整的文件系统路径-客户端访问这个/index.html时服务器返回的路径,这个路径可能是document_root/index.html,当然,服务器可以将这个路径改变。除了在URL中明确指定外,这个附加路径信息也可以在HTML表单中的ACTION参数中以编码形式存在:
<form method=get action="/servlet/Dictionary/dict/definitions.text">
Word to look up:<input type=text name="word"><p>
<input type=submit><p>
</form>
这个表单调用Dictionary servlet来处理提交的信息并把附加路径信息/dict/definitions.text传到Dictionary中。
servlet可用getPathInfo()方法来获取附加路径信息:
public String HttpServletRequest.getPathInfo()//获取附加路径
public String HttpServletRequest.getPathTranslated()//转换为真实路径
public String ServletContext.getRealPath(String path)
取得MiME类型:一但servlet取得了文件的路径,它经常需要知道文件的类型。可用:
public String ServletContext.getMimeType(String file)来获取类型。
String type=getServletContext().getMimeType(req.getPathTranslated())
获取请求URI:
public String HttpServletRequest.getRequestURI()
如何被请求:
public String ServletRequest.getProtocol()//返回请求的协议和版本号
public String HttpServletRequest.getMethod()//返回请求HTTP方法
请求首部:
这个就不多说了,大家都很熟悉的。可以通过方法:
public String HttpServletRequest.getHeader(String name)
public long HttpServletRequest.getDateHeader(String name)
public int HttpServletRequest.getIntHeader(String name)
public Enumeration HttpServletRequest.getHeaders(String name)
输入流:每个由servlet处理的请求都有一个自身的输入流。正如一个servlet能向它的响应对象中的PrintWriter或者OutputStream写入一样,它可以从请求对象的Reader和InputStream中读数据。从数据流中读的数据可以位任何类型和长度。输入流有2个目的:将Post请求的内容传送到Http Servlet程序中;将客户端传送的原始数据传送到非HTTP servlet中。
public Bufferedreader ServletRequest.getReader() throws IOException
public ServletInputStream ServletRequest.getInputStream() throws IOException
public int ServletInputStream.readLine(byte b[],int off,int len) throws IOException
public String ServletRequest.getContentType()
public int ServletRequest.getContentLength()
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics