jsp跳转到servlet问题

webroot下面的admin文件夹下的一个jsp访问一个servlet访问不到,但是吧这个jsp调到webroot下却能访问得到,jsp代码如下<scriptlangu... webroot下面的admin文件夹下的一个jsp访问一个servlet访问不到,但是吧这个jsp调到webroot下却能访问得到,
jsp代码如下
<script language="javascript" src="js/AjaxRequest.js"></script>
<script language="javascript">
timer = window.setInterval("getNewMessage()",3000);
window.onload=function(){
getNewMessage()
}
function getNewMessage(){
var loader1=new net.AjaxRequest("MessageNew?action=queryuserComplaint&nocache="+new Date().getTime(),deal_getNewMessage,onerror,"GET");
}
function deal_getNewMessage(){
document.getElementById("MessageNew").innerHTML=this.req.responseText;
}
</script>
<span id="MessageNew">正在获取用户投诉信息......</span>
XML如下
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>MessageNew</servlet-name>
<servlet-class>com.xinghua.property.servlet.MessageNew</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MessageNew</servlet-name>
<url-pattern>/MessageNew</url-pattern>
</servlet-mapping>

servlet应该没错,因为把jsp页面调到webroot下可以调用servlet,求大神帮忙,我觉得主要是黄色字体出错,怎么样才能从文件夹下的一个jsp跳转到servlet?
展开
 我来答
mikemelon2012
2015-10-29 · TA获得超过3633个赞
知道大有可为答主
回答量:938
采纳率:87%
帮助的人:391万
展开全部

JSP跳转Servlet出现问题一般都是因为路径写得不对,路径分绝对路径和相对路径两种,在同一个WebAPP下,二者区别是前者的第一个字符有斜杠"/",后者不写而直接写路径,可以用..这些字符来移动位置。

比较保险的解决方法是用绝对路径,这样不会出错,特别是在JSP移动位置时候。


比如说你的JSP在当前WebAPP的webroot\jsp\下,而你的Servlet在web.xml里映射的<url-pattern>里写的是/servlets/admin/adminServlet(注意<url-pattern>里的第一个斜杠/表示是相对与当前Web工程的webroot的),那么:

1)你在JSP里面用的这个servlet的绝对路径应该是

<%=request.getContextPath%>/servlets/admin/adminServlet

或者用EL表达式写就是

${pageContext.request.contextPath }/servlets/admin/adminServlet

这里<%=request.getContextPath%>或${pageContext.request.contextPath }都是当前WebAPP的上下文地址(Web Context Path),比如你工程名是web1,默认就是/web1


2)JSP里面用的这个servlet的相对路径写法应该是

../servlets/admin/adminServlet

注意前面的两个点,意思是先让你webroot\jsp\下的这个JSP路径移动到webroot根目录下,然后再去找servlet。

百度网友a668673
2014-05-07 · TA获得超过527个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:347万
展开全部
路径不对
var loader1=new net.AjaxRequest("MessageNew?action=queryuserComplaint&nocache="+new Date().getTime(),deal_getNewMessage,onerror,"GET");

里面的servlet路径改成"../MessageNew?............"

或者把你servlet的mapping改成/admin/MessageNew
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式