struts2 獲取requestjava
HttpServletRequest requet=ServletActionContext.getRequest();linux
requet.getScheme()+"://"+requet.getServerName()+":"+requet.getServerPort()web
(例如)結果爲:http://localhost:8080/服務器
request.getHeader("User-Agent"); //就是取得客戶端的系統版本
request.getRemoteAddr(); //取得客戶端的IP
request.getRemoteHost() //取得客戶端的主機名
request.getRemotePort(); //取得客戶端的端口
request.getRemoteUser(); //取得客戶端的用戶
request.getLocalAddr(); //取得服務器IP
request.getLocalPort(); //取得服務器端口app
一、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(); }