MyEclipse 通过浏览器显示主机和网络信息的小程序

项目名:ServletII

Servlet类名:RequestServlet.java   和  IpUtil.java


RequestServlet.java:

package com.helloweenvsfei.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.security.Principal;
import java.util.Locale;
import com.helloweenvsfei.util.IpUtil;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RequestServlet 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("image/jpeg"))
            buffer.append("JPG 文件,");
        if (accept.contains("application/vnd.ms-excel"))
            buffer.append("EXCEL 文件,");
        if (accept.contains("application/vnd.ms-powerpoint"))
            buffer.append("PPT 文件,");
        if (accept.contains("application/msword"))
            buffer.append("Word 文件,");

        return buffer.toString().replace(", $", "");
    }

    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 getAddress(String ip) {
        return IpUtil.getHostName(ip);
    }

    private String getNavigator(String userAgent) {
        if (userAgent.indexOf("TencentTraveler") > 0)
            return "腾讯浏览器";
        if (userAgent.indexOf("Maxthon") > 0)
            return "Maxthon浏览器";
        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 2000") > 0)
            return "Windows 2000";
        if (userAgent.indexOf("Linux") > 0)
            return "Linux";
        if (userAgent.indexOf("Unix") > 0)
            return "Unix";

        return "未知";
    }

    /**
     * Constructor of the object.
     */
    public RequestServlet() {
        super();
    }

    /**
     * Destruction of the servlet.

     */
    public void destroy() {
        super.destroy(); // Just puts "destroy" string in log
        // Put your code here
    }

    /**
     * The doGet method of the servlet.

     *
     * This method is called when a form has its tag value method equals to get.
     *
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws ServletException
     *             if an error occurred
     * @throws IOException
     *             if an error occurred
     */
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");

        response.setContentType("text/html");
        String autoType = request.getAuthType();
        String localAddr = request.getLocalAddr();
        String localName = request.getLocalName();
        int localPort = request.getLocalPort();
        Locale locale = request.getLocale();
        String contextpath = request.getContextPath();
        String method = request.getMethod();
        String pathinfo = request.getPathInfo();
        String pathtranslated = request.getPathTranslated();
        String protocol = request.getProtocol();
        String querystring = request.getQueryString();
        String remoteaddr = request.getRemoteAddr();
        int port = request.getRemotePort();
        String remoteuser = request.getRemoteUser();
        String requestsessionid = request.getRequestedSessionId();
        String requestURI = request.getRequestURI();
        StringBuffer requestURL = request.getRequestURL();
        String scheme = request.getScheme();
        String servername = request.getServerName();
        int serverport = request.getServerPort();
        String servletpath = request.getServletPath();
        Principal principal = request.getUserPrincipal();
        String accept = request.getHeader("accept");
        String referer = request.getHeader("referer");
        String userAgent = request.getHeader("user-agent");

        String serverInfo = this.getServletContext().getServerInfo();

        PrintWriter out = response.getWriter();
        out
                .println("");
        out.println("");
        out.println(" RequestServlet");
        out
                .println(" ");
        out.println(" ");
        out.println("您的IP为" + remoteaddr + ",位于"
                + getAddress(remoteaddr) + ";您使用" + getOS(userAgent)
//                +"AAA"+";您使用" + getOS(userAgent)
                + "操作系统," + getNavigator(userAgent) + ".您使用"
                + getLocale(locale) + ".
");

        out.println("服务器IP为" + localAddr + ",位于"
                + getAddress(localAddr) + ",服务器使用" + serverport
//                + "AAA" + ",服务器使用" + serverport
                + "端口,您的服务器使用了" + port + "端口访问本网页。
");

        out.println("服务器软件为" + serverInfo + ".服务器名称为" + localName
                + ".
");

        out.println("您的浏览器接受" + getAccept(accept) + ".
");
        out.println("您从" + referer + "访问到该页面.
");
        out.println("使用的协议为" + protocol + ".URL协议头" + scheme
                + ",服务器名称" + servername + ",您访问的URI为"
                + requestURI + ".
");
        out.println("该Servlet路径为" + servletpath + ",该Servlet类名为"
                + this.getClass().getName() + ".
");

        out.println("本应用程序在硬盘的根目录为"
                + this.getServletContext().getRealPath("") + ",网络相对路径为"
                + contextpath + "
");
        
        out.println("
");
        out.println("

单击刷新本页面");
        out.println(" ");
        out.println(" ");
        out.flush();
        out.close();
    }

    /**
     * The doPost method of the servlet.

     *
     * This method is called when a form has its tag value method equals to
     * post.
     *
     * @param request
     *            the request send by the client to the server
     * @param response
     *            the response send by the server to the client
     * @throws ServletException
     *             if an error occurred
     * @throws IOException
     *             if an error occurred
     */
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out
                .println("");
        out.println("");
        out.println("  A Servlet");
        out.println("  ");
        out.print("    This is ");
        out.print(this.getClass());
        out.println(", using the POST method");
        out.println("  ");
        out.println("");
        out.flush();
        out.close();
    }

    /**
     * Initialization of the servlet.

     *
     * @throws ServletException
     *             if an error occurs
     */
    public void init() throws ServletException {
        // Put your code here
    }

}

IpUtil.java:

package com.helloweenvsfei.util;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class IpUtil {

    /**
     * 非法IP地址常量。
     *
     * @since 0.12
     */
    public static final String INVALID_IP = "0.0.0.0";
    /**
     * 未知主机名常量。
     *
     * @since 0.12
     */
    public static final String UNKNOWN_HOST = "";

    /**
     * 私有构造方法,防止类的实例化,因为工具类不需要实例化。
     * @return
     */
    private void IPUtil() {
    }

    /**
     * 根据主机名得到IP地址字符串。
     *
     * @param hostName
     *            要查找地址的主机名
     * @return 对应主机的IP地址,主机名未知或者非法时返回INVALID_IP。
     */
    public static String getByName(String hostName) {
        try {
            InetAddress inet = InetAddress.getByName(hostName);
            return inet.getHostAddress();
        } catch (UnknownHostException e) {
            return INVALID_IP;
        }
    }

    /**
     * 根据IP地址得到主机名。
     *
     * @param ip
     *            要查找主界面的IP地址
     * @return 对应IP的主机名,IP地址未知时返回UNKNOWN_HOST,IP地址未知也可能是网络问题造成的。
     */
    public static String getHostName(String ip) {
        try {
            InetAddress inet = InetAddress.getByName(ip);
            return inet.getHostName();
        } catch (UnknownHostException e) {
            return UNKNOWN_HOST;
        }
    }
}


Web.xml:


 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
  This is the description of my J2EE component
  This is the display name of my J2EE component
  RequestServlet
  com.helloweenvsfei.servlet.RequestServlet
  -1
 

 
  RequestServlet
  /servlet/RequestServlet
 

 
  index.jsp
 

 
  BASIC
 







你可能感兴趣的:(Java)