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这么访问
这我也知道。。
追答首先 应用的目录结构是:
工程名(此处=WebRoot)
--子目录(jsp/html/js/ftl/css/等文件)
--子目录(同理)
你发布,如果要访问 http://ip:端口/工程名/+(子目录/)+(jsp/html/ftl等)
根据你的意思,你是不想按照上述结构访问??
解决/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错误的主要内容,如果未能解决你的问题,请参考以下文章