可以写一个签名的applet,
或者把这个文件上传到服务器上。

解决方案 »

  1.   

    用applet肯定要跳窗的
    用javascript,然后submit回来.
      

  2.   

    同意大萝卜,jsp属于服务器端.只能通过对applet进行数字签名来访问本地的文件系统
      

  3.   

    调用Javascript
    然后通过表单或则隐藏帧等传到服务端!
      

  4.   

    请阅读以下代码。如果你的使用要求不同,可对这些代码加以很方便的修改。这些代码可以使你获得:
    公司company, 用户name,版本version,main version,minor version 
    操作系统(未完成!),语言language,locale等。 
    建立一个新的JSP文件: 
    <%@ page language="java" import="de.hunsicker.http.util.*"%>
    <%
    Browser eins = new Browser(request, session);
    out.println(eins.getVersion());
    %>
    请将下列class文件加入classpath (你要建立同样的目录结构-- de.hunsicker.http.util,当然也可以自己调节包的名称。!): package de.hunsicker.http.util;import java.util.*;import javax.servlet.*;
    import javax.servlet.http.*;public class Browser extends HttpServlet
    {
    protected HttpServletRequest request;
    protected HttpSession session;protected String userAgent;
    protected String company; // Firmenname des Herstellers
    protected String name; // Bezeichnung des Browsers
    protected String version; // Version
    protected String mainVersion; // Hauptversion
    protected String minorVersion; // Unterversion
    protected String os; // Betriebssystem
    protected String language = "de"; // Sprachcode Standard
    protected Locale locale; // Locale-Objekt mit den aktuellen
    // Spracheinstellungenprivate Hashtable supportedLanguages; // Untersttzte Sprachenpublic Browser(HttpServletRequest request, HttpSession session)
    {
    this.initialize();
    this.request = request;
    this.session = session;this.setUserAgent(this.request.getHeader("User-Agent"));
    this.setCompany();
    this.setName();
    this.setVersion();
    this.setMainVersion();
    this.setMinorVersion();
    this.setOs();
    this.setLanguage();
    this.setLocale();
    }public void initialize()
    {
    this.supportedLanguages = new Hashtable(2);this.supportedLanguages.put("en", "");
    this.supportedLanguages.put("de", "");
    }public void setUserAgent(String httpUserAgent)
    {
    this.userAgent = httpUserAgent.toLowerCase();
    }private void setCompany()
    {
    if (this.userAgent.indexOf("msie") > -1)
    {
    this.company = "Microsoft";
    }
    else if (this.userAgent.indexOf("opera") > -1)
    {
    this.company = "Opera Software";
    }
    else if (this.userAgent.indexOf("mozilla") > -1)
    {
    this.company = "Netscape Communications";
    }
    else
    {
    this.company = "unknown";
    }
    }/**
    * Liefert den Firmennamen des Herstellers des verwendeten Browsers.
    */
    public String getCompany()
    {
    return this.company;
    }private void setName()
    {
    if (this.company == "Microsoft")
    {
    this.name = "Microsoft Internet Explorer";
    }
    else if (this.company == "Netscape Communications")
    {
    this.name = "Netscape Navigator";
    }
    else if (this.company == "Operasoftware")
    {
    this.name = "Operasoftware Opera";
    }
    else
    {
    this.name = "unknown";
    }
    }/**
    * Liefert den Namen des verwendeten Browsers.
    */
    public String getName()
    {
    return this.name;
    }private void setVersion()
    {
    int tmpPos;
    String tmpString;if (this.company == "Microsoft")
    {
    String str = this.userAgent.substring(this.userAgent.indexOf("msie") + 5);
    this.version = str.substring(0, str.indexOf(";"));
    }
    else
    {
    tmpString = (this.userAgent.substring(tmpPos = (this.userAgent.indexOf("/")) + 1, tmpPos + this.userAgent.indexOf(" "))).trim();
    this.version = tmpString.substring(0, tmpString.indexOf(" "));
    }
    }/**
    * Liefert die Versionsnummer des verwendeten Browsers.
    */
    public String getVersion()
    {
    return this.version;
    }private void setMainVersion()
    {
    this.mainVersion = this.version.substring(0, this.version.indexOf("."));
    }/**
    * Liefert die Hauptversionsnummer des verwendeten Browsers.
    */
    public String getMainVersion()
    {
    return this.mainVersion;
    }private void setMinorVersion()
    {
    this.minorVersion = this.version.substring(this.version.indexOf(".") + 1).trim();
    }/**
    * Liefert die Unterversionsnummer des verwendeten Browsers.
    */
    public String getMinorVersion()
    {
    return this.minorVersion;
    }private void setOs()
    {
    if (this.userAgent.indexOf("win") > -1)
    {
    if (this.userAgent.indexOf("windows 95") > -1 || this.userAgent.indexOf("win95") > -1)
    {
    this.os = "Windows 95";
    }
    if (this.userAgent.indexOf("windows 98") > -1 || this.userAgent.indexOf("win98") > -1)
    {
    this.os = "Windows 98";
    }
    if (this.userAgent.indexOf("windows nt") > -1 || this.userAgent.indexOf("winnt") > -1)
    {
    this.os = "Windows NT";
    }
    if (this.userAgent.indexOf("win16") > -1 || this.userAgent.indexOf("windows 3.") > -1)
    {
    this.os = "Windows 3.x";
    }
    }
    }/**
    * Liefert den Namen des Betriebssystems.
    */
    public String getOs()
    {
    return this.os;
    }private void setLanguage()
    {
    String prefLanguage = this.request.getHeader("Accept-Language");if (prefLanguage != null)
    {
    String language = null;
    StringTokenizer st = new StringTokenizer(prefLanguage, ",");int elements = st.countTokens();for (int idx = 0; idx elements; idx++)
    {
    if (this.supportedLanguages.containsKey((language = st.nextToken())))
    {
    this.language = this.parseLocale(language);
    }
    }
    }
    }/*
    * Hilfsfunktion fr setLanguage().
    */
    private String parseLocale(String language)
    {
    StringTokenizer st = new StringTokenizer(language, "-");if (st.countTokens() == 2)
    {
    return st.nextToken();
    }
    else
    {
    return language;
    }
    }/**
    * Liefert das L?nderkürzel der vom Benutzer
    * bevorzugten Sprache.
    */
    public String getLanguage()
    {
    return this.language;
    }private void setLocale()
    {
    this.locale = new Locale(this.language, "");
    }/**
    * Liefert ein Locale-Objekt mit der Sprach-Prferenz des verwendeten Browsers
    */
    public Locale getLocale()
    {
    return this.locale;
    }
    }