【servlet】客户端是否可以访问到WEB-INF下的jsp文件

一般情况下(不考虑出现安全问题被入侵,那样啥都能访问到),WEB-INF下的jsp文件单凭浏览器端请求时访问不到的。

想访问的话需要通过服务端servlet的转发。

下面通过转发和重定向的尝试来观察访问情况。

引申:dlut 教务处的网站改一下url就可以访问到所有人的成绩,个人认为jsp文件一定是在WEBRoot根目录下,而不是在WEB-INF目录下

至于为什么看出是jsp文件(后缀名经过了隐藏)...看到刚登陆时的action...就知道是struts2没跑了....

TestServlet.java

package com.balfish.servlet;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.jsp.PageContext;

public class TestServlet extends HttpServlet{

    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        doPost(req, resp);
    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        //下面的转发方式可以,内部转发,可以访问到WEB-INF下的jsp页面
        //req.getRequestDispatcher("/WEB-INF/page/index.jsp").forward(req,resp);

        //下面的转发方式不可以,相当于重新向浏览器发送一次请求,那样相当于用户级别的访问
        //提示错误:    The requested resource is not available.
        resp.sendRedirect(req.getContextPath() + "/WEB-INF/page/index.jsp");

        //以下面的url来访问index.jsp,可以看到只要配好 web.xml 里的 url-pattern 即可  可以做url欺骗
        //http://localhost:8080/myWeb/1.txt
    }

    public void destroy() {
        super.destroy();
    }

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

}

web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

    <servlet>
        <servlet-name>test1</servlet-name>
        <servlet-class>com.balfish.servlet.TestServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>test1</servlet-name>
        <url-pattern>/1.txt</url-pattern>
    </servlet-mapping>

</web-app>

WEB-INF 下的page下的index.jsp用模板即可,只为说明问题

时间: 2024-08-13 07:25:47

【servlet】客户端是否可以访问到WEB-INF下的jsp文件的相关文章

读取web应用下的资源文件(例如properties)

1 package gz.itcast.b_resource; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 import java.util.Properties; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.HttpServlet; 9 import javax.servlet.http.HttpServletRe

关于springMVC框架访问web-inf下的jsp文件

问题:springMVC框架访问web-inf下的jsp文件,具体如下: 使用springMVC,一般都会使用springMVC的视图解析器,大概会这样配置 <property name="prefix" value="/WEB-INF/jsp/"></property> <property name="suffix" value=".jsp"></property> 当我的co

Web环境下applicationContext.xml文件配置

在web环境下(web.xml)如何配置applicationContext.xml文件 <listener>  <listener-class>   org.springframework.web.context.ContextLoaderListener  </listener-class> </listener> 或: <servlet>  <servlet-name>context</servlet-name>  

web站点下robots.txt文件的书写与注意事项

Robots协议(爬虫协议)是国际互联网界通行的道德规范,一般是在一个web站点的根目录下写的robots.txt文件,用来告知搜索引擎哪些页面能被抓取,哪些页面不能被抓取,可以屏蔽一些网站中比较大的文件,如:图片,音乐,视频等,节省服务器带宽:可以屏蔽站点的一些死链接.方便搜索引擎抓取网站内容:设置网站地图连接,方便引导蜘蛛爬取页面. 通常的写法格式如下: User-agent: *  #这里的*通配符代表搜索引擎种类,*就是匹配所有的蜘蛛 Allow: / Disallow: #以上2个都表

nginx的web目录下处理中文文件和文件夹以及编码格式问题

有时候网站的根目录下有中文文件名或者文件夹时,在客户端进行访问这些相关文件时就会  出现显示的问题. 下面尝试了一些方法解决,可用. [[email protected] ~]# echo $LANGen_US.UTF-8[[email protected] ~]# cat /etc/sysconfig/i18nLANG="en_US.UTF-8"SYSFONT="latarcyrheb-sun16"#LANG="zh_CN.GB18030"#L

Apache 欢迎页面也可访问到,文件目录下的其他文件却访问不到

下最新的PHP7竟然不兼容discuz3.2,所以只能无奈用之前虚拟机的PHP5做实验. /etc/init.d/mysqld start 启动3306端口 apachectl  start 启动80端口 在客户端 192.168.1.104  可以出现Apache的欢迎页面但是192.168.1.104/1.txt或者其他的192.168.1.104/info.php 都是提示:Not Found  The requested URL /fff/123.txt was not found on

eclipse中web工程新建jsp文件报错:The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path

web工程中新建jsp文件提示:The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 解决方案: 1.右击web工程->属性或Build Path->Java Build Path->Libraries-> Add Libray...->Server Runtime ->JBoss 7.1 Runtime   2.切换到Java Bui

Node.js(window)基础(1)——用cmd命令行访问某一文件夹下的js文件

一.安装,从官网上下载安装,安装基本一直点击下一步就行.注意:node.js基于Python的,安装node.js之前电脑上要安装Python,最好是Python2.7或2.6. 二.cmd进入命令行,输入node -v,如果显示node.js版本信息,就是安装成功. 参考http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450141843488beddae2a1044c

访问WEB-INF里面的jsp文件

WEB-INF目录下的jsp文件,在浏览器中是不能直接访问的.(没有访问的权限) 如果将jsp文件放入WEB-INF目录下,将不能访问. 比如在jsp页面中直接写 1 <a href="/WEB-INF/content/index.jsp"> 那么将不能访问. 在struts中必须用action来实现页面的跳转,才能访问WEB-INF里面的jsp文件. 将上面的jsp页面中的链接写为: <a href=index.action> 在struts配置文件中添加这么