<%
String agent = request.getHeader("user-agent");
StringTokenizer st = new StringTokenizer(agent,";");
//得到用户的浏览器名
String userbrowser = st.nextToken();
//得到用户的操作系统名
String useros = st.nextToken();
//取得本机的信息也可以这样:
//操作系统信息
String sysn = System.getProperty("os.name"); //win2003竟然是win xp?
String sysv = System.getProperty("os.version");
String sysa = System.getProperty("os.arch");
out.println(userbrowser + "<br/>" + useros + "<br/>" + sysn + "<br/>" + sysv + "<br/>" +sysa + "<br/>");
%>
浏览器:
request.getheader(“user-agent”):返回客户端浏览器的版本号、类型
getheader(string name):获得http协议定义的传送文件头信息
request. getmethod():获得客户端向服务器端传送数据的方法有get、post、put等类型
request. getrequesturi():获得发出请求字符串的客户端地址
request. getservletpath():获得客户端所请求的脚本文件的文件路径
request. getservername():获得服务器的名字
request.getserverport():获得服务器的端口号
request.getremoteaddr():获得客户端的ip地址
request.getremotehost():获得客户端电脑的名字,若失败,则返回客户端电脑的ip地址
request.getprotocol():获得客户端使用协议
request.getheadernames():返回所有request header的名字,结果集是一个enumeration(枚举)类的实例
request.getheaders(string name):返回指定名字的request header的所有值,结果集是一个enumeration(枚举)类的实例
获得URL参数字符串:
- /**
- * 获取参数字符串
- *
- * @param request
- * @return
- */
- public static String getParamString(HttpServletRequest request) {
- String paramString = "";
- Enumeration enmu = request.getParameterNames();
- while (enmu.hasMoreElements()) {
- String name = (String) enmu.nextElement();
- String value = "";
- try {
- value = URLEncoder.encode(request.getParameter(name), "utf-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- paramString += name + "=" + value + "&";
- }
- if (paramString.length() > 0) {
- paramString = paramString.substring(0, paramString.length() - 1);
- return paramString;
- } else {
- return null;
- }
- }
request.getHeader("referer"):获得上一级页面地址
request.getRequestURI():获得请求页面相对路径
打印结果示例:
request.getRequestURI() /jqueryWeb/resources/request.jsp
request.getRequestURL() http://localhost:8080/jqueryWeb/resources/request.jsp
request.getContextPath()/jqueryWeb
request.getServletPath()/resources/request.jsp
<html>
<head>
<title>JSP和JSTL获取服务器参数</title>
</head>
<body>
JSP方式<br/>
<%
String SERVER_NAME = request.getServerName();
String SERVER_SOFTWARE = getServletContext().getServerInfo();
String SERVER_PROTOCOL = request.getProtocol();
Integer SERVER_PORT = request.getServerPort();
String REQUEST_METHOD = request.getMethod();
String PATH_INFO = request.getPathInfo();
String PATH_TRANSLATED = request.getPathTranslated();
String SCRIPT_NAME = request.getServletPath();
String DOCUMENT_ROOT = request.getRealPath("/");
String QUERY_STRING = request.getQueryString();
String REMOTE_HOST = request.getRemoteHost();
String REMOTE_ADDR = request.getRemoteAddr();
String AUTH_TYPE = request.getAuthType();
String REMOTE_USER = request.getRemoteUser();
String CONTENT_TYPE = request.getContentType();
Integer CONTENT_LENGTH = request.getContentLength();
String HTTP_ACCEPT = request.getHeader("Accept");
String HTTP_USER_AGENT = request.getHeader("User-Agent");
String HTTP_REFERER = request.getHeader("Referer");
HashMap infoMap = new HashMap();
infoMap.put("SERVER_NAME", SERVER_NAME);
infoMap.put("SERVER_SOFTWARE", SERVER_SOFTWARE);
infoMap.put("SERVER_PROTOCOL", SERVER_PROTOCOL);
infoMap.put("SERVER_PORT", SERVER_PORT);
infoMap.put("REQUEST_METHOD", REQUEST_METHOD);
infoMap.put("PATH_INFO", PATH_INFO);
infoMap.put("PATH_TRANSLATED", PATH_TRANSLATED);
infoMap.put("SCRIPT_NAME", SCRIPT_NAME);
infoMap.put("DOCUMENT_ROOT", DOCUMENT_ROOT);
infoMap.put("QUERY_STRING", QUERY_STRING);
infoMap.put("REMOTE_HOST", REMOTE_HOST);
infoMap.put("REMOTE_ADDR", REMOTE_ADDR);
infoMap.put("AUTH_TYPE", AUTH_TYPE);
infoMap.put("REMOTE_USER", REMOTE_USER);
infoMap.put("CONTENT_TYPE", CONTENT_TYPE);
infoMap.put("CONTENT_LENGTH", CONTENT_LENGTH);
infoMap.put("HTTP_ACCEPT", HTTP_ACCEPT);
infoMap.put("HTTP_USER_AGENT", HTTP_USER_AGENT);
infoMap.put("HTTP_REFERER", HTTP_REFERER);
Iterator it = infoMap.keySet().iterator();
%>
<%
while (it.hasNext()) {
Object o = it.next();
%>
<%=o%>
<%=infoMap.get(o)%>
<% out.println("<br>"); }%>
<br/>
JSTL方式<br/>
${pageContext.request} |取得请求对象<br>
${pageContext.session} |取得session对象<br>
${pageContext.request.queryString} |取得请求的参数字符串<br>
${pageContext.request.requestURL} |取得请求的URL,但不包括请求之参数字符串<br>
${pageContext.request.contextPath} |服务的web application的名称<br>
${pageContext.request.method} |取得HTTP的方法(GET、POST)<br>
${pageContext.request.protocol} |取得使用的协议(HTTP/1.1、HTTP/1.0)<br>
${pageContext.request.remoteUser} |取得用户名称<br>
<%-- ${pageContext.session.new} |判断session是否为新的,所谓新的session,表示刚由server产生而client尚未使用<br> --%>
${pageContext.session.id} |取得session的ID<br>
${header["User-Agent"]}|用户浏览器的版本<br/>
${header["Host"]}|IP<br/>
${pageContext.request.remoteAddr } |取得用户的IP地址<br>
${pageContext.servletContext.serverInfo}|取得主机端的服务信息<br>
${pageContext.request.serverPort}|端口信息<br>
${pageContext.request.serverName}|服务器名称<br>
${pageContext.request.remoteHost}|客户机名称<br>
</body>