WEB-INF目录下的jsp页面如何访问(提醒自己)
2014-11-07 15:23
621 查看
在实际开发中,很多时候,为了加强安全性及保护源代码,需要把后台的jsp页面放在WEB-INF目录下,实际上,这个目录一般都是用于存放配置文件还有jar包,类的编译文件等
因为这个目录是有权限,即有访问控制的,直接在地址栏中输入该页面的Url地址或者在页面上使用超链接是不能访问的,提示404错误,即找不文件,从而把后台页面放在这个目录下相对是比较安全的,不需要写过滤器来时行非法判断了。常见的目录结构: webRoot ----login.jsp ----WEB-INF -----A
------index.jsp -----B
------index.jsp
webRoot根目录下的文件是没有访问限制的,可以随便访问,而WEB-INF目录下的文件是不能直接通过url地址访问的
如何访问WEB-INF目录下的文件:只有通过转发才能访问(forward),而通过redirect是不能访问的
方法一:因此,前面也说过,把文件放在WEB-INF目录下,该项目一般都是整合了struts框架的,从而利用struts框架的转发功能来实现跳转到WEB-INF目录下的页面。struts.xml配置文件中的配置如下,<result name="success">没有添加ype="redirect"属性时,默认转发
<package name="qiandl" extends="struts-default"> <action name="TestJbpmAction" class="TestJbpmAction"> <result name="success">/WEB-INF/web/main.jsp</result> </action> </package>
这样,就可可访问WEB-INF目录下的文件了
方法二:直接在jsp页面中,使用jsp的转发标签,即 <jsp:forward page="WEB-INF/web/main.jsp"/> 就可以访问了
注意:不能这样写:<jsp:forward page="WEB-INF/web/main.jsp">test</jsp> 这样写,相当于给转发的main.jsp页面传递参数,而这种写法不符合传递参数时的jsp:forward的写法,因此会报错如下:org.apache.jasper.JasperException:
wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();}); if( navigator.userAgent.indexOf("MSIE 6.0") < 0 ){BAIDU_CLB_fillSlot( '920314' );}
/index.jsp(27,45) Expecting "jsp:param" standard action with "name" and "value" attributes
带参数的写法:
<jsp:forward page="WEB-INF/web/main.jsp"> <jsp:param value="" name=""/> </jsp:forward>
另外,如果WEB-INF目录下的文件要访问外面,即webRoot目录下的css、js文件,则在WEB-INF目录下的文件中需要使用绝对路径,才能正确的引用。
因为这个目录是有权限,即有访问控制的,直接在地址栏中输入该页面的Url地址或者在页面上使用超链接是不能访问的,提示404错误,即找不文件,从而把后台页面放在这个目录下相对是比较安全的,不需要写过滤器来时行非法判断了。常见的目录结构: webRoot ----login.jsp ----WEB-INF -----A
------index.jsp -----B
------index.jsp
webRoot根目录下的文件是没有访问限制的,可以随便访问,而WEB-INF目录下的文件是不能直接通过url地址访问的
如何访问WEB-INF目录下的文件:只有通过转发才能访问(forward),而通过redirect是不能访问的
方法一:因此,前面也说过,把文件放在WEB-INF目录下,该项目一般都是整合了struts框架的,从而利用struts框架的转发功能来实现跳转到WEB-INF目录下的页面。struts.xml配置文件中的配置如下,<result name="success">没有添加ype="redirect"属性时,默认转发
<package name="qiandl" extends="struts-default"> <action name="TestJbpmAction" class="TestJbpmAction"> <result name="success">/WEB-INF/web/main.jsp</result> </action> </package>
这样,就可可访问WEB-INF目录下的文件了
方法二:直接在jsp页面中,使用jsp的转发标签,即 <jsp:forward page="WEB-INF/web/main.jsp"/> 就可以访问了
注意:不能这样写:<jsp:forward page="WEB-INF/web/main.jsp">test</jsp> 这样写,相当于给转发的main.jsp页面传递参数,而这种写法不符合传递参数时的jsp:forward的写法,因此会报错如下:org.apache.jasper.JasperException:
wk_ad_begin({pid : 21});wk_ad_after(21, function(){$('.ad-hidden').hide();}, function(){$('.ad-hidden').show();}); if( navigator.userAgent.indexOf("MSIE 6.0") < 0 ){BAIDU_CLB_fillSlot( '920314' );}
/index.jsp(27,45) Expecting "jsp:param" standard action with "name" and "value" attributes
带参数的写法:
<jsp:forward page="WEB-INF/web/main.jsp"> <jsp:param value="" name=""/> </jsp:forward>
另外,如果WEB-INF目录下的文件要访问外面,即webRoot目录下的css、js文件,则在WEB-INF目录下的文件中需要使用绝对路径,才能正确的引用。
相关文章推荐
- JavaEE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件(转)
- 关于jsp页面是放在webroot目录下和web-inf下优缺点/(如何访问WebRoot中的CSS和JS文件)
- WEB-INF目录下的jsp页面如何访问
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- jsp页面如何访问WEB-INF目录下的资源
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 关于jsp页面是放在webroot目录下和web-inf下优缺点/(如何访问WebRoot中的CSS和JS文件)
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件(转载)
- WEB-INF目录下的jsp页面如何访问?
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- WEB-INF目录下jsp页面如何访问WebRoot中的CSS和JS文件
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- WEB-INF目录下的jsp页面如何访问?
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件