精华内容
下载资源
问答
  • webapp与WEB—INF的区别

    2020-05-23 10:37:03
    所谓安全目录就是客户端无法访问的目录,只有服务端可以访问,当静态资源放在WEB—INF下面的时候,外部是不能访问的,我们一般通过springmvc配置文件配置资源映射,如下所示: <!-- 资源映射 --> <mvc...

    通常情况下我们的项目结构是将css/js/html放在WEB—INF下面,因为WEB—INF是webapp的安全目录。所谓安全目录就是客户端无法访问的目录,只有服务端可以访问,当静态资源放在WEB—INF下面的时候,外部是不能访问的,我们一般通过springmvc配置文件配置资源映射,如下所示:
     

     <!-- 资源映射 -->
        <mvc:resources location="/WEB-INF/css/" mapping="/css/**"/>
        <mvc:resources location="/WEB-INF/js/" mapping="/js/**"/>

    而webapp则可以通过浏览器直接访问到。

          然而,其实静态资源我们没有必要非得放在WEB—INF下面,因为前端我们就是要展示给客户的;之所以大家会把他放在WEB-INF下面主要原因有两个:

    远古时代的模式会把业务逻辑,数据库连接等敏感信息写在jsp里面,被用户直接访问会有安全问题。  
    现代模式里这个不再成为问题,不应该成为问题。
    jsp是在服务器端运行的,而且通常都需要其他程序支持——比如后台处理好数据再让jsp渲染等,用户直接访问一则没有意义,二则会抛异常,这些都浪费服务器资源。
    备注:

    在web.xml中配置静态资源是不管用的:
     

    <servlet-mapping>     
        <servlet-mapping>     
            <servlet-name>default</servlet-name>  
            <url-pattern>*.jpg</url-pattern>  
            <url-pattern>*.png</url-pattern>
            <url-pattern>*.css</url-pattern>
            <url-pattern>*.js</url-pattern>          
        </servlet-mapping>        

    如果你非要在web.xml中配置资源,那么你需要在Spring.xml中加一个这样的配置:

    <!-- 允许对静态资源文件的访问 -->
    <!--将静态资源交给defaultServlet处理,不给springmvc处理-->
    <mvc:default-servlet-handler/>

     

    展开全文
  • 一般我们开发都把JSP放在webRoot下,但有时为了安全考虑,把它放在WEB-INF下,这是我们访问jsp就需要运到转发forward 有两种方式: 1.struts.xml文件中配置  2.Action中写request.getRequestDispatcher("/WEB-...

    一般我们开发都把JSP放在webRoot下,但有时为了安全考虑,把它放在WEB-INF下,这是我们访问jsp就需要运到转发forward

    有两种方式:

    1.struts.xml文件中配置<forward name="success" path="/WEB-INF/main.jsp" />    

    2.Action中写request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request, response);
                    这两种方式都是服务器读取了该页面内容,并发送到客户端.客户端的地址不变.内容跳转了


    另外在WEB-INF下面的文件需要访问其他目录下的资源,这时候可以忽略WEB-INF这一层。


    展开全文
  • * @Description: WEB-INF中的jsp跳转 * @Company: 个人测试 * @author MrLu * @date 2016-11-14 下午12:13:00 */ @RequestMapping("page") @Controller public class PageController { @...
  • WEB—INF去掉就可以 为什么呢这是 我在应用程序根目录下见了一个test.html文件 开始能直接访问 说明我的配置没问题 但是加了WEB—INF就不能直接访问http://localhost:8080/test.html了显示404错误找不到文件 求...
  • 在六月份启动一个项目的时候,项目组长让jsp放在WEB—INF,当时随口说,这是懒人行为,日后维护人员要遭殃了。接下来,我们看看 放在WebRoot下面和放在WEB-INF下面jsp优缺点: 放在WebRoot下面:优点,程序结构清晰...
    在六月份启动一个项目的时候,项目组长让jsp放在WEB—INF,当时随口说,这是懒人行为,日后维护人员要遭殃了。接下来,我们看看  放在WebRoot下面和放在WEB-INF下面jsp优缺点:
    放在WebRoot下面:优点,程序结构清晰,便于编码和维护;缺点,要加过滤器。
    放在WEB-INF下面:优点,不用过滤器;缺点,打乱了程序结构,编码和维护麻烦点。


    webroot其实是一个名字而已,在部署后是看不到的,访问的时候在url里肯定也是没有的,当然webroot也可以换成别webcontent等都可以。
    如果把这些JSP页面文件移到WEB-INF 目录下,在调用页面的时候就必须把"WEB-INF"添加到URL中。

    我们知道,实现页面的跳转有两种方式,一种是通过redirect的方式,一种是通过forward的方式。redirect方式的跳转,系统会在一个新的页面打开要跳转的网页;而forward方式跳转,系统会在原来的页面上打开一个要跳转的网页。所以放到WEB-INF目录下的文件是不允许采用redirect方式的跳转来访问的,如下

    例1:/test/test1.jsp文件

    <html>

    <body>

    <form name="testform" action="/WEB-INF/jsp/test/test.jsp">

    <input type = "submit" value="test">

    </form>

    </body>

    </html>

    上面这段语句只有一个名为test的按钮,如果单击这个按钮是,系统就会跳转到/WEB-INF/jsp/test/test.jsp,它的代码如下:

    例2:/WEB-INF/jsp/test/test.jsp文件

    <html>

    <body>

    跳转成功!

    </body>

    </html>

    事实上,这个跳转是无法成功的,点击按钮后,IE会报“403 Forbidden”的错误。


    而forward方式的跳转则可以成功,如下代码:

    例3:/test/test2.jsp文件

    <html>

    <body>

    <form name="testform">

    <jsp:forward page = "/WEB-INF/jsp/test/test.jsp" />



    </form>

    </body>

    </html>

    请注意上面红色的语句,这段就是通过forward的形式来访问/WEB-INF/jsp/test/test.jsp文件,在IE输入地址http://localhost/test1/test2.jsp,网页上就显示“跳转成功!”的信息了,这表示放到了WEB-INF可以通过forward的方式来访问。


    个人认为,像这种方式的可能不大时候采用一般jsp进行编程的系统,因为很多页面上都有采用submit这样的方式来进行跳转,但这种方式却非常适合采用struts结构的系统。因为采用这个结果大多是先跳转到一个Action类,然后在Action类进行相关处理后(比如说获取相关的信息保存到session中,进行有效性的判断),然后再forward到另外一个页面,这样放到WEB-INF中的jsp代码可以被正常访问,也防止了对这些页面的直接访问,下面我来举例说明。

    下面我们先对配置文件struts-config.xml进行配置,如下:

    例4:WEB-INF/struts-config.xml文件

    <?xml version="1.0" encoding="ISO-8859-1" ?>

    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

    <struts-config>

    <!-- ========== Action Mapping Definitions ============================== -->

    <action-mappings>

    <action path="/test"type=" test.TestAction" scope="request">

    <forward name="test" path="/WEB-INF/jsp/test/test.jsp"/>

    </action>

    </action-mappings>

    </struts-config>

    上面这个配置非常简单,请看红色部分,这里定义了一个action类,它的路径为/test,所对应的类为test.TestAction.java,它都一个跳转页面,别名为test,对应的页面为/WEB-INF/jsp/test/test.jsp。

    下面我们对例1的内容进行修改,使其跳转到/test去。

    例5:修改后的/test/test1.jsp文件

    <html>

    <body>

    <form name="testform" action="/test">

    <input type = "submit" value="test">

    </form>

    </body>

    </html>

    这样我们在IE中访问http://localhost/test/test1.jsp,然后点击test按钮,页面就会跳转到test.TestAction.java这个类来,下面是这个类的内容。

    package test;
    import javax.servlet.http.*;

    import org.apache.struts.action.ActionMapping;

    import org.apache.struts.action.Action;

    import org.apache.struts.action.ActionForm;

    import org.apache.struts.action.ActionForward;


    public class TestAction extends Action

    {

    public ActionForward perform(ActionMapping mapping,ActionForm form, HttpServletRequest req,

    HttpServletResponse res)

    {

    return mapping.findForward("test");

    }


    }

    可以看到,这个类是继承Action类的,所有的控制类都必须继承Action类,这个类里面有一个perform方法,跳转到这个类都是从这个方法进行访问的(新版本可以是execute方法),现在这个方法里面只有一条语句,这句话的意思就是跳转到一个别名为test的页面,也就是/WEB-INF/jsp/test/test.jsp页面,这样我们点击test按钮后,IE就会显示“跳转成功!”这条信息,这表示系统允许这样的跳转

    这说的是struts中可以这么配置,如果没有struts的话,单纯servlet处理跳转,那么只能写成这种形式的了

    request.getRequestDispatcher("WEB-INF/jsp/test/test.jsp").forward(request, response);

    博友:http://javacrazyer.iteye.com/blog/759991
    展开全文
  • 1 WEB-INF中jsp页面中访问 如果是把 jsp 放在 WebContent 的目录下,浏览器可以直接访问 项目名/.jsp;这种方法页面的数据不安全; jsp 放在 WEB-INF 目录下,页面数据比较安全。如果想访问,只能通过 Servlet 转发...

    1 WEB-INF中jsp页面中访问

    • 如果是把 jsp 放在 WebContent 的目录下,浏览器可以直接访问 项目名/.jsp;这种方法页面的数据不安全;
    • jsp 放在 WEB-INF 目录下,页面数据比较安全。如果想访问,只能通过 Servlet 转发。
    展开全文
  • 点击左上角Project Explorer右面的 ▼ View Menu 点击Filters and Customization… 找到 Java output floders,把前面的✓(对勾)去掉即可。 刷新WEB-INF文件夹即可看到。 ...
  • 原因是web—inf中lib文件夹下面的javax.servlet.jar与common中servlet.jar包冲突。 我出现这种情况是tomcat版本不一样 解决方法:将web—inf中lib文件夹下面的javax.servlet.jar包的删除  ...
  • 每天坚持更新五道web前端开发面试题;点点关注,才会不迷路哦~~~~~041.Jsp九大内置对象答案:1、request对象 request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于...
  • 第一种解决办法: 右击项目名称—>点击Java EE Tools—>点击Generate Deployment Descriptor Stub 第二种解决办法: 创建项目时,不要直接点finnishi,点击next,然后勾上下图标记处即可 ...
  • 关于Struts框架下由浏览器访问WEB-INF目录下的jsp文件 技术小白、初来乍到、请多指教 [捂脸~~] WEB-INF目录下的jsp文件,在浏览器中是不能直接访问的,浏览器没有访问的权限。 在Struts框架下必须用action来实现页面...
  • org.apache.jasper.JasperException: PWC6336: Illegal TLD path /WEB-INF/tags/welcome.tld, must not start with "/WEB-INF/tags" at org.apache.jasper.compiler.TldLocationsCache....
  • 1、在web-info下新奸classess文件夹2、右键项目 3、选择java build path —————————————————————————————————————————————————–java架构师项目实战,高并发集群...
  • FineReport集成到web项目

    2017-03-06 15:26:00
    找到FineReport的安装目录里的WEB—INF下,也就是D:\fineReport\FineReport_8.0\WebReport\WEB-INF\lib,其中D盘是的我安装目录。 将丢进web项目WEB—INF下的lib中。 然后回到D:\fineReport\FineReport_8.0\...
  • java web 笔记1

    2019-05-29 20:31:24
    浏览器(客户端)可以直接访问 WebContent中的文件,但是不能直接访问WEB—INF中的文件。 原因在于WEB—INF中的权限比较高,只能通过请求转发来访问。 跳转有两种方式(请求转发和重定向)。请求转发可以访问,重定向...
  • 假设在WebRoot下有一个文件夹:config,里面有配置文件conf.properties内容为:ip=127.0.0.1port=8080.code://获取项目部署的目录到WEB—INF的上一级private String getClassPath(){String st...
  • 需求:在Web项目中,java类读取WebRoot目录下的配置文件,例如在Dao层读取,没有request,该如何读取?假设在WebRoot下有一个文件夹:config,里面... //获取项目部署的目录到WEB—INF的上一级 private String getCl
  • Tuscany SCA 发布Web Service

    千次阅读 2014-03-05 10:34:59
    1. 新建动态web项目,指定classpath编译后的存储路径为WebContent/WEB—INF/classes。(可右键项目,属性,Java Build Path,Source修改)将Tuscany的jar包都复制到webContent/Web-INF/lib下(此处使用的Tuscany
  • 到今天为止Servlet、Hibernate、Struts、Spring及Struts-Hibernate整合、Spring-Hibernate整合和Struts-Spring-Hibernate整合(SSH)全部学习完了,在这里把...当新建一个Servlet时就对应在WEB—INF文件夹下面的web.x
  • String savePath = req.getSession().getServletContext().getRealPath("").toString()+ "/WEB-INF/pdf/";
  • BOS物流项目05bos-web模块配置之strutsxml 一WEB-INF 下的jsp无法直接访问 二strutsxml配置 三strutsxml位置 四源码下载BOS物流项目05———...一、WEB-INF 下的jsp无法直接访问我们的放在 WEB-INF 下的jsp文件是无法直
  • Tomcat结构目录:Tomcat结构目录:bin:conf: 非常重要的文件,其中有四个最为重要的文件:lib:log:temp:webapps:work:一个标准的web应用的目录结构:WEB—INF:calsses:lib:web.xml:参考: Tomcat结构目录:...
  • 在UserManager/web/WEB-INF/下,新建lib文件夹????,用于存放离线jar包。 在Project Setting下Modules中选择项目,添加jar包,选择所创建的文件夹????。 选择所创建的lib文件夹,后选择文件类型Jar Di
  • 两个前提: 创建项目目录结构和web.xml文件 下载并配置Tomcat环境 ...1.3 创建webapps和WEB-INF目录: src—>main—>new—>directory—>webapps—>new—>directory—>WEB-INF 1.4 File...
  • java Web 个人学习记录

    2012-05-30 22:02:31
    又是一天的java web学习。...1.首先查看tomcat相应项目中的WEB—INF/classes 中有没有生成该类的class文件,若没有,即该类有语法错误,没有编译成功。若有进行步骤2 2.如果该类是数据库工具类,很有可
  • JavaEE学习之路—–配置描述符web.xml

    千次阅读 2016-10-11 22:30:29
    JavaEE学习之路—–配置描述符web.xml 在Servelet2.5规范之前每个Java Web必须有一个web.xml文件,且必须放在WEB-INF文件夹下。在Java WebWEB-INF文件夹是一个特殊的文件夹,Web容器会包含该文件夹下的内容,...
  • 但是WEB-INF中的文件,无法通过客户端(浏览器)直接访问,原因是权限较高。只能通过请求转发来访问。 注意:并不是任何的内部跳转都能访问WEB-INF;原因是跳转有两种方式:请求转发,重定位。 ...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 297
精华内容 118
关键字:

web—inf