A. js页面通过servlet 删除一条数据之后,返回到原jsp页面,仍显示删除数据,该怎样处理
可能有缓存,还有你的实现不好....
1.缓存的处理方法 可以通过过滤器,或者有response的地方(如:jsp页面)
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0L);
2.技术实现
一般情况下,都不太用response.sendRedirect("") .
用这个得比较多request.getRequestDispatcher("").forward(request,response);
具体 forward 和 redirect的区别,你可以网上查查,相信你面试前准备的时候都背过
3.业务实现
你这里用了一个技巧, 获得刚刚过来的页面的路径request.getHeader("Referer"),这样动态性确实不错.
不过一般的处理方式是,:
列表 -> 删除 -> 列表 select.do -> delete.do -> select.do
列表->编辑->删除->列表 select.do -> view.do->delete.do->select.do
这个你应该能明白.
前面的没什么,就是你在删除后,再跳转到查询页面(是通过后台,不是直接jsp跳转),再查询一遍,这样就不会出现脏数据了(如果出现,可能是别的原因)
你试试
B. 用网页直接访问jsp正常,但是用action跳转之后js就失效了,报错是js里面的方法没有执行,求大神帮助
提供的信息量太少,只能说下可能的原因了。如果你js引入路径src=“/js/xxx.js”用action访问的话前面会加专上你访问action命名空属间的名字。如:/user/xxx.action,jsp引入的路径会变成http://ip:端口号/工程名/user/js/xxx.js,就访问不到js了。可以改成src=“js/xxx.js”去掉第一个斜线。
C. 我在执行jsp页面中的js的时候执行到DWREngine.setAsync(false);就会报错什么原因。
打开来 org\directwebremoting\engine.js 文件,
搜索该文件中是否存在DWREngine变量源的定义。
(因为在dwr3.x版本的engine.js中已经取消了DWREngine的定义,<记得多看源码呀!>)
最后,把 DWREngine 改为 dwr.engine,试试即可知道该方法是否有效了。
D. jsp引入js文件的问题
1)引入的js文件出错,
检查方法:将Js的内容写在当前的页面的<script> </script>之间,看是否能够正常运行,如果不能,请核查代码
2) 如果引入的代码在当前页面中能够正常运行,但当引入时不能正常运行,则有两种可能
A:引入Js的路径有问题
B:引入的Js的编码格式与当前页面不匹配;
3)引入Js的路径问题
js的引入不外乎两种,相对路径与绝对路径
test.js 与index.jsp 放在同一文件夹下,比如: web应用/manage/下面
第一种情况 :
一般在学习时, 一个tomcat上都跑多个工程, 用工程名来区分
因为我的的URL是 :http://localhost/工程名 /manage/index.jsp
多了一个工程名,所以要加 <%=request.getContextPath() %>
如下:
<script src="<%=request.getContextPath() %> /manage/test.js"></script>
第二种情况:
访问JSP文件时, 用相对路径引入JS,CSS文件是OK的
真实项目中, 一个tomcat上要是也跑了多个工程, 并用IP来区分
url 是这样的: http://localhost/manage/index.jsp 注意这里,是直接访问JSP文件,不是 servlet,不是struts .
test2.js 与index.jsp 放在同一文件夹下,下面用相对路径来引入 JS文件 是OK 的:
<script src=test2.js></script>
第三种情况:一个通过Action跳转之后到达的Jsp页面需要引入一个Js文件:
这种情况下,请使用绝对路径,
在第二情况的基础上, 我们访问的是 servlet 或是struts的action , 再转发到 index.jsp
url 是: http://localhost/***.do或者 http://localhost/***.action 这里不是访问JSP文件了
因此路径应该这么写:
<script src="/manage/test.js"></script>
test2.js 前面一定要有/manage/
或者:
<script src="http://127.0.0.1/工程名/manage/test.js"></script>
这种方法推荐
在引入js时,我们应该养成良好的习惯,请使用绝对路径,在开发时,能够大大的提高自己的开发效率。
4)引入js的编码问题;
将两者的编码改为一致,一般我们可以修改JS文件编码使其与页面编码一致。
第二种方式是使用script标记的charset属性来显式指明所引入js文件的编码。如
<script src="xx.js" charset="gbk"></script>
这样无论页面是什么编码,都可以正常的访问这个JS中的内容。
相比之下,第二种可能更方便一些,而且作为一种好的习惯,平时我们应该尽可能都写上charset属性。
E. jsp运行js后报is null 错误
你用的是dwr吧。
请检查一下几点
你是否引入了dwr的引擎如/dwr/engine.js
你是否引入了自己定义的js接口文件如,我设计了java类HelloWorld,在dwr中配置了javascript="hello"
那么要引入/dwr/interface/hello.js
然后,就可以调用hello.method();了
还有,注意一下jsp默认创建文件,他自己给你加了个basePath,把这个删了
F. jsp引入js文件的问题
1)引入的js文件出错,
检查方法:将Js的内容写在当前的页面的<script> </script>之间,看是否能够正常运行,如果不能,请核查代码
2) 如果引入的代码在当前页面中能够正常运行,但当引入时不能正常运行,则有两种可能
A:引入Js的路径有问题
B:引入的Js的编码格式与当前页面不匹配;
3)引入Js的路径问题
js的引入不外乎两种,相对路径与绝对路径
test.js 与index.jsp 放在同一文件夹下,比如: web应用/manage/下面
第一种情况 :
一般在学习时, 一个tomcat上都跑多个工程, 用工程名来区分
因为我的的URL是 :http://localhost/工程名 /manage/index.jsp
多了一个工程名,所以要加 <%=request.getContextPath() %>
如下:
<scriptsrc="<%=request.getContextPath()%>/manage/test.js"></script>
第二种情况:
访问JSP文件时, 用相对路径引入JS,CSS文件是OK的
真实项目中, 一个tomcat上要是也跑了多个工程, 并用IP来区分
url 是这样的: http://localhost/manage/index.jsp 注意这里,是直接访问JSP文件,不是 servlet,不是struts .
test2.js 与index.jsp 放在同一文件夹下,下面用相对路径来引入 JS文件 是OK 的:
<script src=test2.js></script>
第三种情况:一个通过Action跳转之后到达的Jsp页面需要引入一个Js文件:
这种情况下,请使用绝对路径,
在第二情况的基础上, 我们访问的是 servlet 或是struts的action , 再转发到 index.jsp
url 是: http://localhost/***.do或者 http://localhost/***.action 这里不是访问JSP文件了
因此路径应该这么写:
<scriptsrc="/manage/test.js"></script>
test2.js 前面一定要有/manage/
或者:
<scriptsrc="http://127.0.0.1/工程名/manage/test.js"></script>
这种方法推荐
在引入js时,我们应该养成良好的习惯,请使用绝对路径,在开发时,能够大大的提高自己的开发效率。
4)引入js的编码问题;
将两者的编码改为一致,一般我们可以修改JS文件编码使其与页面编码一致。
第二种方式是使用script标记的charset属性来显式指明所引入js文件的编码。如
<scriptsrc="xx.js"charset="gbk"></script>
这样无论页面是什么编码,都可以正常的访问这个JS中的内容。
相比之下,第二种可能更方便一些,而且作为一种好的习惯,平时我们应该尽可能都写上charset属性。
G. 新建的java web工程中jsp无法调用js文件
不可能啊....你jsp页面如何打开的?
一般的浏览器不能运行jsp的,一般都是部署到tomcat后,启动tomcat,然后请求jsp页面后才能调试jsp上面的js。