-
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放在WEB—INF下访问的问题
2015-11-27 14:36:25一般我们开发都把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这一层。
-
SSM框架下,a标签跳转不了WEB—INF里面的jsp文件夹里的文件
2017-05-14 14:38:44* @Description: WEB-INF中的jsp跳转 * @Company: 个人测试 * @author MrLu * @date 2016-11-14 下午12:13:00 */ @RequestMapping("page") @Controller public class PageController { @... -
加了WEB—INF文件夹后就无法访问应用根目录下的html文件了
2012-09-10 06:39:54把WEB—INF去掉就可以 为什么呢这是 我在应用程序根目录下见了一个test.html文件 开始能直接访问 说明我的配置没问题 但是加了WEB—INF就不能直接访问http://localhost:8080/test.html了显示404错误找不到文件 求... -
WebRoot和WEB-INF下存放JSP页面的区别
2010-11-29 09:27:56在六月份启动一个项目的时候,项目组长让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 -
10 — 网上书城(7)— WEB-INF中jsp页面中访问
2020-01-14 11:17:391 WEB-INF中jsp页面中访问 如果是把 jsp 放在 WebContent 的目录下,浏览器可以直接访问 项目名/.jsp;这种方法页面的数据不安全; jsp 放在 WEB-INF 目录下,页面数据比较安全。如果想访问,只能通过 Servlet 转发... -
eclipse—WEB-INF目录下不显示classes文件夹
2019-11-23 23:02:40点击左上角Project Explorer右面的 ▼ View Menu 点击Filters and Customization… 找到 Java output floders,把前面的✓(对勾)去掉即可。 刷新WEB-INF文件夹即可看到。 ... -
WEB-INF\lib\javax.servlet.jar) - jar not loaded. See
2011-03-14 12:37:01原因是web—inf中lib文件夹下面的javax.servlet.jar与common中servlet.jar包冲突。 我出现这种情况是tomcat版本不一样 解决方法:将web—inf中lib文件夹下面的javax.servlet.jar包的删除 ... -
idea中web application的输出只有web-inf_web前端—面试题汇总(041-045)
2020-12-03 10:47:42每天坚持更新五道web前端开发面试题;点点关注,才会不迷路哦~~~~~041.Jsp九大内置对象答案:1、request对象 request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于... -
web项目创建后WEB-INF下面没有web.xml?
2019-12-04 14:04:12第一种解决办法: 右击项目名称—>点击Java EE Tools—>点击Generate Deployment Descriptor Stub 第二种解决办法: 创建项目时,不要直接点finnishi,点击next,然后勾上下图标记处即可 ... -
关于Struts框架下由浏览器访问WEB-INF目录下的jsp文件
2020-03-29 12:11:38关于Struts框架下由浏览器访问WEB-INF目录下的jsp文件 技术小白、初来乍到、请多指教 [捂脸~~] WEB-INF目录下的jsp文件,在浏览器中是不能直接访问的,浏览器没有访问的权限。 在Struts框架下必须用action来实现页面... -
cann't visit the jsp which use customized taglib that the *.tld file located WEB-INF/tags
2020-12-09 11:03:13org.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.... -
JAVA Eclipse(1)---把eclipse默认的编译文件夹build改为web-inf/classess文件夹
2017-10-14 11:27:161、在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中的权限比较高,只能通过请求转发来访问。 跳转有两种方式(请求转发和重定向)。请求转发可以访问,重定向... -
java读取webroot下的文件_Web项目中java类读取WebRoot目录下的配置文件
2021-02-27 19:00:13假设在WebRoot下有一个文件夹:config,里面有配置文件conf.properties内容为:ip=127.0.0.1port=8080.code://获取项目部署的目录到WEB—INF的上一级private String getClassPath(){String st... -
Web项目中java类读取WebRoot目录下的配置文件
2018-03-09 09:33:56需求:在Web项目中,java类读取WebRoot目录下的配置文件,例如在Dao层读取,没有request,该如何读取?假设在WebRoot下有一个文件夹:config,里面... //获取项目部署的目录到WEB—INF的上一级 private String getCl -
Tuscany SCA 发布Web Service
2014-03-05 10:34:591. 新建动态web项目,指定classpath编译后的存储路径为WebContent/WEB—INF/classes。(可右键项目,属性,Java Build Path,Source修改)将Tuscany的jar包都复制到webContent/Web-INF/lib下(此处使用的Tuscany -
[原]Java web学习系列之 Java web开发中的servlet类
2014-10-23 20:57:55到今天为止Servlet、Hibernate、Struts、Spring及Struts-Hibernate整合、Spring-Hibernate整合和Struts-Spring-Hibernate整合(SSH)全部学习完了,在这里把...当新建一个Servlet时就对应在WEB—INF文件夹下面的web.x -
JAVA X项目得到WEB—INFO上级目录路径
2015-09-06 17:27:05String savePath = req.getSession().getServletContext().getRealPath("").toString()+ "/WEB-INF/pdf/"; -
BOS物流项目05———bos-web模块配置之struts.xml
2018-01-01 13:12:38BOS物流项目05bos-web模块配置之strutsxml 一WEB-INF 下的jsp无法直接访问 二strutsxml配置 三strutsxml位置 四源码下载BOS物流项目05———...一、WEB-INF 下的jsp无法直接访问我们的放在 WEB-INF 下的jsp文件是无法直 -
Tomcat的目录结构以及web应用的目录结构
2018-10-29 21:50:45Tomcat结构目录:Tomcat结构目录:bin:conf: 非常重要的文件,其中有四个最为重要的文件:lib:log:temp:webapps:work:一个标准的web应用的目录结构:WEB—INF:calsses:lib:web.xml:参考: Tomcat结构目录:... -
WEB项目搭建 — eg用户管理系统
2020-07-14 01:04:06在UserManager/web/WEB-INF/下,新建lib文件夹????,用于存放离线jar包。 在Project Setting下Modules中选择项目,添加jar包,选择所创建的文件夹????。 选择所创建的lib文件夹,后选择文件类型Jar Di -
JavaWeb—在IntelliJ IDEA环境下创建Web项目并部署到Tomcat
2019-05-13 22:13:19两个前提: 创建项目目录结构和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:29JavaEE学习之路—–配置描述符web.xml 在Servelet2.5规范之前每个Java Web必须有一个web.xml文件,且必须放在WEB-INF文件夹下。在Java Web中WEB-INF文件夹是一个特殊的文件夹,Web容器会包含该文件夹下的内容,... -
jsp学习—在Eclipse中开发web项目
2020-04-30 15:37:01但是WEB-INF中的文件,无法通过客户端(浏览器)直接访问,原因是权限较高。只能通过请求转发来访问。 注意:并不是任何的内部跳转都能访问WEB-INF;原因是跳转有两种方式:请求转发,重定位。 ...