Web项目中关于WEB-INF目录的各种问题

LDO稳定性分析 根据补偿方式和拓扑结构的不同,三个极点之间的相互位置有可能发生变化,但 是 LDO 通常采用较大的输出电容 Cout,以及较大的调整管也会导致较大的 Cpar, 所以 p1、p2 通常位于较低的频率处,而 p3 和 z1 则由于 Resr较小会位于较高的频 率处。不过幸运的是,对于较大的 Cout来说,只要选择合适的 Resr,就可以将左半平面零点 Z1 的频率降低,甚至使 Z1 进入单位增益带宽内,左半平面零点的进入将对相位有所改善,这不仅可以消除振荡的风险,还可以在单位增益频率处得到较好的相位裕度。 阅读详情

一、WEB-INF是什么,有什么限制

WEB-INF下面的内容都是只能由服务器级别才能访问,客户端并不能访问

什么是客户端级别?什么是服务器级别呢?

转发:就是服务器级别,浏览器的地址不会变,因为,客户端发送一个请求,服务器受理之后,发现要请求内容还要再去别的请求,那么转发就是服务器自己去处理完成。不麻烦客户端(浏览器)了,所以客户端上面的地址栏不会改变。

重定向:就是客户端级别的。服务器收到请求后,发现还要去请求别的内容,但是服务器自己不想处理,那么就告诉客户端,你自己去处理吧,那么客户端就去请求那个别的内容了。所以客户端(浏览器)地址栏就会改变了。

这个我在servlet请求转发与重定向的区别及页面跳转与传值中有详细介绍

 

二、WEB-INF能做什么?为什么需要它?

在web项目中,为了安全,可能需要把jsp文件放在WEB-INF目录下,这样如果我们的页面中出现超链接a标签或者js的location.href去直接转向到WEB-INF下的某一个jsp页面,那么就会引用不到,因为这样的请求方式是客户端的请求,而WEB-INF页面只对服务端开放,对客户端是不可见的。这时候我们可以使用action,来进行转向,我们先去请求一个action,然后由这个action分发到这个WEB-INF下的页面就可以了。我们可以自己定义一个类似struts1的DispatcherAction的一个action来分发页面。

 

由于WEB-INF下对客户端是不可见的,所以相关的资源文件,如css,javascript和图片等资源文件不能放在WEB-INF下,那么如何从WEB-INF下引用非WEB-INF下的文件,以及js,html的frame的框架如何去访问WEB-INF下的jsp呢?

下面对WEB-INF目录的一些问题进行详细说明:

以一个项目为例:

如下这样一个代码目录:我们把除index.jsp外其他的jsp文件放在WEB-INF下,把css,javascript,图片放在了webRoot(WebContent)目录下,然后main.jsp是一个frame的html框架,包含了main1.jsp和main2.jsp两个文件。

 

1、index.jsp页面访问css,js,图片等文件的时候,自然不用说,因为它不在WEB-INF下,正常的访问即可:

<link href="css/login_css.css" rel="stylesheet" type="text/css">  
  
<script type="text/javascript" src="js/login_js.js"></script>  
  
<img alt="" src="image/1.jpg">  

 

2、register.jsp页面去访问css,js和图片的时候,也是不需要添加WEB-INF目录的,也就是忽略WEB-INF目录,访问的时候和index.jsp页面所在的路径访问资源文件是一样的:

<link href="css/register_css.css" rel="stylesheet" type="text/css">  
  
<script type="text/javascript" src="js/register_js.js"></script>  
  
<img alt="" src="image/2.jpg">  

 

3、register.jsp页面去转向index.jsp页面,即注册页面有一个链接,转向到登录界面,由于index.jsp页面没有在WEB-INF下,所以可以直接访问index.jsp页面的路径,

register.jsp:

<tr>  
    <td></td>  
    <td colspan="2" style="float: left; ">  
        <button type="button" >注册</button>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
  
        <button type="button"  onclick="goLogin()">去登录</button>  
    </td>  
</tr>  

在register.jsp页面中定义了一个botton,然后响应一个onclick事件,

我们在register_js.js中定义这个goRegister ()的js事件:

regitster_js.js:

function goLogin(){  
    location.href="index.jsp";  
}  

这样就可以访问到WebContent目录中的index.jsp页面了。

 

 4、index.jsp(登录页面)有一个链接,指向register页面,如果点击链接,就跳转到register.jsp中进行注册,因为register.jsp在WEB-INF下,所以不可以直接使用a标签去访问或者js的location.href去访问WEB-INF路径下的文件:

这样两种方式都是直接请求了WEB-INF路径,都是无法跳转的。

<a href="WEB-INF/register/register.jsp">去注册</a>

.......

<script>
function goRegister(){    
    location.href="WEB-INF/register/register.jsp";  
}  
</script>

我们可以建立一个action,struts的action中没有DispatcherAction,但是我们可以通过通配符来让一个action的不同方法返回不同的页面,然后我们去请求这个action中的相应方法即可由这个action从服务器端请求到WEB-INF下的页面了

下面详细说明如果进行自定义的分发action来进行页面的分发:

 DispatcherAction.java:

package com.yun.test.webinf.action;  
  
import com.opensymphony.xwork2.ActionSupport;  
publicclass DispatcherAction extends ActionSupport{  
    public String goRegister(){  
        return"goRegister";
    }  
}  

 这个action中,我们定义了一个goRegister的方法,这个方法没有任何逻辑代码,只是返回一个字符串,然后在struts.xml中我们让这个字符串指向我们要访问的WEB-INF下的register.jsp页面:

struts.xml:

<action name ="dispatcher" class="com.yun.test.webinf.action.DispatcherAction" >  
    <result name ="goRegister">WEB-INF/register/register.jsp</result >  
    <result name ="input">/index.jsp</result >  
</action >  

 然后我们可以在页面中进行请求DispatcherAction的goRegister方法,然后这个action的goRegister方法就会把页面转向到WEB-INF下的register.jsp页面了

当然,也可以直接在页面中使用a标签来请求这个action的goRegister方法

<a href="dispatcher!goRegister.action">去注册</a>  

这样我们就可以通过action的转发,成功的请求道WEB-INF下的jsp文件了。 

 

5、同在WEB-INF目录下的register.jsp和main.jsp中怎么跳转呢?我们会在register.jsp中提交表单,然后在action中进行处理,如果注册成功,会跳转到main页面,这时的跳转也会涉及到WEB-INF目录,因为目标路径main.jsp也在WEB-INF下,所以我们在跳转的时候也必须写上WEB-INF的目录路径才可以,而且必须是请求分发,而不能是redirct的方式。

 

 

总结:

  1. 把页面资源文件只能放在WebContent目录内,,如 CSS,JS,image等.不能放在WEB-INF下,因为WEB-INF是对客户端隐藏的,所以放在WEB-INF下会造成页面的布局等文件引用不到的情况。
  2. 页面文件一般放在WEB-INF目录下面,这样可以限制访问,提高安全性.如JSP,html文件,放在WEB-INF目录下就可以避免客户端直接在地址栏上输入路径进行访问了。基于不同的功能 ,把JSP 放置在WEB-INF下的不同的目录中。
  3. 只能用转向方式来访问WEB-INF目录下的JSP,不用采用重定向的方式请求该目录里面的任何资源。
  4. 转向方式:
    转发

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

    的方式都是服务器读取了该页面内容,并发送到客户端的,客户端的地址不变,然后内容跳转了。这样的方式是可以访问到WEB-INF目录下的jsp文件的。

    重定向

    response.sendRedirect("WEB-INF/main/main2.jsp ");

    都属于重定向的方式,重定向的含义就是服务器把地址发给客户端,让客户端去访问,这样还是在客户端访问的WEB-INF目录,所以是无法访问到WEB-INF目录下的jsp文件的。

C# 调用高德地图关键词 API 今天我们要一起探索如何使用 C# 来调用高德地图的关键词搜索 API,从而实现精准的地理位置搜索功能。高德地图的关键词搜索 API 可以帮助我们轻松地实现这一点,它能够返回一系列匹配关键词的地点坐标和其他相关信息。通过简单的几行 C# 代码,我们就实现了调用高德地图关键词搜索 API 的功能。接下来,我们将在一个 C# 控制台应用中实现调用高德地图关键词搜索 API 的功能。此外,如果要在生产环境中使用,还需要考虑安全性问题,例如不要在客户端暴露 API 密钥。🔥关注墨瑾轩,带你探索编程的奥秘! 阅读详情

相关推荐

Windows11家庭版开启虚拟化与WSL安装操作手册

Windows 11 家庭版完全支持 WSL 2,无需升级到专业版即可享受 Linux 开发环境。通过本手册介绍的步骤,您可以顺利安装和配置 WSL,并掌握系统更新后的维护技巧。WSL 为开发者提供了在 Windows 环境下使用 Linux 工具链的便利,尤其适合需要跨平台开发的场景。随着使用深入,您会发现 WSL 生态系统的强大之处,它不仅能提高开发效率,还能让 Windows 用户体验到 Linux 的强大功能。建议定期查看微软官方文档,了解 WSL 的最新功能和最佳实践。

m0_54846764的博客 3023

关于WEB-INF目录及Tomcat部署方式、原理的简单理解

个人学习所用,有不足或错误之处欢迎指正和补充! 前言: 在学习servlet相关知识时,需要用到tomcat做容器,而在部署本地工件时可能会遇到一些问题;而学习的

m0_68988603的博客 2万+

FT601Q芯片深度解析:从USB3.0引脚定义到FPGA FIFO协议实战选型

本文深入解析FT601Q芯片在USB3.0接口设计与FPGA协议栈开发中的应用,详细介绍了USB3.0引脚定义、FT601Q芯片架构、245同步FIFO模式及硬件设计要点,帮助工程师实现高速数据传输系统。

weixin_30607659的博客 447

WEB-INF 基础知识

0x00 前言 对WEB-INF进行一个简单的了解。 0x01 正文 WEB-INF是java的WEB应用的安全目录。 1.WEB-INF目录 WEB-INF/web.xml web应用程序配置文件,描述了servlet和其他的应用组件配置及命名规则。 WEB-INF/classes 包含了站点所有用的class文件,包括servlet class和非servlet class WEB-INF/...

王嘟嘟的博客 7251

微信聊天记录解密,必须是root的手机

手机上安装x-plore软件,将/data/data目录的相关EnMicroMsg.db auth_info_key_prefs.xml拷贝到/storge/emulated/0目录后才可以拷贝到电脑。路径:/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml。但是是加密过的 需要解密 解密密码生成规则是手机IMEI+微信UIN md5(32位小写)后的前7位。安卓手机要root测试版本微信要7或者8版本都可以。选择message表。

venus60的专栏 1007

【计算机图形学】Pov-Ray画的垃圾小车

效果: 代码: #include "colors.inc" #include "metals.inc" #include "glass.inc" //相机 //这个位置车子刚好落在草地上了 camera { location direction z*1.5 right x*image_width/image_height look_at

lishichengyan的博客 1749

Web项目的WEB-INF目录使用说明以及重定向与转发

写这篇文章的原因是看到了Tomcat下面的Webapps下面的,就想看一下。 总结一下这篇文章的内容: WEB-INF下面的内容都是只能由服务器级别才能访问,客户端并不能访问。什么是客户端级别?什么是服务器级别呢? 转发就是服务器级别,浏览器的地址不会变,因为,客户端发送一个请求,服务器受理之后,发现要请求内容还要再去别的请求,那么转发就是服务器自己去处理完成。不麻烦客户端(浏览器)了,所以客户端上面的地址栏不会改变。 重定向:就是客户端级别的。服务器收到请求后,发现还要去请求别的...

tiao321的专栏 1642

基于Python的网贷平台数据爬虫实战:Scrapy+Selenium+反反爬策略

python复制下载# items.py本文详细介绍了如何使用Python构建一个完整的网贷平台数据爬虫系统,涵盖了从基础爬取到高级反反爬策略的全套解决方案。我们使用了Scrapy框架作为基础,结合Selenium处理动态内容,实现了多种反反爬策略,并探讨了分布式爬虫的实现方式。机器学习识别验证码基于深度学习的网页结构变化检测自动化行为模拟的更精细控制基于Kubernetes的弹性爬虫集群。

2201_76125261的博客 1560

META-INF、WEB-INF 是什么玩意儿?

META-INF、WEB-INF 1. 概述 在学习spring.factories时发现自己对于META-INF和WEB-INF的作用还不甚了解,因此在这里做一个补充。 META-INF 的作用主要是对Jar包进行一个描述。其意为(meta information)签名文件夹。在打包jar时会自动的生成,当然也可以手动的配置修改。 WEB-INF 是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。 2. 详述 2.1 百度上的解释 META-INF 相当于一个信息包,

衡与墨的博客 1万+

ABAP链接外围数据库SQL实战案例

这是一个ABAP 直接读取SQL数据库数据的实例,以此种方式可以将SAP与外围的系统做一些集成,比如生产,SAP本身生产这部分是弱项,管不了那么细,很多车间的数据都是在MES系统,如管理上需要则可以将MES的一些数据自动读取过来,结合SAP本身的业务数据,做一些分析是比较方便的。 1、首先在SAP里建立数据库链接:DBCO ,直接增加一条记录,填上数据库的相关信息:IP地址、数据库名、账号SA、密码这些。 2、开发程序,设置成自动运行的计划,固定时间自动读取SQL里的数据,保存到SAP自定义表.

heng0757的专栏 1511

使用YubiKey进行全盘加密、加密启动分区以及利用UEFI安全启动的详细指南

在本教程中,我们将使用YubiKey来增强电脑的安全性,通过加密整个硬盘,确保只有持有正确YubiKey的人才能访问。UEFI安全启动是一种在UEFI固件级别实施的安全标准,确保计算机仅启动签名的启动加载程序。为了符合您的要求,我将以此方式分配内容,确保每部分都有详尽的说明和代码。现在,您已经成功地使用YubiKey设置了全盘加密,并使用UEFI安全启动为系统增加了额外的安全层。注意:为了简洁和清晰,本文中的代码可能不是最优的或最完整的实现。注意:为了简洁和清晰,本文中的代码可能不是最优的或最完整的实现。

qq_38334677的博客 1006

Web项目的WEB-INF目录使用说明

Web项目的WEB-INF目录使用说明 博客分类: 开发总结 web Web项目WEB-INF目录使用说明 阅读更多 在web项目中,为了安全,可能需要把jsp文件放在WEB-INF目录下,这样如果我们的页面中出现超链接a标签或者js的location.href去直接转向到WEB-INF下的某一个jsp页面,那么就会引用不到,因为这样的请求方式是客户端的请求,而WEB-INF页面只对服务端开放,对客户端是不可见的。这时候我们可以使用action,来进行转向,我们先去请求一个act.

hewusheng10的专栏 2478

解决gradle下载慢的问题

allprojects块的repositories用于多项目构建,为所有项目提供共同所需依赖包。而子项目可以配置自己的repositories以获取自己独需的依赖包。buildScript块的repositories主要是为了Gradle脚本自身的执行,获取脚本依赖插件。根级别的repositories主要是为了当前项目提供所需依赖包。慢的问题在于下载时链接的是官网,而官网下载速度太慢;1、解决gradle不同版本下载慢的问题。但是这个镜像站的版本不全,低版本可以用;有公司做的国内镜像站;

weixin_42551921的博客 2054

关于java web项目中WEB-INF目录下页面的访问问题

在java web项目部署到服务器的以后,项目的目录结构是WebContent下的所有文件夹。如果将jsp/html页面放到WEB-INF目录外面,可以直接请求这个页面。但是多数情况下我们会将页面放到WEB-INF目录下。 页面放在WEB-INF目录下,这样可以限制访问提高安全性。web-inf目录下的文件只能通过请求转发来访问,不能通过页面重定向访问。 在web项目开发过程

不会停下学习的脚步,重在思考。 1万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JavaWeb项目中访问WEB-INF目录下的文件(以及项目目录问题)

WEB-INF是Java的WEB应用的安全目录。所谓安全就是客户端无法访问,只有服务端可以访问的目录。 如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。 WEB-INF文件夹下除了web.xml外,还存一个classes文件夹,用以放置 .class文件,这些 .class文件是网站设计人员编写的类库,实现了jsp页面前台美工与后台服务的分离,使得

Me丿以卿之名 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

ajax访问webinf下的页面,关于java web项目中WEB-INF目录下页面的访问问题

在java web项目部署到服务器的以后,项目的目录结构是WebContent下的所有文件夹。如果将jsp/html页面放到WEB-INF目录外面,可以直接请求这个页面。但是多数情况下我们会将页面放到WEB-INF目录下。页面放在WEB-INF目录下,这样可以限制访问提高安全性。web-inf目录下的文件只能通过请求转发来访问,不能通过页面重定向访问。在web项目开发过程中,有一个功能实现。页面分...

weixin_29586571的博客 687

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

WEB项目jsp使用Java Bean&Eclipse的WEB-INF目录下 没有/不显示 classes文件夹的问题解决

WEB开发中,Eclipse的WEB-INF目录下没有/不显示 classes文件夹的问题解决 用eclipse里编写Java Bean,导入到jsp使用时,服务器报:某个类有效值问题(类似下图问题),这是因为服务器不会主动找你的class文件,只有放在WEB-INF下,服务器运行时才会检测到相应的class文件,故而出错自然解决。 . 一、首先更改编译.java 文件后.class 文件的位置(一般1、2步即可) 在WEB-INF目录下,新建一个classes文件夹 右键项目,选择属性(prop

A-Itfuture的博客 9089

idea2017.3.5新建web项目时没有WEB-INF、lib、classes和web.xml等目录和文件以及项目的配置问题

请看下面这三篇博客 博客1-解决web.xml文件的问题 博客2 博客3

WinstonLau的博客 6990

关于重定向和访问WEB-INF目录的问题

项目中有使用重定向访问,尝试用重定向访问不同目录下的.jsp文件 重定向访问webapp下的不同jsp文件如下: 1、webapp/redirect.jsp的写法: response.sendRedirect(request.getContextPath()+"/redirect.jsp"); 2、webapp/test/testOne.jsp的写法: response.sendRedirect(request.getContextPath()+"/test/testOne.jsp"); 在尝试很多次

weixin_43373600的博客 3740

WEB-INF目录资源访问受限

WEB-INF目录资源访问受限 分类: Java EE 2010-12-17 17:18 490人阅读 评论(0) 收藏 举报 urljavaweb 最近才发现这个问题,WEB-INF目录下面的页面访问是受限的. 我的项目页面目录结构如下所示: WebRoot     |--WEB-INF         |--pages           |--a.js

韬晦潜胖蛇的专栏 1363

关于IDEA中添加静态资源(html,jpg等)后找不到资源(404 not found),以及WEB-INF目录介绍

关于静态资源的加载 在IDEA中的java web application(或者maven项目)添加新的静态资源时(如html,jpg,gif等),常常会遇到静态资源无法加载的情况。这样的情况我们一般都会想到首先通过热部署或者重启tomcat服务器来加载资源。 但是,有些时候,无论我们的tomcat是否热部署或者不管怎么重启tomcat都无法访问这些资源(提示404找不到),然后就百思不得其解。这种时候可以尝试一下重启整个IDEA,重启之后或许就能够找到这些静态资源。 这可能是由于out目录(idea中的E

df1445的博客 6829

web项目的WEB-INF、BOOT-INF、META-INF目录

web项目的WEB-INF目录 Web项目的WEB-INF目录使用说明 spring-boot项目打包时候出现boot-inf文件夹的问题 JAR文件百度百科

赣州博讯科技工作室的博客 473

WEB-INF目录

web工程一般分为src和webRoot两个文件夹,其中,src存放java源代码,而WebRoot存放项目中的jsp、image,还有一些编译文件。这样做的好处就是将页面的显示层和代码层区分开来了。        在WebRoot下有META-INF和WEB-INF,META-INF存放版本号、引用包等,一般很少涉及。WEB-INF我们接触的比较多,下面也会详细介绍。

技术交流 3494

SpringMVC运行后访问不到Controller和WEB-INF目录下jsp资源的问题及解决方案

SpringMVC项目访问不到controller和WEB-INF目录下资源的解决方案

AiyaWenwen的博客 3472

eclipse 部署项目到Tomcat spring-web 的jar包部署失败  在tomcat 中的WEB-INF/classes 目录下有我该项目工作空间的所有文件及目录

注意:文章中我所说的编译时指启动tomcat服务器。     首先编译报错:   在网上一搜索,都说是没有spring-web-4.2.4.RELEASE.jar jar包 但是,我的WEB_INF/lib 中有这个jar 包     去Tomcat 中 zjs_bos\WEB-INF\lib 去看看:发现tomcat 中并没有该jar包     于是收到copy一个过去,...

tanghui20的专栏 5612

Tomcat WEB-INF\class目录下的class文件不更新问题解决办法

由于我的代码上传到github上,换了台电脑拉下来的代码里包含了class文件,而我又是通过eclipse import的方法将项目导进来的,导致怎么重新编译或者重启Tomcat都无法更新WEB-INF/classl下面的class文件解决办法: 通过eclipse new一个tomcat项目的方法就可以解决~ 以后上传代码时在gitignore里面将/WEB-INF/class目录屏蔽掉

ffforfun09的专栏 3221
上一篇: basepath的作用
下一篇: 【issue】完美解决SpringMVC中静态资源无法找到(No mapping found for HTTP request with URI)问题
Marvin-Fox
博客等级 码龄11年 190粉丝 100原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值