社区
Web 开发
帖子详情
将JSP都放到WEB-INF目录下, 点击超链接都报404,该如何处理?
juanxincai
2004-09-08 01:27:22
将JSP都放到WEB-INF目录下, 点击超链接都报404,该如何处理?
...全文
1855
36
打赏
收藏
将JSP都放到WEB-INF目录下, 点击超链接都报404,该如何处理?
将JSP都放到WEB-INF目录下, 点击超链接都报404,该如何处理?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
36 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
juanxincai
2004-09-10
打赏
举报
回复
确实是个小技巧. 有些误入歧途了. 呵呵.
但用过滤器, 势必为每个角色维护一个大的连接的库
juanxincai
2004-09-10
打赏
举报
回复
测试过, 报404.
我测试了如下路径:
src="/common/menu.jsp"
src="../common/menu.jsp"
src="/WEB-INF/jsp/common/menu.jsp"
src="<%=request.getContextPath()%>/WEB-INF/jsp/common/menu.jsp"
我人为,<frame src="/common/menu.jsp"这样的访问方式和用户直接输入超连接是一样的.
所以,应该不行.
feng8208
2004-09-09
打赏
举报
回复
可以forward 不能redirect
比特灵
2004-09-09
打赏
举报
回复
想法!所有链接÷访问方式÷都必须走servlet.直接访问jsp不允许。
juanxincai
2004-09-09
打赏
举报
回复
楼上的误解我的意思了,我是说将jsp 文件也放到web-inf目录下
juanxincai
2004-09-09
打赏
举报
回复
对forward可以
bon_jovi
2004-09-09
打赏
举报
回复
楼主说的<frame src="/common/menu.jsp" name="leftFrame" scrolling="YES">
的问题,倒是没有考虑到。楼主测试过吗?是否真的不行。
如果那样的话,用一个过滤器来实现对用户的控制。毕竟把jsp放web-inf底下只是个对所有用户都遮蔽的小技巧,不是正规方式。
juanxincai
2004-09-09
打赏
举报
回复
但, 好象一般的url都失效, 如
1.<a href="/WEB-INF/jsp/....">link</a>
2.<frame src="/common/menu.jsp" name="leftFrame" scrolling="YES">
用forward可以解决第一个问题.
第二个该如何解决呢?
chancelin
2004-09-09
打赏
举报
回复
JSP文件可以放到/WEB-INF目录下,这样客户端就不能直接访问;
唯一的访问方式是:
写一个servlet,判断用户是否有访问的权限,如果有,那么这么写:
request.getSession().getServletContext().getRequestDispatcher("/WEB-INF/jsp/admin.jsp").forward(request,response);
就可以访问到了。
juanxincai
2004-09-09
打赏
举报
回复
多谢楼上!
确实可以. 我简单测试了以下,在任何一个子目录下, 都这样写
<%@ include file="/WEB-INF/jsp/common/init.jsp" %>
在struts config文件中, 配置forward也是这样写.
<forward name="main" path="/WEB-INF/jsp/common/main.jsp" redirect="false" />
具体可参照spring中的例子.
juanxincai
2004-09-09
打赏
举报
回复
good idea!
bon_jovi
2004-09-09
打赏
举报
回复
spring的example都是把jsp放到web-info底下的jsp目录。你可以看看他的例子怎么写的。
juanxincai
2004-09-09
打赏
举报
回复
我有试过, 但是, 比如你要在一个JSP中INCLUDE另一个JSP, 那么这时候, 又有路径的问题
该如何写呢?
比如我这样写;
<%@ include file="./common/init.jsp" %> 或者
<%@ include file="<%=reuqest.getContextPath()%>/WEB-INF/jsp/common/init.jsp" %>
但好象都不行.
比特灵
2004-09-09
打赏
举报
回复
如果你用struts就简单了再struts-config.xml里面配置一下即可通过action 的mappingForward过去了。普通的servlet不知道可以不可以,试下。。。
zhaoqiubo
2004-09-09
打赏
举报
回复
web-inf这个目录就是放置类和配置文件的.网络上有这种安全机制,就是不允许直接访问web-inf下的资源.你这么做是不合理的./
powersailor
2004-09-09
打赏
举报
回复
tomcat是不允许客户直接访问WEB-INF下的文件的,这些文件只能由服务器访问。所以你必须将要访问的jsp页面都拿到WEB-INF的上级目录中。这样应该没有问题。
bjblz
2004-09-09
打赏
举报
回复
防止用户直接从浏览器访问
可以做个过滤器
WEB-INF目录是个安全目录,是不允许用户访问的,但如果是STRUTS框架,你可以针对每个JSP做个ACTION,也可能实现你的要求
yaray
2004-09-08
打赏
举报
回复
晕,竟然没对齐。
目录classes,lib,src 及 文件web.xml 都在WEB-INF目录下。
yaray
2004-09-08
打赏
举报
回复
目录结构:
你的应用目录\
index.jsp (及其他所有页面,可建立相应目录并将相应Jsp,htm文件放在其中)
WEB-INF\ (此目录中的内容是不能通过URL访问的)
classes\ 按照包名结构放置各个类(JavaBean 和 Servlet)
lib\ (放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件)
src\ (按照包名结构放置各个java文件,[仅建议])
web.xml文件(必须存在)
其他目录(图片目录images,等等)
juanxincai
2004-09-08
打赏
举报
回复
可否告知具体写法, 谢谢!!
加载更多回复(16)
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章