Servlet -- 跳转到页面后的绝对路径与相对路径的问题

我们在使用servlet或其他框架,从后台跳转到视图层的时候,常会遇到这种情况,CSS和JS文件失效了,但是如果通过网址直接访问JSP是没问题的。

这就是由于绝对路径和相对路径导致的。

绝对路径,就是我们通过一个完整的地址去访问,比如http:localhost:8080/program……

相对路径,比如/program/jsp/a.jsp,这就是想相对路径。

这里我们来看servlet的两种跳转forward和redirect机制,http://blog.csdn.net/gaopeng0071/article/details/9838041



下面引用:http://blog.csdn.net/wym19830218/article/details/5503533/

JSP中用相对路径引用JS,CSS文件的三种情况

第一种情况 最常见的情况

一个tomcat上都跑多个工程, 用工程名来区分

因为我的的URL是 :http://localhost/工程名 /home/index.jsp

多了一个工程名,所以要加 <%=request.getContextPath() %>

如:

写<%=request.getContextPath() %>太麻烦,可以在每一个jsp文件顶部加入以下内容后,

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://" +request.getServerName()+":" +request.getServerPort()+path+"/" ;
%>
<base href="<%=basePath%>" > 

第二, 直接访问jsp文件

真实项目中, 一个tomcat上要是也跑了多个工程, 并用IP来区分

url 是这样的: http://localhost/home/index.jsp 注意这里,是直接访问JSP文件(jsp文件不在web-inf下,可以直接访问),不是servlet也不是struts 。

test2.js 与index.jsp 放在同一文件夹下,下面用相对路径来引入JS文件 是OK 的:

index.jsp可以找到test2.js文件

第三种情况: servlet转发到jsp(jsp在web-inf下,必须用servlet或action访问)

在第二情况的基础上,一个tomcat上要是也跑了多个工程, 并用IP来区分。

我们访问的是servlet 或是struts的action , 再转发到 index.jsp

url 是: http://localhost/*.do

url 是: http://localhost/index.action

这里不是访问JSP文件了

下面是OK 的.

时间: 2024-10-03 04:15:08

Servlet -- 跳转到页面后的绝对路径与相对路径的问题的相关文章

如何跳转指定页面后再次跳转到另一页面或原来的页面

这里可以采用redirect以get形式向指定页面发出get请求,指定页面完成后会再次跳转到redirect后边指定的页面 格式:需要请求的URL?redirect=请求URL完成后需要跳转的地址 例如: response.sendRedirect("http://localhost:8080/test?redirect=http://localhost:8080/test2; 当然,这种用途常见于跳转到登陆页面登陆后再次返回原来的页面: response.sendRedirect("

从servlet跳到jsp页面,并用jstl 进行判断和显示方法

以上是list集合的遍历方式

Servlet、JSP中页面跳转的方式

一.Servlet:当然,在servlet中,一般跳转都发生在doGet, doPost等方法里面.1)  redirect 方式response.sendRedirect("success.jsp");页面的路径是相对路径.sendRedirect可以将页面跳转到任何页面,不一定局限于本web应用中,如:response.sendRedirect("http://www.ycul.com");跳转后浏览器地址栏变化.这种方式要传值出去的话,只能在url中带para

Swift中使用presentViewController跳转页面后模拟器显示黑屏问题

Swift中使用presentViewController跳转页面后模拟器显示黑屏问题 问题原因 针对storyboard制作页面和手写页面,需要使用两种不同方法进行页面跳转. 解决办法 针对手写页面及storyboard制作页面,使用代码进行页面跳转的两种方法. 对于使用storyboard制作的页面 var sb = UIStoryboard(name: "Main", bundle:nil) var vc = sb.instantiateViewControllerWithIde

servlet跳转到JSP页面会出现乱码

问题描述:servlet跳转到JSP页面的时候会出现乱码.但是直接访问JSP页面不会出现乱码,乱码情况如图所示 servlet情况 我发现去掉servlet上面的那两句话,JSP乱码情况是没有的, 或者写成下面情况的servlet也可以的 这样也不会出现乱码! 或者把上面四句话全部去掉也不会出现乱码 本人分析(不一定正确)是因为:response.setContentType("text/html"); PrintWriter out = response.getWriter(); 因

servlet自动获取前端页面提交数据

servlet自动获取前端页面jsp提交数据 以下是本人在学习过程中,因前端页面提交参数过多,后台servlet封装实体类过于麻烦而写的一个工具类,应用于jsp/servlet数据提交后,基于MVC+MyBatis进行数据持久化的过程.这里只介绍页面到servlet(controller)提交数据封装对象的过程,MVC+MyBatis访问数据库不在这里介绍. 1.前端页面及代码 1)前端表单页面构建(用于测试简单构建的页面有点丑陋哦~) 2)前端jsp页面代码   这里使用了Ajax异步 get

登录超时,给出提示跳到登录页面(ajax、导入、导出)

一.一般页面登录超时验证,可以用过滤器filter,如下: package com.lg.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequ

一步一步实现web程序信息管理系统之二----后台框架实现跳转登陆页面

SpringBoot springboot的目的是为了简化spring应用的开发搭建以及开发过程.内部使用了特殊的处理,使得开发人员不需要进行额外繁锁的xml文件配置的编写,其内部包含很多模块的配置只需要添加maven依赖即可使用,这项功能可谓对开发人员提供了大大的好处.使用springboot只需要简单配置一下就可以完成之前复杂的配置过程.可以到https://start.spring.io/此网站上,下载一个最简单的springboot应用,然后一步一步实现自已的应用. 可以看出当前的稳定版

JAVASCRIPT实现的WEB页面跳转以及页面间传值方法

在WEB页面中,我们实现页面跳转的方法通常是用LINK,BUTTON LINK ,IMG LINK等等,由用户点击某处,然后直接由浏览器帮我们跳转. 但有时候,需要当某事件触发时,我们先做一些操作,然后再跳转,这时,就要用JAVASCRIPT来实现这一跳转功能. 下面是具体的做法: 一:跳转到新页面,并且是在新窗口中打开时: 复制代码 代码如下: function gogogo() { //do someghing here... window.open("test2.html");