访问WEB-INF目录中的JSP文件

方法1:
本来WEB-INF中的jsp就是无法通过地址栏访问的.所以安全.如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了。如下:

[html] view plaincopy

  1. <servlet>
  2. <servlet-name>runtain</servlet-name>
  3. <jsp-file>/WEB-INF/INF.jsp</jsp-file>
  4. </servlet>
  5. <servlet-mapping>
  6. <servlet-name>runtain</servlet-name>
  7. <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的访问方式,

[html] view plaincopy

  1. <servlet-mapping>
  2. <servlet-name>jsp</servlet-name>
  3. <url-pattern>*.jsp</url-pattern>
  4. </servlet-mapping>

于是在下面添加

[html] view plaincopy

  1. <servlet-mapping>
  2. <servlet-name>jsp</servlet-name>
  3. <url-pattern>*.htm</url-pattern>
  4. </servlet-mapping>
  5. <servlet-mapping>
  6. <servlet-name>jsp</servlet-name>
  7. <url-pattern>*.html</url-pattern>
  8. </servlet-mapping>

结果:一切OK,访问a.htm,和a.html在work/web-inf/下者有a$htm.class,a$html.class生成

时间: 2024-08-27 10:54:52

访问WEB-INF目录中的JSP文件的相关文章

【转载】访问WEB-INF目录中的JSP文件

转自:http://blog.csdn.net/eidolon8/article/details/7050114 方法1:本来WEB-INF中的jsp就是无法通过地址栏访问的.所以安全.如果说你要访问这个文件夹中的jsp文件需要在项目的web.xml文件中去配置servlet格式差不多的配置就ok了.如下: [html] view plaincopy <servlet> <servlet-name>runtain</servlet-name> <jsp-file&

[Perl系列—] 1. 清空目录及目录中的所有文件

Perl 删除单个文件和目录 Perl 删除单个文件的语法是: unlink 举例来说, 删除 D 盘 temp 目录下的 test.txt 的写法就是: unlink "D:/temp/test.txt" 如果要删除这个目录中所有的文件的话(不包含子目录) unlink glob "D:/temp/*" Perl 删除单个目录的语法是:  rm 类似, 删除上面的temp 目录的写法就可以是: rmdir "D:/temp" 看起来很简单, 但

/proc 目录中的主要文件的说明

/proc 目录中的主要文件的说明 文件或目录名称 描 述 apm 高级电源管理信息 cmdline 文件给出了内核启动的命令行 CPUinfo 中央处理器信息 devices 可以用到的设备(块设备/字符设备) dma 显示当前使用的 DMA 通道 filesystems 核心配置的文件系统 ioports 当前使用的 I/O 端口 interrupts 文件的每一行都有一个保留的中断 kcore 系统物理内存映像 kmsg 核心输出的消息,被送到日志文件 mdstat 文件包含了由 md 设

在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world

一.题目 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world.内核版本要求2.6.18 ? 二.实验环境 物理主机:win7 64bit, i5双核,8G内存 虚拟机:Vmware Workstation 10.0.2 虚拟主机: CentOs-5.11,内核2.6.18 ? 三.实验思路 在着手解决问题之前,我在网上查阅了一些资料,大多是关于模块的介绍.linux内核采用的是模块化编程,这样可以很容易的添加或

通过assets像安卓程序目录中导入数据库文件出现错误的解决办法

错误提示如下,下面的错误信息 08-13 07:36:31.396: W/System.err(9814): java.io.IOException 08-13 07:36:31.416: W/System.err(9814):  at android.content.res.AssetManager.readAsset(Native Method) 08-13 07:36:31.416: W/System.err(9814):  at android.content.res.AssetMana

列出一个目录中的所有文件

file/ls1.c 1 #include "apue.h" 2 #include <dirent.h> 3 int 4 main(int argc, char *argv[]) 5 { 6 DIR *dp; 7 struct dirent *dirp; 8 if (argc != 2) 9 err_quit("usage: ls directory_name"); 10 if ((dp = opendir(argv[1])) == NULL) 11 e

dos命令删除代码目录中的.svn文件

当需要删除代码目录中的.svn文件时,可以用一句dos命令轻松搞定 for /r "删除.svn的目录" %i in (.svn) do rd /s /q %i

将一个目录中所有PDF文件合并到一个新的PDF文件中

将一个目录中所有PDF文件合并到一个新的PDF文件中 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System;using System.Collections.Generic;using System.Text;using Syst

找出目录中相同的文件

这个功能,笔者是使用python实现.执行脚本后,根据提示手动输入目录的路径.脚本计算该目录及其子目录中所包含文件的md5值,比对md5值,从而打印出md5值相同的文件路径. python完整脚本如下: # -*- coding: utf-8 -*- def calmd5(filename): import hashlib f = open(filename,'rb') m = hashlib.md5() m.update(f.read()) hash = m.hexdigest() retur