Jsp中引入JavaScript失败(找不到js文件)

起因:jsp页面加载打印功能的js文件失败,在firefox下无法检索到该js文件。

我在本地的html文件中用常见的方式引入js,没有问题。但是jsp中始终不行。


于是,查阅资料,发现动态web项目中js不能放到 WEB-INF下,并且引入的src地址需要按照容器中项目位置而来,建议使用相对位置引入文件。



帖子地址:http://www.iteye.com/problems/40205 

----------------------

1
2
3
4
5
6
7
8
9
10
11
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
< html >
   < head >
     < base href="<%=basePath%>">

js只能放在WEB-INF外:(因为外部是不能直接访问WEB-INF下的文件的) 
src="${pageContext.request.contextPath}/文件夹名(没有就不写这项)/xtree.js">

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这个问题可能是由于JSP页面使用了异步加载(Ajax)导致的。异步加载会导致新的HTTP请求,而这个请求并没有携带原先的session信息。因此,可以考虑在异步请求手动添加session信息,或者在JSP页面将session信息保存到JavaScript变量,在异步请求使用该变量传递session信息。 下面是一些可能的解决方案: 1. 在异步请求手动添加session信息 在异步请求添加如下代码: ```java HttpSession session = request.getSession(); ``` 这将获取当前session对象。然后,可以将session信息添加到异步请求: ```javascript $.ajax({ url: "someurl", data: {sessionid: '<%= session.getId() %>'}, success: function(data) { // handle response } }); ``` 这里将session ID添加到请求参数。 在服务器端,可以通过session ID获取到session对象: ```java String sessionId = request.getParameter("sessionid"); HttpSession session = request.getSession(false); if (session != null && session.getId().equals(sessionId)) { // session found } else { // session not found } ``` 2. 将session信息保存到JavaScript变量JSP页面添加如下代码: ```java <% HttpSession session = request.getSession(); String username = (String) session.getAttribute("username"); %> <script> var username = '<%= username %>'; </script> ``` 这里将session的username属性保存到JavaScript变量。 在异步请求,可以使用该变量传递session信息: ```javascript $.ajax({ url: "someurl", data: {username: username}, success: function(data) { // handle response } }); ``` 在服务器端,可以直接获取到该变量: ```java String username = request.getParameter("username"); ``` 这里假设在异步请求传递了username参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值