`
流浪鱼
  • 浏览: 1698918 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

获取服务器的地址

    博客分类:
  • java
 
阅读更多

 

 

import java.io.File;
import java.net.URL;

import javax.servlet.ServletException;

import org.apache.struts2.ServletActionContext;

/**
 * 	程序中的很多地方需要用到request.getRealPath()或者getServletContext.getRealPath()。这个方法受到war 和non-war的影响,以及不同app server实现的影响,返回的结果往往不一样,在weblogic中会返回null。  
	一般的应用都会有一个或几个配置文件放在web-inf下面,getRealPaht返回null是读配置文件有很大困难。
 * @author 流浪鱼
 *
 */
public class AbsolutePathUtils {

    /** 
     * 通过上下文来取工程路径 
     *  
     * @return 
     * @throws Exception 
     */  
    private String getAbsolutePathByContext() throws Exception {  
        String webPath = ServletActionContext.getServletContext().getRealPath("/");  
      
        webPath = webPath.replaceAll("[\\\\\\/]WEB-INF[\\\\\\/]classes[\\\\\\/]?", "/");  
        webPath = webPath.replaceAll("[\\\\\\/]+", "/");  
        webPath = webPath.replaceAll("%20", " ");  
      
        if (webPath.matches("^[a-zA-Z]:.*?$")) {  
      
        } else {  
            webPath = "/" + webPath;  
        }  
      
        webPath += "/";  
        webPath = webPath.replaceAll("[\\\\\\/]+", "/");  
        return webPath;  
      
    }  
      
    /** 
     * 通过类路径来取工程路径 
     *  
     * @return 
     * @throws Exception 
     */  
    private String getAbsolutePathByClass() throws Exception {  
        String webPath = this.getClass().getResource("/").getPath().replaceAll("^\\/", "");  
        webPath = webPath.replaceAll("[\\\\\\/]WEB-INF[\\\\\\/]classes[\\\\\\/]?", "/");  
        webPath = webPath.replaceAll("[\\\\\\/]+", "/");  
        webPath = webPath.replaceAll("%20", " ");  
      
        if (webPath.matches("^[a-zA-Z]:.*?$")) {  
      
        } else {  
            webPath = "/" + webPath;  
        }  
      
        webPath += "/";  
        webPath = webPath.replaceAll("[\\\\\\/]+", "/");  
      
        return webPath;  
    }  
    private String getAbsolutePathByResource() throws Exception {  
        URL url = ServletActionContext.getServletContext().getResource("/");  
        String path = new File(url.toURI()).getAbsolutePath();  
              if (!path.endsWith("\\") && !path.endsWith("/")) {  
            path += File.separator;  
        }  
        return path;  
    }  
      
    public String getAbsolutePath() throws ServletException {  
        String webPath = null;  
        try {  
            webPath = getAbsolutePathByContext();  
        } catch (Exception e) {  
        }  
      
        // 在weblogic 11g 上可能无法从上下文取到工程物理路径,所以改为下面的  
        if (webPath == null) {  
            try {  
                webPath = getAbsolutePathByClass();  
            } catch (Exception e) {  
            }  
        }  
      
        if (webPath == null) {  
            try {  
                webPath = getAbsolutePathByResource();  
            } catch (Exception e) {  
            }  
        }  
      
        System.out.println(webPath);  
        return webPath;  
    }  
}

 使用如下:

String photoUrl = "images"+File.separator+"small.jpg";
							String absolutePath = new AbsolutePathUtils().getAbsolutePath();
							System.out.println("--------------"+absolutePath);
							File file = new File(absolutePath+photoUrl);//Struts2Utils.getSession().getServletContext().getRealPath(File.separator)
							FileInputStream fis = new FileInputStream(file);
							int i = 0;
							while ((i = fis.read(b)) != -1) {
								os.write(b, 0, i);
							}
							os.close();
							fis.close();

 

List<CityZyGrzp> list = this.find(sb.toString(), new HashMap<String, String>());
		if(list.size()==1){
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			CityZyGrzp result = (CityZyGrzp) (list.get(0));
			try {
				if(result.getZp()!=null) {
					IOUtils.copy(result.getZp().getBinaryStream(), baos);
					result.setZpStream(baos.toByteArray());
				}
			} catch (IOException e) {
				e.printStackTrace();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				if(baos!=null){
					try {
						baos.close();
					} catch (IOException e) {
						e.printStackTrace();
					}
				}
			}
			return result;
		}else{
			return null;
		}

 

 

 

 

分享到:
评论

相关推荐

    动态IP环境下客户端自动获取服务器地址新方法的研究.doc

    动态IP环境下客户端自动获取服务器地址新方法的研究 本研究旨在解决动态IP环境下客户端自动获取服务器地址的难题。随着家庭网络环境的普及,许多小型商业用户需要将分布于不同街道的商店、超市通过软件统一管理起来...

    动态IP环境下客户端自动获取服务器地址新方法的研究报告.doc

    【标题】: 动态IP环境下客户端自动获取服务器地址新方法的研究报告 【描述】: 本研究报告探讨了在动态IP环境下,客户端如何自动获取并配置服务器地址,以实现高效稳定的连接。 【标签】: 文档 【正文】: 一、...

    Dr.COM客户端破解[自动获取服务器地址版]

    Dr.COM客户端破解[自动获取服务器地址版],破解dr.com

    java编程实现获取服务器IP地址及MAC地址的方法

    在Java编程中,获取服务器的IP地址和MAC地址是常见的需求,特别是在网络通信和系统管理中。本篇文章将详细介绍如何使用Java实现这一功能,包括针对单网卡和多网卡环境的情况。 首先,获取服务器的IP地址通常涉及到`...

    JAVA+Struts2获取服务器地址的方法

    在Java和Struts2框架中,获取服务器地址是常见的需求,尤其在处理URL重写、页面跳转或者日志记录时。以下详细说明了如何在Struts2中获取服务器地址。 首先,Struts2框架是基于Java Servlet API的,因此我们可以直接...

    nod服务器 地址 快速升级

    请注意,为了保证软件的安全性,建议从官方网站或其他可信渠道获取服务器地址。 2. **设置NOD32软件**: - 打开NOD32软件,进入设置界面。 - 寻找“更新”或“升级”相关的选项,并选择自定义服务器地址。 - 将...

    c#中获取服务器IP

    在C#中,可以通过多种方式获取服务器或客户端的IP地址,其中一种常用的方法是利用ASP.NET框架中的`Request`对象。 #### 1. 获取远程客户端IP地址 ```csharp string remoteIP = Request.ServerVariables["REMOTE_...

    java获取linux服务器上的IP操作

    在本文中,我们将详细介绍Java获取Linux服务器上的IP操作,包括Linux服务器上的网络接口、回环接口、获取IP地址的方法等。 Linux服务器上的网络接口 在Linux服务器上,网络接口是用来发送和接受数据包的基本设备...

    java获取服务器基本信息的方法

    在Java中获取服务器的基本信息是开发人员经常遇到的需求,这些信息包括但不限于CPU使用情况、内存利用率、磁盘空间以及网络状态等。以下是一些使用Java获取服务器基本信息的关键知识点: 1. **第三方库Sigar**: ...

    获取淘宝服务器时间

    在IT行业中,获取服务器时间是一项基础但至关重要的任务,尤其对于参与网络抢购或秒杀活动的用户来说,准确同步服务器时间能确保操作的及时性。"获取淘宝服务器时间"这个程序就是为了帮助用户实现这一目的。下面将...

    DELPHI获取服务器上的时间

    // 设置服务器地址 HTTP.Host := 'http://example.com'; // 发送GET请求并获取响应头 ResponseHeader := HTTP.Get('')['Date']; // 解析HTTP Date格式到TDateTime ServerTimeStr := ResponseHeader.Values...

    最好的获取MAC地址的方法

    2. **使用gethostbyaddr函数**:虽然这不是直接获取MAC地址的方法,但可以通过获取主机名然后查询DNS反向解析来间接得到。然而,这种方法并不总是可靠的,因为不是所有网络环境都支持反向DNS解析。 3. **利用PHP...

    获取服务器mac或本机mac

    获取服务器或本地计算机的MAC地址是网络管理、故障排查或安全监控中常见的需求。以下是一些关于如何获取MAC地址的方法、工具和技术的详细解释: ### 通过命令行获取MAC地址 #### Windows系统 1. **cmd命令**:在...

    获取本服务器的IP地址

    获取本服务器的IP地址获取本服务器的IP地址获取本服务器的IP地址获取本服务器的IP地址

    java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)

    在Java编程中,获取服务器硬件信息是常见的需求,特别是在系统监控、性能分析或者资源管理的场景下。Siger(可能是“System Information Gatherer”的缩写)是一个可能的库,用于帮助开发者轻松地获取包括CPU、内存...

    获取ftp服务器文件的大小

    1. **构造URL路径**:首先通过`host`与`remoteFile`拼接出完整的FTP服务器地址。 2. **创建FTP请求对象**:利用`System.Net.FtpWebRequest.Create`方法创建一个FTP请求对象,并将其转换为`FtpWebRequest`类型。 3. *...

    网络编程-获取服务器端时间

    在本文中,我们将深入探讨网络编程中的一个基本概念——如何获取服务器端的时间。这个过程通常涉及到客户端和服务器端之间的通信,使用TCP/IP协议栈来交换数据。我们将通过一个时间客户服务器程序的示例来理解这一...

    获取windows or unix系统下服务器MAC地址及服务器IP地址

    在IT领域,获取服务器的MAC(Media Access Control)地址和IP(Internet Protocol)地址是常见的系统管理任务。MAC地址是网络设备的物理地址,而IP地址则是网络通信中的逻辑地址。在Windows和Unix(包括Linux)系统...

    java ipmi,vxipmi 通过java获取服务器信息,温度、风扇、内存等

    在Java IPMI和VxIPMI中,你可以通过以下步骤获取服务器信息: 1. **建立连接**:首先,你需要通过Java程序建立到目标服务器的IPMI连接。这通常涉及设置服务器的IP地址、端口、用户名和密码。VxIPMI库可能提供了一种...

    VC 局域网聊天(自动获取服务器IP地址)

    《VC 局域网聊天应用:自动获取服务器IP地址详解》 在计算机网络技术中,局域网(LAN)通信是实现设备间快速、高效交流的重要方式。VC++(Visual C++)作为Microsoft开发的一款集成开发环境,常用于构建Windows平台...

Global site tag (gtag.js) - Google Analytics