版权声明:本文为博主原创文章,转载请附上博文链接! https://blog.csdn.net/f2764052703/article/details/90027869
使用从客户端传过来的HttpServletRequest request
获得客户端与服务器的相关信息。
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.security.Principal;
import java.util.Locale;
public class haunJingServlet extends HttpServlet {
// 返回客户端浏览器接受的文件类型
private String getAccept(String accept){
StringBuffer buffer = new StringBuffer();
if(accept.contains("image/gif")){
buffer.append("Gif文件,");
}
if(accept.contains("image/x-xbitmap")){
buffer.append("BMP文件,");
}
if(accept.contains("iamge/jpeg")){
buffer.append("JPG文件,");
}
if(accept.contains("application/vnd.ms-excle")){
buffer.append("Excle文件,");
}
if(accept.contains("application/vnd.ms-powerpoint")){
buffer.append("PPT文件,");
}
if(accept.contains("application/msword")){
buffer.append("Word文件,");
}
return buffer.toString().replaceAll(",$","");
}
// 返回客户端语言环境
private String getLocale(Locale locale){
if(Locale.SIMPLIFIED_CHINESE.equals(locale)){
return "简体中文";
}
if(Locale.TRADITIONAL_CHINESE.equals(locale)){
return "繁体中文";
}
if(Locale.ENGLISH.equals(locale)){
return "英文";
}
if(Locale.JAPANESE.equals(locale)){
return "日文";
}
return "位置语言环境";
}
// 获得客户端浏览器信息
private String getNavigator(String userAgent){
if(userAgent.indexOf("TencentTraveler")>0){
return "腾讯浏览器";
}
if(userAgent.indexOf("Maxthon")>0){
return "Mathon浏览器";
}
if(userAgent.indexOf("MyIE2")>0){
return "MyIE2浏览器";
}
if(userAgent.indexOf("Firefox")>0){
return "Firefox浏览器";
}
if(userAgent.indexOf("MSIE")>0){
return "IE浏览器";
}
return "未知浏览器信息";
}
// 获得客户端操作系统信息
private String getOS(String userAgent){
if(userAgent.indexOf("Windows NT 5.1") > 0 ){
return "Windows xp";
}
if(userAgent.indexOf("Windows 98") > 0){
return "Windows 98";
}
if(userAgent.indexOf("Windows 5.0") > 0){
return "Windows 2000";
}
if(userAgent.indexOf("Linux") > 0){
return "Linux";
}
if(userAgent.indexOf("Unix") > 0 ){
return "Unix";
}
return "未知操作系统";
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置请求和响应的编码方式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
String authType = request.getAuthType();
// 获取本地IP
String localAddr = request.getLocalAddr();
// 获取本地名称,即服务器名称
String localName = request.getLocalName();
// 获取本地端口号
int localPort = request.getLocalPort();
// 获取用户的语言环境
Locale locale = request.getLocale();
// 获取context路径
String contextPath = request.getContextPath();
// 获取请求方法,即为GET或者POST
String method = request.getMethod();
String pathInfo = request.getPathInfo();
String pathTranslated = request.getPathTranslated();
// 协议,这里是HTTP协议
String protocol = request.getProtocol();
// 查询字符串,即?后面的字符串
String queryString = request.getQueryString();
// 远程IP,即客户端IP
String remoteAddr = request.getRemoteAddr();
// 远程端口,即客户端端口
int port = request.getRemotePort();
// 远程用户
String remoteUser = request.getRemoteUser();
// 客户端Session的ID
String requestedSessionId = request.getRequestedSessionId();
// 用户请求的URL
String requestURL = request.getRequestURI();
// 协议头,这里为HTTP
String scheme = request.getScheme();
// 服务器名称
String serverName = request.getServerName();
// 服务器端口
int serverPort = request.getServerPort();
// servlet路径
String servletPath = request.getServletPath();
// 浏览器支持的格式
Principal userPrincipal = request.getUserPrincipal();
// 从哪个页面单击链接到了本页
String accept = request.getHeader("accept");
// userAgent信息,包括操作系统类型及版本号、浏览器类型及版本号
String referer = request.getHeader("regerer");
String userAgent = request.getHeader("user-agent");
String serverInfo = this.getServletContext().getServerInfo();
PrintWriter out = response.getWriter();
out.println("您的IP为:"+remoteAddr+";您使用"+getOS(userAgent)+
"操作系统"+getNavigator(userAgent)+"。您使用:"+getLocale(locale)+"</br>");
out.println("服务器IP为:"+localAddr+";服务器使用"+serverPort+"端口,您的浏览器使用了"+port+"端口访问本网页"+
"服务器软件为:"+serverInfo+"。服务器名称为:"+localName+"</br>");
out.println("您的浏览器接受:"+getAccept(accept)+"。</br>");
out.println("您从"+referer+"访问到该页面");
out.println("您使用的协议是:"+protocol+"URL协议头:"+scheme+"服务器名称"+serverName+"您访问的URL为:"+requestURL);
out.println("该servlet的路径为:"+servletPath+"该servlet类名为:"+this.getClass().getName()+"</br>");
out.println("本应用程序在硬盘中的路径为:"+this.getServletContext()+"网络相对路径为:"+ contextPath+"</br>");
out.flush();
out.close();
}
}