JSP交给Servlet处理后,转到重定向的页面时,布局混乱是什么原因?

2024-11-01 01:39:48
推荐回答(5个)
回答1:

虽然你没有提供具体的代码或者例子,但是我估计情况或许是这样的:
假设为站点名为ws,站点根目录下有_pages目录和没media目录。_pages下有个index.jsp文件,其内容如下(只列出body标签):

hello this is index.jsp


因为bg.jpg文件中_media目录下,通常我们会在index.jsp中这样引用该文件的:../media/bg.jpg
" .. " 表示上级目录,这大家都知道。这种方式引用文件在静态资源中是可行的。但是动态的Servlet来说涉及到上下文的概念,这里不做解释。
现在我们写一个简单的servlet进行跳转,核心代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/_pages/index.jsp").forward(request, response);
}
可见,该servlet收到请求直接跳转到_pages/index.jsp。

现在我们测试:http://localhost:8080/ws/_pages/index.jsp,结果是图片可以显示的。
现在测试(servlet映射url是redirector):http://localhost:8080/ws/redirector,结果是图片无法显示。

解决方法:将index.jsp的代码做如下改动

hello this is index.jsp


现在测试两个路径,都是没问题的。

回答2:

那是因为你的css样式文件路径出错了,样式文件路径用 这样无论如何都不会有问题 其中path你懂的,(request.getContextPath())

回答3:

样式文件关联的路径错了,你可以直接打开此网页来判断是不是程序的原因。也就是说你直接在浏览器里输入jsp的地址,然后看页面是不是混乱的,如果是就是编写页面时候没注意路径。如果不是就是重定向时跳转的问题,因为看不到代码,只能这样帮你了

回答4:

JSP交给Servlet处理后,转到重定向的页面混乱的原因是重定向后页面的css无法加在导致,建议使用绝对路径加载css样式。
解决办法:

重定向不用变,转发的时候按照servlet的路径进行修改相对路径就可以了
sendRedirect等同于此方式
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
String newLocn = "/newpath/jsa.jsp";
response.setHeader("Location",newLocn);
(Meta Refresh)方法200
这种方法是由HTML提供的,Meta本身就是HTML标签。使用方法是:
相应的java代码
String content=stayTime+";URL="+URL;
response.setHeader("REFRESH",content);

回答5:

是不是你的css连接错了啊 肯定是没有处理好css文件和当前url之间相对路径的关系…… 页面乱是因为他找不到那些控制的样试文件,如果页面目录较