`
have_life
  • 浏览: 147544 次
社区版块
存档分类
最新评论

<base href="<%=basePath%>">

    博客分类:
  • java
 
阅读更多
遇到这样的问题,在地址栏上这样访问。
http://localhost:8080/user/user!login.action


struts文件这么配置
<package name="user" namespace="/user" extends="struts-default">

		<action name="user!*"  class="com.q167.action.LoginAction" method="{1}">
			<result name="success">/ok.jsp</result>
			<result name="fail">/error.jsp</result>
		</action>
	</package>


ok.jsp 页面中有这样的代码

<img src="./img/ok.jpg">

这个时候这个ok.jpg的图片不能正常显示,错误信息是:
GET http://localhost:8080/user/img/ok.jpg 404 (Not Found)

而平常你用  http://localhost:8080/ok.jpg 这个图片是正常显示的。

其实意思就是因为你那个action是在namespace='/user' 下触发的,所以那个html里的
图片也被加了一层目录。(虽然这个action的结果跳转到位于webcontent下的ok.jsp,但是它当前的rootPath貌似变化了,就是加了一层/user)

文件路径如下:
\WebContent
           ---\img
                  ---ok.jpg

           ---ok.jsp

我们这里的一个技巧就是要让html里的相对位置的引用别跟着那个被触发的action
的namespace去变动。具体做法如下:



<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<h1><font color="green">It Works!!!</font></h1>
<img src="./img/ok.jpg">
</body>
</html>



重点在于

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

<base href="<%=basePath%>">
分享到:
评论

相关推荐

    简单的servlet增,删,改,查

    &lt;td&gt;&lt;a href='addUser.jsp'&gt;添加&lt;/a&gt;&nbsp; &lt;a href='&lt;%=basePath%&gt;DelUserServlet?id=&lt;%=users.getId()%&gt;'&gt;删除&lt;/a&gt;&nbsp; &lt;a href='updateUser.jsp'&gt;更新&lt;/a&gt;&nbsp; &lt;a href="login.jsp"&gt;登陆&lt;/...

    一套完整简单的图片上传到数据库保存路径

    &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;用户注册&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta http-equiv="expires" content="0"&gt; ...

    JavaWeb实验报告.doc

    三、实验内容 页面代码:register.jsp &lt;html&gt; &lt;head&gt; &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;欢迎注册&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;center&gt; &lt;form action="register.jsp" method="post"&gt; &lt;h2&gt;用户注册&lt;/h2&gt; &lt;table width...

    springword

    spring 的实例源码 &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;My JSP 'index.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; ...

    jsp代码jsp代码

    &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;My JSP 'text1.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta ...

    js 框架之一

    &lt;html&gt;&lt;br&gt; &lt;head&gt;&lt;br&gt; &lt;base href="&lt;%=basePath%&gt;"&gt;&lt;br&gt; &lt;br&gt; &lt;meta http-equiv="content-type" content="text/html;charset=UTF-8"/&gt; &lt;br&gt; &lt;br&gt; &lt;br&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt;&lt;br&gt; &lt;meta ...

    囧囧代码jsp代码jsp

    &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;My JSP 'text.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta ...

    人事信息管理系统

    &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;My JSP 'index.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta ...

    ajax、mysql、jstl实现分页、局部刷新界面

    &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;动漫搜索&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta http-equiv="expires" content="0"&gt; ...

    ajax无刷新来聊天代码

    ajax无刷新来聊天代码 只发关键部分了啊 /* *@ author 让痛苦痛苦 ... &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;% ArrayList al=(ArrayList)new UsersBo().ShowAllUsersZaixian(); %&gt; .............

    ajax无刷新聊天代码

    ajax无刷新聊天代码 只发关键部分了啊 /* *@ author 让痛苦痛苦 *@ param 开源QQ群:... &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;% ArrayList al=(ArrayList)new UsersBo().ShowAllUsersZaixian(); %&gt; .............

    ShopCarts实现

    %=basePath%&gt;"&gt; &lt;title&gt;My JSP 'CatalogPage.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta ...

    验证码下载jsp

    &lt;base href="&lt;%=basePath%&gt;"&gt; &lt;title&gt;My JSP 'image.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="content-type" content="text/html;charset=utf-8"&gt; &lt;meta ...

    ext时间控件,可以选择时分秒

    %=basePath%&gt;"&gt; &lt;title&gt;票卡类型管理&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;link rel=...

    fckedit编辑器

    BaseHref="" 相对链接的基地址 ContentLangDirection="ltr/rtl" 默认文字方向 ContextMenu=字符串数组,右键菜单的内容 CustomConfigurationsPath="" 自定义配置文件路径和名称 Debug=true/false 是否开启调试...

    Java后端实现websocket与微信小程序端连接简单例子

    直接附代码 前端代码: &lt;&#37;@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&gt; &lt;&#37; String path = request.getContextPath();...base href="&lt;&#37;=basePath%&gt;"&gt;  

    readonline项目需要的软件和jar包b.zip

    %=basePath%&gt;"&gt;删掉,否则FlexPaper不能浏览文件。 3.FlexPaper不能正常浏览文件的时候,可以试试在官网添加信任。网址...

    DBDAIMAYUAN

    %=basePath%&gt;"&gt; &lt;title&gt;管理首页&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;meta ...

    简易聊天室

    %=basePath%&gt;"&gt; &lt;title&gt;My JSP 'Counter.jsp' starting page&lt;/title&gt; &lt;meta http-equiv="pragma" content="no-cache"&gt; &lt;meta http-equiv="cache-control" content="no-cache"&gt; &lt;...

    在线考试系统案例

    document.getElementById("isOkMsg").src = "&lt;%=basePath%&gt;/images/nos.png"; document.getElementById("usName").focus(); document.getElementById("login_ok").removeAttribute("disabled"); } function _...

Global site tag (gtag.js) - Google Analytics