struts2 获取request

HttpServletRequest requet=ServletActionContext.getRequest();

requet.getScheme()+"://"+requet.getServerName()+":"+requet.getServerPort()

(例如)结果为:http://localhost:8080/

request.getHeader("User-Agent");    //就是取得客户端的系统版本     
request.getRemoteAddr();    //取得客户端的IP     
request.getRemoteHost()     //取得客户端的主机名     
request.getRemotePort();    //取得客户端的端口     
request.getRemoteUser();    //取得客户端的用户     
request.getLocalAddr();    //取得服务器IP     
request.getLocalPort();    //取得服务器端口

1、JSP中获得当前应用的相对路径和绝对路径
  根目录所对应的绝对路径:request.getRequestURI()
  文件的绝对路径  :application.getRealPath(request.getRequestURI());
  当前web应用的绝对路径 :application.getRealPath("/");
  取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()

2 Servlet中获得当前应用的相对路径和绝对路径
  根目录所对应的绝对路径:request.getServletPath();
  文件的绝对路径 :request.getSession().getServletContext().getRealPath(request.getRequestURI())   
  当前web应用的绝对路径 :servletConfig.getServletContext().getRealPath("/");
  (ServletContext对象获得几种方式:
  javax.servlet.http.HttpSession.getServletContext()
  javax.servlet.jsp.PageContext.getServletContext()
  javax.servlet.ServletConfig.getServletContext()
  )

3.Java类中获得绝对路径
  根据java.io.File的Doc文挡,可知: 默认情况下new File("/")代表的目录为:System.getProperty("user.dir")。

 
扩展:
上面的获取IP方法,只能获取到127.0.0.1,无语
在window下使用
InetAddress.getLocalHost().getHostAddress()

这种方法在linux却只能取到127.0.0.1这个让人无奈的地址。。。这简直是让人不能忍受的啊。。。这种地址不用获取,我们谁不知道。。。 
在网上搜索了很多,发现说这个问题的并不多,所以,我把找到的一段代码分享给大家。。。当然这段代码需要jdk1.5以上版本 
Java代码 
Enumeration<NetworkInterface> netInterfaces = null;   
try {   
    netInterfaces = NetworkInterface.getNetworkInterfaces();   
    while (netInterfaces.hasMoreElements()) {   
        NetworkInterface ni = netInterfaces.nextElement();   
        System.out.println("DisplayName:" + ni.getDisplayName());   
        System.out.println("Name:" + ni.getName());   
        Enumeration<InetAddress> ips = ni.getInetAddresses();   
        while (ips.hasMoreElements()) {   
            System.out.println("IP:"  
            + ips.nextElement().getHostAddress());   
        }   
    }   
} catch (Exception e) {   
    e.printStackTrace();   
}

Enumeration<NetworkInterface> netInterfaces = null;
try {
        netInterfaces = NetworkInterface.getNetworkInterfaces();
        while (netInterfaces.hasMoreElements()) {
                NetworkInterface ni = netInterfaces.nextElement();
                System.out.println("DisplayName:" + ni.getDisplayName());
                System.out.println("Name:" + ni.getName());
                Enumeration<InetAddress> ips = ni.getInetAddresses();
                while (ips.hasMoreElements()) {
                        System.out.println("IP:"
                        + ips.nextElement().getHostAddress());
                }
        }
} catch (Exception e) {
        e.printStackTrace();
}

java中获取服务器的IP和端口的更多相关文章

  1. jfinal获取服务器的IP和端口

    String serverIp = getRequest().getServerName(); Integer serverPort = getRequest().getServerPort();

  2. Java Web 获取客户端真实IP

    Java Web 获取客户端真实IP 发生的场景:服务器端接收客户端请求的时候,一般需要进行签名验证,客户端IP限定等情况,在进行客户端IP限定的时候,需要首先获取该真实的IP.一般分为两种情况: 方 ...

  3. JAVA中获取路径

    内容来自于snannan_268 关键字: java中获取路径 JAVA中获取路径: 1.jsp中取得路径:   以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.get ...

  4. JAVA中获取当前系统时间及格式转换

    JAVA中获取当前系统时间   一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; publi ...

  5. Java中获取键盘输入值的三种方法

    Java中获取键盘输入值的三种方法     Java程序开发过程中,需要从键盘获取输入值是常有的事,但Java它偏偏就没有像c语言给我们提供的scanf(),C++给我们提供的cin()获取键盘输入值 ...

  6. java中获取日期和时间的方法总结

    1.获取当前时间,和某个时间进行比较.此时主要拿long型的时间值. 方法如下:  要使用 java.util.Date .获取当前时间的代码如下 Date date = new Date(); da ...

  7. JAVA中获取当前系统时间

    一. 获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowStrin ...

  8. java中获取路径中的空格处理(%20)问题

    在java中获取文件路径的时候,有时候会获取到空格,但是在中文编码环境下,空格会变成“%20”从而使得路径错误. 解决办法: String path = Parameter.class.getReso ...

  9. java中获取系统属性以及环境变量

    java中获取系统属性以及环境变量 System.getEnv()和System.getProperties()的差别 从概念上讲,系统属性 和环境变量 都是名称与值之间的映射.两种机制都能用来将用户 ...

随机推荐

  1. Angular入门(三) 引入boostrap4

    1.cnpm install ngx-bootstrap bootstrap --save ※可能缺少jquery  cnpm i jquery 2.  打开 angular-cli.json (项目 ...

  2. 数据库系统概述(Data Model、DBMS、DBS、RDBS、Structured Query Language)

    数据Data 描述事物的符号记录成为数据. 数据是数据库中存储的基本对象.   除了基本的数字之外.像图书的名称.价格.作者都可以称为数据. 将多种数据记录列成一张表.通过数据表管理数据. 每一行的数 ...

  3. 字符串 (string)与字节数组(byte[])之间的转换

    string str = "abc" //字符串转成编码为GB2312的byte[] byte[] pData =System.Text.Encoding.GetEncoding( ...

  4. JDK源代码学习系列05----LinkedList

                                             JDK源代码学习系列05----LinkedList 1.LinkedList简单介绍 LinkedList是基于双向 ...

  5. Java Synchronized 遇上 静态/实例方法 、静态/实例变量

    同步 1)同步方法 2)同步块 21) 实例变量 22) 类变量 锁定的内容 1)锁定类的某个特定实例 2)锁定类对象(类的所有实例) 一.同步类实例:同步方法 public class Demo { ...

  6. 003-linux安装软件的几种方法

    一.rpm包安装方式步骤 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在的 ...

  7. python 自动获取(打印)代码中的变量的名字字串

    方法一: import inspectimport re def varname(p): for line in inspect.getframeinfo(inspect.currentframe() ...

  8. HDU1712:ACboy needs your help(分组背包)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1712 解释看这里:http://www.cnblogs.com/zhangmingcheng/p/3940 ...

  9. tkprof工具详解二

      TKPROF是一个可执行文件,自带在Oracle Server软件中,无需额外的安装. 该工具文件可以用来解析ORACLE的SQL TRACE(10046) 以便生成更可读的内容.  实际上tkp ...

  10. PHP 数组教程 定义数组

    数组array是一组有序的变量,其中每个变量被叫做一个元素. 一.定义数组  可以用 array() 语言结构来新建一个数组.它接受一定数量用逗号分隔的 key => value 参数对.  a ...