servlet
每个注册的servlet名字都有与之相连的特定初始化(init)参数。servlet任何时候都可以使用这个参数。
相关方法
取得servlet初始化参数
servlet用getInitParameter()方法来访问它的初始化参数:
public String ServletConfig.getInitParameter(String name)
取得servlet初始化参数名
public Enumeration ServletConfig.getInitParameterNames()
取得servlet名称
public String ServletConfig.getServletName()
服务器
servlet可以取得很多所在的服务器的信息,包括主机名、监听端口、服务器软件等。
取得服务器信息
有五种方法可以取到服务器信息。两种是用发送到servlet的ServletRequest对象调用,三种是由servlet所在的服务器中的ServletContext对象调用。
public String servletRequest.getServerName();
public int servletRequest.getServerPort();
public String servletContext.getServerInfo();
public Object servletContext.getAttribute(String name);
public Enumeration servletContext.getAttributeNames();
将servlet锁定在服务器上
可以很好地使用这些服务器信息,比如,写了一个servlet,然后想限制未经授权的拷贝,需要一个软件许可证来使它锁定在客户的服务器上。
取得环境初始化参数
public String ServletContext.getInitParameter(String name);
public Enumeration ServletContext.getInitParameterNames();
客户端
因为对于每个请求需要鉴别,servlet有能力知道客户机和实际用户信息。
取得客户机的信息
public String ServletRequest.getRemoteAddr();
public String ServletRequest.getRemoteHost();
取得客户信息
public String HttpServletRequest.getRemoteUser();
public String HttpServletRequest.getAuthType()
请求
接下来看servlet如何得知客户端的需求
请求参数
public String ServletRequest.getParameter(String name)
public String[] ServletRequest.getParameterValues(String name)
public Enumeration ServletRequest.getParameterNames()
public String ServletRequest.getQueryString()
两种方法都是返回name对应的请求参数的值。
注意:如果参数信息以POST形式返回,如果数据已经被getReader()或者getInputStream()方法读过了,则这些信息将不能再被读入
访问首部值
public String HttpServletRequest.getHeader(String name)
public long HttpServletRequest.getDateHeader(String name)
public int HttpServletRequest.getIntHeader(String name)
public Enumeration HttpServletRequest.getHeaderNames()
附加属性
public Object ServletRequest.getAttribute(String name)
public Enumeration ServletRequest.getAttributeNames()