当前位置: 代码迷 >> JavaScript >> jsp、js、<a>的访问模式(绝对路径+相对路径)
  详细解决方案

jsp、js、<a>的访问模式(绝对路径+相对路径)

热度:1127   发布时间:2012-08-31 12:55:03.0
jsp、js、<a>的访问方式(绝对路径+相对路径)

一、项目中应用:

1.PrivInterceptor.java 权限拦截密码过于简单直接跳转至修改密码jsp,且传上次访问的路径requestUrl。

	/**
	 * 二、登录成功后,根据URL进行权限判断
	 */
	HttpServletRequest request = ServletActionContext.getRequest();
	String currentURL = request.getRequestURI();
	
	if( !"".equals(bussiness_id.trim()) && null!=bussiness_id )
	{
		/**
		 * 2.1判断工号登录后,业务密码是否为123456,是跳转到商户安全设置,修改业务密码
		 */
		TBussinessSafe busSafe = bussiSafeDAO.selectByPrimaryKey(bussiness_id);
		if( null!=busSafe )
		{
			String MD5password = KeyedDigestMD5.getKeyedDigest("123456","").toUpperCase();//获得123456的MD5值
			String bussinessPass2 = busSafe.getBussinessPass2();//获得工号业务密码
			if( MD5password.equals(bussinessPass2) )
			{	
				String requestUrl = currentURL+(request.getQueryString()==null?"":"?"+request.getQueryString());
				act.put("requestUrl", requestUrl);//本次请求的Url
				act.put("message", "首次登录请设置您的“业务密码”,业务密码将用于保护您的相关资金操作。");
				return "updateBussinessPassword";
			}
		}

?2.js调用上次你请求的URL,实现修改完密码后,自动跳转到上一次访问的路径

function doUpdateSave(){
	$('#updateForm').dialogSubmit(doValidate(),'SafeManager_motifyPass',null,sussCallBack);
}

function sussCallBack(data,win){
	switch(data){
   		case '3001':
     		$.hpDialog.alert(errorMessage[data]) ;
     		break
     	case '3002':
     		$.hpDialog.alert(errorMessage[data]) ;
     		$(win.document).find('input[type="password"]').val('');
     		$(win.document).find('.qr1').html('');
			$(win.document).find('#safe\\.newpassErr').removeData('newstate');
			var requestUrl = $(win.document).find('#requestUrl');
			if(requestUrl){
				var from = requestUrl.val();
				if(from)win.location.href=from;
			}
     		break
     	case '3006':
     		$.hpDialog.alert(errorMessage[data]) ;
     		break
   		default:
     		$.hpDialog.alert(errorMessage[data],function(){$.dialog.close();}) ;
   }
}

?3.jsp页面

    <%@ include file="/cssBasePage.jsp"%>
    <script type="text/javascript" src="<%=path%>/jsp/phone/business/safe/passMotify.js"></script>
	<script type="text/javascript">
	</script>
  </head>
  <body>
  	<form id="updateForm" name="updateForm">
  		<input type="hidden" id="initLoadMethod" name="initLoadMethod" value="initsale" />
  		<input type="hidden" id="requestUrl" name="requestUrl" value="${requestUrl }" />
		<div class="cftbox">
			<hp:HpNavigate2 hasOperation="true">商户安全设置</hp:HpNavigate2>
			
			<div class="xgqh">
				<s:if test="message!=''">
					<s:property value="message"/>
		        </s:if>
		    </div>
			<ul>
			<li><div id="newpasstitle"  class="tm">新交易密码:</div><div class="sr"><hp:HpInputPass name="safe.bussinessPass2"  id="safe.bussinessPass2"  TClass="srinput" TOnBlur="javascript:onBlurValiNewPass(this.value,'safe\\\\.newpassErr')"></hp:HpInputPass></div><div id="safe.newpassErr"  class="qr1"></div></li>
			<li><div id="surepasstitle" class="tm">提交新密码:</div><div class="sr"><hp:HpInputPass name="safe.state" id="safe.state" TClass="srinput" TOnBlur="javascript:onBlurValiSurePass(this.value,'safe\\\\.surepassErr')"></hp:HpInputPass></div><div id="safe.surepassErr" class="qr1"></div></li>
			<li><div class="tm"></div><div class="sr"><hp:HpButton TJsClick="javascript:doUpdateSave()" TValue="save" id=""></hp:HpButton><hp:HpButton TJsClick="javascript:doReset()" TValue="reset" id=""></hp:HpButton></div></li>
			</ul>
			<div style="clear:both"></div>
		</div>
	</form>
  </body>
</html>
?

?

二、jsp引用文件的两种方式:

?

1.在jsp中我们引入文件一般形式为这样:

<script type="text/javascript" src="<%=path %>/jsp/phone/notice/noticeList.js"></script><!--绝对路径-->

<script type="text/javascript" src="jsp/phone/notice/noticeList.js"></script><!--相对路径-->

可以看出jsp默认的访问路径可以直接使用相对路径,因为jsp头部已经引用了<base href="<%=basePath%>"/>

?

2.path和basePath,我的java工程为b2cPlatform,所以:

<%=path%>:/b2cPlatform
<%=basePath%>:http://localhost:8082/b2cPlatform/

?

三、js的window.location.href的两种访问方式:

###根据jsp默认的访问路径,js在调用时候可以分:绝对路径、相对路径。

?

1.我的代码

<script type="text/javascript">
function test(){
	window.location.href='HelpInfo_queryHelpInfoList?initMethod=iquery';
	//window.location.href=
		'/b2cPlatform/HelpInfo_queryHelpInfoList?initMethod=iquery';
}
</script>
</head>

<body>
<div> <input type="button" onclick="test()" value="testaaaaaa"/></div>
</body>
</html>

? ##以上window.location.href的两种访问方式都正确!!!

?

?

四、<a href="">的两种访问方式:

1.绝对路径:
<a href="/b2cPlatform/HelpInfo_queryHelpInfoList?initLoadMethod=iquery">testbbbbb</a>
2.相对路径:
<a href="HelpInfo_queryHelpInfoList?initLoadMethod=iquery">testbbbbb</a>

##以上<a href="">的两种访问方式都正确!!!

?

?

?

?

  相关解决方案