实际使用中,我们发现在JSP中的有时用到 "相对路径",但有时可能会出现问题。多次转发之后的相对路径会发生改变,因为它是相对于 "URL请求地址" 寻找的相对路径。
鉴于上面的情况,总结一下几种方法解决。
1.直接使用绝对路径
<%
//项目上下文路径
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
//放入pageContext中
pageContext.setAttribute("basePath",basePath);
%>
使用示例:<html><a href="${pageScope.basePath}jsp/index.jsp"></a></html>
2.c标签设置动态参数(推荐)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="basePath"
value="${pageContext.request.scheme}://${pageContext.request.serverName}:
${pageContext.request.serverPort}${pageContext.request.contextPath}" />
使用示例:<html><a href="${basePath}/jsp/index.jsp"></a></html>
3.js中获取项目上下文路径
function getContextPath() {
var contextPath = document.location.pathname;
var index = contextPath.substr(1).indexOf("/");
contextPath = contextPath.substr(0, index + 1);
delete index;
return contextPath;
}
相关推荐
使用`request.getContextPath()`获取当前项目的上下文路径,以确保在不同环境下都能正确跳转。 3. **资源文件加载**: 在HTML中加载CSS文件时可以使用相对路径或者上下文路径: ```html () %>/css/style.css"> ...
- `request.getContextPath()`:返回当前Servlet上下文的路径,即应用的根目录。这对于构建动态链接非常有用,确保链接不会因为应用部署位置的变化而失效。 - `("/") %>`:返回服务器上对应于Web应用的物理路径。...
结合`getContextPath()`获取应用上下文路径,可以构建出完整的站点地址。 5. **强制页面刷新,防止被服务器缓存**: 为了确保浏览器不使用缓存的版本,可以在响应头中设置适当的指令。例如,`response.setHeader(...
除了使用`<c:url>`标签外,还可以利用Servlet API中的`HttpServletRequest.getContextPath()`方法获取当前应用的上下文路径,然后进行拼接。 **示例代码**: ```jsp String contextPath = request.getContextPath...
在Java开发中,特别是在基于Spring Boot的项目中,自定义上下文对象可以帮助开发者更方便地访问和管理应用中的各种资源。Jeesite框架是基于Spring MVC的一个企业级快速开发平台,它提供了丰富的功能模块和灵活的扩展...
- **request.getContextPath()、request.getScheme()、request.getServerName()、request.getServerPort()**:这些方法用于获取服务器的相关信息,如上下文路径、协议类型、服务器名称及端口号等,以便后续构建资源...
这里的`request.getContextPath()`方法返回Web应用的上下文路径,这样确保了即使Web应用被部署在服务器的其他位置,所有的相对链接仍然能够正确解析。 对于静态资源,如CSS、JavaScript文件和图片,也应使用绝对...
开发者可能通过配置Tomcat的server.xml文件来设置聊天室的应用上下文路径。 聊天室的自动刷新功能通常通过AJAX(Asynchronous JavaScript and XML)实现,这是一种在不刷新整个页面的情况下与服务器交换数据并更新...
1. **EL(Expression Language)**:EL是一种简洁的表达式语言,用于从页面上下文中获取数据,简化JSP中的表达式书写。 2. **JSTL(JavaServer Pages Standard Tag Library)**:JSTL是一组标准标签库,提供了许多...
- 将打包好的JSP学生选课系统部署到Web服务器(如Tomcat、Jetty等),配置服务器环境变量和应用上下文路径。 - 日志记录:使用日志框架(如Log4j)记录系统运行状态,便于问题排查和性能分析。 通过这个JSP学生...
在这个例子中,它用于获取当前 Web 应用程序的上下文路径。 4. **`request.getContextPath()`**:这是一个来自 `javax.servlet.http.HttpServletRequest` 接口的方法,用于返回当前请求的上下文路径。这个路径通常...
这段代码获取了当前应用的上下文路径(`getContextPath()`),然后结合协议(`getScheme()`)、服务器名(`getServerName()`)和端口号(`getServerPort()`)生成一个完整的基础路径。这样,你可以在JSP页面中安全地...
JSP通过内置对象如`request`、`response`、`session`和`application`来处理HTTP请求和响应,同时利用`pageContext`获取上下文信息。 数据库应用部分,项目使用了MySQL作为数据存储。MySQL是一个高效、可靠的开源...
8. **PageContext**:页面上下文对象,提供页面级别的功能。 9. **Exception**:例外对象,用于获取异常信息。 ##### Request对象 - **常用方法**: - `getParameter(String strTextName)`: 获取表单提交的信息。 ...
- **application**:全局范围的应用上下文。 - **out**:用于向客户端输出内容。 - **pageContext**:提供对JSP页面所有对象的访问。 - **page**、**config**、**exception**:分别代表当前页面对象、配置信息和...
- **EL(Expression Language)**:简化了JSP中的表达式,提供了更简洁的方式来访问和操作页面上下文中的对象。 - **JSTL(JavaServer Pages Standard Tag Library)**:一套标准的标签库,如Core、XML、JDBC等,...
开发者需将项目打包成WAR文件,部署到服务器上,配置合适的虚拟主机和应用上下文路径。 综上所述,"jsp实例开发"——网上电影票预定系统是一个综合性的Web开发实践,涵盖了JSP、SQL、数据库管理、前端技术、服务器...
如果`header.jsp`包含用户相关的数据,那么每次请求时,`header.jsp`都会根据当前用户的上下文生成不同的内容。 - **静态包含**:通过设置`page`属性的值为`false`,可以实现静态包含,即在编译时将被包含页面的...
配置服务器的虚拟主机、上下文路径、数据源等都是部署过程中的关键步骤。 8. **性能优化**: 为了提高网站性能,可能需要缓存常用数据,使用CDN(内容分发网络)加速静态资源的加载,或者使用负载均衡技术分散...
6. **Action上下文路径**:在Struts2中,ActionContext包含了当前请求的路径信息。开发者可能需要在Action中获取请求URL、应用根路径等,以构建动态的路径。不正确的路径构造可能导致资源找不到。 7. **URL重写**:...