SSH框架Struts2访问webroot下JSP文件报404错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH框架Struts2访问webroot下JSP文件报404错误相关的知识,希望对你有一定的参考价值。

要想访问WebRoot下文件只能WebRoot/XX.jsp
怎么才能aa/bb.jsp这么访问,而不是aa/WebRoot/bb.jsp这么访问

检查struts.xml文件,查看是否有单词写错;若找不到错误,将整个文件主体内容删除,再次运行jsp页面;如果ok说明struts.xml文件配置有误,重新配置即可 参考技术A 如果是这样的最好struts在package前配制命名空间就行了!这样一定行! 参考技术B 404就是找不到文件,这种情况通常就是访问路径不对造成的追问

这我也知道。。

追答

首先 应用的目录结构是:
工程名(此处=WebRoot)
--子目录(jsp/html/js/ftl/css/等文件)
--子目录(同理)

你发布,如果要访问 http://ip:端口/工程名/+(子目录/)+(jsp/html/ftl等)

根据你的意思,你是不想按照上述结构访问??

参考技术C 修改web.xml文件中的路径

解决/WEB-INF目录下的jsp页面引入webRoot下的Jscss和图片的问题

通常把jsp页面放在webRoot的/WEB-INF下可以防止访问者直接输入页面。

而webRoot的/WEB-INF下的页面是受保护的,用户无法通过形如http://localhost:8080/test/webRoot/WEB-INF/content/xx.jsp来访问,他们的访问都必须透过struts处理请求才能达到。

然而,当把页面放在/web-inf下面时,JSP页面还是避免不了跟“外部”的js,css,图片“交互”,因为需要引入一些webRoot/css, webRoot/js, webRoot/images,而此时很容易引入失败,一般来说,此时用相对路径行不通了,所以必须使用绝对路径!下面一一总结。

一、引入webRoot/css

<link href="<%=request.getContextPath()%>/css/default.css" rel="stylesheet" type="text/css"/>  

 这个<%=request.getContextPath()%>即为/hh_test(项目名称),而<%=request.getContextPath()%>/css则相当于用绝对路径直接定位到了webRoot/css.

二、引入webRoot/js

<script type="text/javascript"  language="javascript" src="<%=request.getContextPath()%>/js/jquery-1.4.4.min.js"></script>  

三、引入webRoot/images

<img src="<%=request.getContextPath()%>/images/4.gif"  alt="加载外部图片" />  

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

为了美观,也为了方便写代码,可以使用el表达式,即把<link href="<%=request.getContextPath()%>/css/default.css" rel="stylesheet" type="text/css"/>

改为<link href="${pageContext.request.contextPath}/css/default.css" rel="stylesheet" type="text/css"/>

以上是关于SSH框架Struts2访问webroot下JSP文件报404错误的主要内容,如果未能解决你的问题,请参考以下文章

SSH框架学习------struts2

SSH(struts2+spring+hibernate)三大框架整合

struts2学习笔记接收参数

jsp文件放在WebRoot下还是WebInfo下

SSH框架学习------struts2前后台传值

ssh框架构建项目详解--基本概念和struts2