1,如何获取浏览器的ip
/*** * 获取客户端ip地址(可以穿透代理) * @param request * @return */ public static String getClientIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_X_CLUSTER_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_CLIENT_IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_FORWARDED_FOR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_FORWARDED"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("HTTP_VIA"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("REMOTE_ADDR"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; } public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Real-IP"); if (null != ip && !"".equals(ip.trim()) && !"unknown".equalsIgnoreCase(ip)) { return ip; } ip = request.getHeader("X-Forwarded-For"); if (null != ip && !"".equals(ip.trim()) && !"unknown".equalsIgnoreCase(ip)) { // get first ip from proxy ip int index = ip.indexOf(','); if (index != -1) { return ip.substring(0, index); } else { return ip; } } return request.getRemoteAddr(); }
2,如何判断服务器是否是本机
/*** * 服务器是否是本机 * @param request * @return */ public static boolean isLocalIp(HttpServletRequest request){ String ip=WebServletUtil.getClientIpAddr(request); return ip.equals("127.0.0.1")||ip.equals("localhost")||ip.equals("0:0:0:0:0:0:0:1"); }
3,应用:
/*** * favicon.ico * @throws IOException */ @RequestMapping(value = "/favicon.ico") public ResponseEntity<byte[]> faviconIco(HttpServletRequest request) throws IOException { HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.IMAGE_PNG); String faviconIcoName="sms-4.ico"; headers.set(Constant2.CONTENT_DISPOSITION,WebServletUtil.getContentDisposition(true, faviconIcoName)); ///home/whuang/software/apache-tomcat-7.0.53/webapps/ROOT/ String webappPath=null; if(WebServletUtil.isLocalIp(request)){//服务器在本机(访问ip为127或localhost) webappPath=WebServletUtil.getRealPath(request); }else{ webappPath=DictionaryParam.get(Constant2.DICTIONARY_GROUP_GLOBAL_SETTING, "WEB-INF_LOC"); } return new ResponseEntity<byte[]>(FileUtils.getBytes4File( webappPath +"WEB-INF/static/img/"+faviconIcoName), headers, HttpStatus.CREATED); }
4,如何获取服务器部署的本地路径
public static String getRealPath(HttpServletRequest request) { return getRealPath(request, "\\"); } /** * 获取相对地址的绝对地址 * * @param request * @param relativePath * @return */ public static String getRealPath(HttpServletRequest request, String relativePath) { return request.getSession().getServletContext().getRealPath(relativePath); }
相关推荐
### 使用Java实现Web服务器的关键知识点 #### HTTP协议详解 HTTP(HyperText Transfer Protocol)协议是互联网上应用最为广泛的一种网络协议,它定义了客户端(通常是Web浏览器)与服务器端(Web服务器)之间的...
浏览器的作用是作为万维网(Web)服务的客户端程序,它向Web服务器发送各种请求,并能够对服务器返回的超文本信息和多媒体数据格式进行解释、显示和播放。 HTTP协议,即超文本传输协议,是浏览器和Web服务器交互的...
在本Java Web开发实践教程源码的第10章中,我们将深入探讨Web应用程序的构建、部署和测试过程。这是一份丰富的学习资源,适用于初学者和有一定经验的开发者,旨在通过实例代码来深化理解Java Web开发的核心概念和...
Java Web开发是构建基于互联网应用程序的关键技术,它涵盖了服务器端编程、数据库交互、网页动态内容生成等多个方面。本教程源码提供了丰富的实践素材,帮助学习者深入理解这一领域的核心概念和技能。 首先,我们来...
本项目专注于使用Java的JDBC(Java Database Connectivity)API来测试Oracle数据库的连接是否正常。以下将详细介绍这个过程及其相关的技术点。 首先,JDBC是Java平台的标准接口,用于与各种类型的数据库进行通信。...
Java Web 是一种基于Java技术构建Web应用程序的框架和标准,它包括了服务器端的Java API,如Servlet、JSP(JavaServer Pages)以及一系列相关的组件,用于开发动态、交互式的Web应用。本案例旨在提供一个基础的Java ...
以上只是Java Web标签使用的一小部分,实际应用中还有许多其他框架和库提供的标签,如Hibernate Validator的校验标签,以及各种JavaScript库(如jQuery)与服务器端交互的Ajax标签。熟练掌握这些标签,能显著提升...
Java Web开发是构建基于Web的应用程序的技术集合,它利用Java编程语言进行服务器端处理,以创建动态、交互式的网页应用。在这个"java web开发代码"的压缩包中,包含了一个可能的人力资源管理系统相关的实例。这里...
它是许多Java Web应用的首选服务器,因为其小巧、高效且易于配置。 10. **Jetty**: Jetty是另一个Servlet容器,以其快速、轻量和嵌入式特性受到青睐。它同样遵循Servlet和JSP规范,并且可以在项目中直接嵌入,...
在本案例中,JSTL可能被用在处理用户提交的请求,例如使用`<c:if>`和`<c:choose>`标签进行条件判断,`<c:forEach>`遍历数据,以及`<fmt:formatDate>`格式化日期等。 **DBCP和C3P0** 是两种常见的数据库连接池实现,...
JAVA WEB是一种使用Java语言进行服务器端编程的技术,它包括Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library)等组件,用于创建动态网页应用。在这个题库管理系统中,JAVA WEB负责...
Java Web 是一种基于Java技术构建Web应用程序的框架和标准,它涵盖了从服务器端编程到客户端交互的多个层面。Java Web 开发主要涉及Servlet、JSP(JavaServer Pages)、JSTL(JavaServer Pages Standard Tag Library...
本项目中,我们汇总了一些关于Java Web服务器的示例代码,旨在帮助你快速理解并掌握Java Web服务器的工作原理及其相关技术。 首先,我们要了解Java Web服务器的基本构成。一个典型的Java Web服务器会包含以下组件:...
【Java Web 图书管理系统】是一种基于Java技术的Web应用程序,旨在提供一个全面的图书管理解决方案。这个系统通常包括用户界面、后端数据库以及中间层服务,用于处理图书的添加、查询、借阅、归还等一系列操作。对于...
在IT行业中,Java Web应用程序开发是一项至关重要的技能,它涵盖了从服务器端编程到客户端交互的全方位技术栈。在这个“Java Web应用程序开发”的课程中,我们主要关注的是如何使用Java技术来构建动态、交互式的Web...
2. **Axis2Java2WSDL.java, Axis2WSDL2Java.java**:这些文件可能是示例代码,展示了如何使用Axis2将Java类转换为WSDL(Web服务描述语言)文件,以及反过来,如何从WSDL生成Java服务客户端或服务器端代码。...
Java Web开发范例源代码是学习和理解Java Web技术的重要资源,它包含了各种实际应用场景的实例,可以帮助开发者深入掌握相关技术。在这个压缩包中,我们可以找到一系列与Java Web相关的源代码,这对于初学者和有经验...
Java Web教程是一个全面的学习资源,旨在帮助开发者掌握使用Java技术构建Web应用程序的技能。这个教程可能涵盖了一系列主题,包括但不限于Servlet、JSP(JavaServer Pages)、MVC(Model-View-Controller)架构、...
Java Web技术是构建Web应用程序的一种强大工具,主要涵盖了Servlet、JSP、JSTL、JavaBean、MVC设计模式等多个核心概念。以下是对这些知识点的详细解析: 1. **Servlet**:Servlet是Java编程语言中用于扩展服务器...
【Java实现Web服务器详解】 在理解Java如何实现Web服务器之前,首先要了解Web的工作原理。Web服务器和Web浏览器之间是基于客户机/服务器计算模型交互的,它们之间通过HTTP(超文本传输协议)进行通信。HTTP协议是...