java怎样java访问web inff下的文件

31089人阅读
Java EE(53)
本来WEB-INF中的jsp就是无法通过地址栏访问的.所以安全.如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了。如下:
&servlet-name&runtain&/servlet-name&
&jsp-file&/WEB-INF/INF.jsp&/jsp-file&
&/servlet&
&servlet-mapping&
&servlet-name&runtain&/servlet-name&
&url-pattern&/XXX&/url-pattern&
访问地址:http://localhost:8080/runtain/xxx
就可以看见内容了!
方法2:&jsp:forward
page =&/WEB-INF/jsp/test/test.jsp& /&
方法3:request.getRequestDispatcher(&/WEB-INF/a.jsp&).forward(request,response);
怎么样让servlet访问web-inf下的网页或jsp文件呢.因为web-inf下,应用服务器把它指为禁访目录,即直接在浏览器里是不能访问到的.
因些,可以让servlet进行访问,如web-inf下有a.jsp则可以用request.getRequestDispatcher(&/WEB-INF/a.jsp&).forward(request,response);进行派遣访问.但如果web-inf下有a.htm,则用request.getRequestDispatcher(&/WEB-INF/a.htm&).forward(request,response);就不能访问.
一开始想不通,觉得怪.后来想想,jsp其实也是servlet,会自动编译的,于是work目录下会有/web-inf/a$jsp.class类型,于是有头绪了,让应用服务器能够编译.htm,如a$htm.class.抱有这个想法,开始动手
在tomcat下的conf/web,找到jsp的访问方式,
&servlet-mapping&
&servlet-name&jsp&/servlet-name&
&url-pattern&*.jsp&/url-pattern&
&/servlet-mapping&
于是在下面添加
&servlet-mapping&
&servlet-name&jsp&/servlet-name&
&url-pattern&*.htm&/url-pattern&
&/servlet-mapping&
&servlet-mapping&
&servlet-name&jsp&/servlet-name&
&url-pattern&*.html&/url-pattern&
&/servlet-mapping&
结果:一切OK,访问a.htm,和a.html在work/web-inf/下者有a$htm.class,a$html.class生成
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:2096683次
积分:11072
积分:11072
排名:第1322名
原创:74篇
转载:68篇
评论:284条
欢迎讨论技术问题,本人邮箱:
(2)(2)(1)(1)(7)(2)(1)(1)(1)(1)(2)(1)(1)(1)(6)(3)(1)(3)(3)(2)(5)(2)(1)(5)(4)(2)(3)(3)(1)(2)(6)(13)(20)(14)(14)(9)web工程中的普通java类 怎么样才能访问到web-inf下面的xml文件_Java_ThinkSAAS
web工程中的普通java类 怎么样才能访问到web-inf下面的xml文件
web工程中的普通java类 怎么样才能访问到web-inf下面的xml文件
内容来源: 网络
System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
System.out.println(Config.class.getClassLoader().getResource(""));
System.out.println(ClassLoader.getSystemResource(""));
System.out.println(Config.class.getResource(""));
System.out.println(Config.class.getResource("/")); //Class文件所在路径
System.out.println(new File("/").getAbsolutePath());
System.out.println(System.getProperty("user.dir"));
这些都试过了只是访问到了 发布的tomcat路径没有访问到 工程的绝对路径
比如说我要访问的是绝对路径 e:/myweb/web01/testweb/webapp/web-inf/config.xml
工程是testweb
里面的config.xml 文件
普通java类通过什么才能访问到呢
有点误解: 或者说是我发布后我的普通java类要读取webinf下面的xml文件 该怎么样获得 文件路径呢
file file=new file(“这里怎么样才能读取到 .xml文件呢”)
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信目录结构如图
http://localhost:8080/&&&&&&&&&&&&&&&&&&能访问到index.html
http://localhost:8080/A&&&&&&&&&&&&&&&&访问不到&AAA.html
http://localhost:8080/Q&&&&&&&&&&&&&&&访问不到&AAA.html
请问@RequestMapping()&标记方法内&写什么才能是页面跳转到&WEB-INF下的AAA.html呢?
回复讨论(解决方案)
增加配置即可。
application.properties
spring.view.prefix:&/WEB-INF/jsp/
spring.view.suffix:&.jsp
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=****&(隐私处理)
spring.view.prefix:/WEB-INF/
spring.view.suffix:.html
application.properties中全部内容&&&↑
&&&&@RequestMapping(&/&)
&&&&public&String&index(){
&&&&&&&&return&&redirect:AAA&;
&&&&@RequestMapping(&/Q&)
&&&&public&String&Q(){
&&&&&&&&return&&redirect:AAA.html&;
&&&&@RequestMapping(&/A&)
&&&&public&void&A(HttpServletRequest&req,&HttpServletResponse&resp)&throws&Exception&{
&&&&&&&&resp.sendRedirect(&AAA.html&);
&&&&@RequestMapping(&/Z&)
&&&&public&void&Z(HttpServletRequest&req,&HttpServletResponse&resp)&throws&Exception&{
&&&&&&&&resp.sendRedirect(&WEB-INF/AAA.html&);
这4个还是访问不到AAA.html&&请问下是该怎么写呢?
WEB-INF底下的页面需要通过转发来访问。
req.getRequestDispatcher(&WEB-INF/AAA.html&).forward(req,&resp)
req.getRequestDispatcher(&WEB-INF/AAA.html&).forward(req,&resp)
&&&&@RequestMapping(&/&)
&&&&public&String&index()&{
&&&&&&&&return&&forward:index.html&;&
&&&&@RequestMapping(&/AAA1&)
&&&&public&String&AAA1()&{
&&&&&&&&return&&forward:WEB-INF/AAA.html&;
&&&&@RequestMapping(&/AAA2&)
&&&&public&void&AAA2(HttpServletRequest&req,&HttpServletResponse&resp)&throws&Exception&{
&&&&&&&&req.getRequestDispatcher(&WEB-INF/AAA.html&).forward(req,&resp);
&&&&@RequestMapping(&/AAA3&)
&&&&public&void&AAA3(HttpServletRequest&req,&HttpServletResponse&resp)&throws&Exception&{
&&&&&&&&req.getRequestDispatcher(&/WEB-INF/AAA.html&).forward(req,&resp);
这样改完发现还是只能访问&index&而&AAA1~3都&显示Whitelabel&Error&Page
话说你的是spring框架,直接返回字符串地址,不就自动转发了么。
话说你的是spring框架,直接返回字符串地址,不就自动转发了么。
听2楼大大配置完(后缀)
spring.view.suffix:&.html
就可以字符串控制跳转了,但是
&&&&@RequestMapping(&/AAA1&)
&&&&public&String&AAA1()&{
&&&&&&&&return&&forward:WEB-INF/AAA.html&;
不管用。。。。。WEB-INF下的页面不行,index.html却可以
话说你的是spring框架,直接返回字符串地址,不就自动转发了么。
听2楼大大配置完(后缀)
spring.view.suffix:&.html
就可以字符串控制跳转了,但是
&&&&@RequestMapping(&/AAA1&)
&&&&public&String&AAA1()&{
&&&&&&&&return&&forward:WEB-INF/AAA.html&;
不管用。。。。。WEB-INF下的页面不行,index.html却可以
测试了下简直无解=&=
用index.html引用WEB-INF下的js文件(单纯的alert();)
F12浏览器开发工具说js也获取不到
又怀疑了下路径是不是正确,我把项目打包成war,在压缩包里看
文件目录结构也没问题
天哪,这到底是哪除了问题呀查看:14373|回复:6
就是说一个web应用下的index.jsp通过controller.java访问web-info下的jsp文件,最好举个例子,代码最好简单一点的,谢啦
最有价值午饭
木有啊!~~为什么要访问WEB-INF下的jsp呢?你认为可以访问到么?
IT瞎掰群:,欢迎你!
中级工程师
Just do it
&a href=&javascript:&jsp:forward page='WEB-INF/xxxx.jsp'/&&&&/a&
在页面上可以这样访问的。
技术再好也入侵不了你的心,是我的技术不够高还是你的心没有打开的权限?
欢迎光临JAVA板块:&&
引用:原帖由 davenzeng 于
14:36 发表
在页面上可以这样访问的。 太感谢了
引用:原帖由 梦朝思夕 于
11:35 发表
放在如web-info下的jsp文件外部是不能直接访问的,但是内部是可以的哦
在项目中,我们也是将jsp放在这个当中比较安全。
不过我使用的是SpringMVC框架,很容易解决的 ... 谢啦。O(∩_∩)O~
中级工程师
Just do it
引用:原帖由 tkz0124 于
16:25 发表
太感谢了 不客气,论坛上就是你帮我,我帮你的。
技术再好也入侵不了你的心,是我的技术不够高还是你的心没有打开的权限?
欢迎光临JAVA板块:&&
助理工程师
如果你的index.jsp是提交到servlet处理的,你可以在servlet下使用绝对路径访问就可以了..
/appname/WEB-INF/***.jsp
这样就可以了WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。 - 雪的心 - 博客园
随笔 - 81, 文章 - 294, 评论 - 0, 引用 - 0
WEB-INF文件夹下除了web.xml外,还存一个classes文件夹,用以放置 *.class文件,这些 *.class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得网站的维护非常方便。web.xml文件为网站部署描述XML文件,对网站的部署非常重要。
Web-Inf文件夹中除了有classes文件夹和一个web.xml文件外、还有lib文件夹(用于存放需要的jar包)(用于配置,比如说用来配置过滤器等。)
WEB_INF 目录的作用
/WEB-INF/web.xml
Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/  包含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中(是该目录不能包含在.jar文件中)。  /WEB-INF/lib/  存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件。
/WEB-INF/src/  源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties  数据库配置文件
/WEB-INF/tags/
存放了自定义标签文件,该目录并不一定为 tags,可以根据自己的喜好和习惯为自己的标签文件库命名,当使用自定义的标签文件库名称时,在使用标签文件时就必须声明正确的标签文件库路径。例如:当自定义标签文件库名称为 simpleTags 时,在使用 simpleTags 目录下的标签文件时,就必须在 jsp 文件头声明为:&%@ taglibprefix="tags" tagdir="/WEB-INF /simpleTags" % &。
/WEB-INF/jsp/
jsp 1.2 以下版本的文件存放位置。改目录没有特定的声明,同样,可以根据自己的喜好与习惯来命名。此目录主要存放的是 jsp 1.2 以下版本的文件,为区分 jsp 2.0 文件,通常使用 jsp 命名,当然你也可以命名为 jspOldEdition 。
/WEB-INF/jsp2/
与 jsp 文件目录相比,该目录下主要存放 Jsp 2.0 以下版本的文件,当然,它也是可以任意命名的,同样为区别 Jsp 1.2以下版本的文件目录,通常才命名为 jsp2。
相当于一个信息包,目录中的文件和目录获得Java 2平台的认可与解释,用来配置应用程序、扩展程序、类加载器和服务  manifest.mf文件,在用jar打包时自动生成。

我要回帖

更多关于 访问web inf下的文件 的文章

 

随机推荐