首页 > 编程语言 >对Java Web中WEB-INF目录的理解以及访问方法

对Java Web中WEB-INF目录的理解以及访问方法

时间:2022-11-25 20:55:05浏览次数:59  
标签:Web Java WEB 访问 INF 目录 css

事情发生

在上个暑假第一次写Java web大项目的时候,对于目录管理及分配没有任何经验,就想着清晰明了。
后端servlet是用maven进行构建的,所以在目录上没有碰到什么大问题。
用idea进行Java Web项目构建的时候,会自动生成这样一个前端目录
image
当时对拦截器以及安全目录什么的完全没有概念,于是就把页面,还有css和js以及resource全部放进WEB-INF。
于是乎灾难来了吗,最直观的体现就是,css样式不生效,怎样都不生效,因为没有安全目录以及拦截器概念,完全找不到解决方法,这个bug真的是找的天昏地暗。

问题原因

原来WEB-INF是安全目录。
WEB-INF下面的内容只能由服务器级别才能访问,客户端并不能访问。

服务器级别指:经过服务器内的Controller渲染。
客户端级别指:通过浏览器直接访问。

所以作为安全目录,将jsp文件放到里面是对的,避免客户端直接访问,保证了安全性。
用户想要访问就要访问服务器的Controller,经过它的渲染,才能呈现文件,这就是为什么index.jsp不在WEB-INF目录下的原因。

因为我把css和js以及资源文件放在了WEB-INF目录底下,页面自然访问不到安全目录,自然css不生效。

问题解决

页面可以放在它下面可以用Contriller渲染然后进行访问,但是其他资源不可以呀。
把css等静态文件放在WEB-INF目录外面。就可以解决无法访问以至于css样式不生效等问题。

但是

我当时不知道呀,不知道还有安全目录一说,不会把他们放在外面,但是问题不能不解决。
爬了半天的搜索引擎,看遍了各种博客以及分享,试了各种方式之后。
从铺天盖地的信息中看出来了两个字:

路径,要读取WEB-INF下面的文件要用这个路径:getServletContext().getRealPath("/WEB-INF/");

但是那是后端访问方法,我是要在前端引用那些css
于是我的前端页面出现了这个东西

<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

在申明之后,引入css的时候,就用的

<link rel="stylesheet" href="<%=basePath%>css/login_style.css" type="text/css">

之后就能正常显示了。
image
只能说确实好看。
项目地址为 https://gitee.com/zxeao/Study_Station.git
可以点个star嘛?

是学生,正在学习,自己遇到的问题写点博客,如有错误,请谅解,如果发现了错误可以评论一下。

标签:Web,Java,WEB,访问,INF,目录,css
From: https://www.cnblogs.com/zxeao/p/16926265.html

相关文章

  • JAVA基础语法
    JAVA基础语法注释、标识符、关键字注释注释类似于笔记,程序是什么意思注释不会被执行书写注释是一个非常好习惯Java中注释分为单行注释,多行注释,文档注释平......
  • Java反射
    反射:框架设计的灵魂,将类的各个组成部分封装为其他对象,这就是反射机制。反射的好处:1.可以在程序运行过程中,操作这些对象2.可以解耦,提高程序的可扩展......
  • Java 中经常被提到的 SPI 到底是什么?
    layout:postcategories:Javatitle:Java中经常被提到的SPI到底是什么?tagline:by子悠tags:-子悠Java程序员在日常工作中经常会听到SPI,而且很多框架都使......
  • java基础语法学习笔记
    java基础语法学习笔记数组定义的三种方法int[]array1={1,2,3,4,5};//定义一int[]array2=newint[10];//定义二int[]array3=newint[]{1,2,3,4,5};/......
  • [JS DOM&BOM]Web API
    [JSDOM&BOM]WebAPIWebAPIWebAPI是浏览器提供的一套操作浏览器功能和页面元素的API(DOM和BOM)认识DOM什么是DOM文档对象模型(DOM)是HTML和XML文档的编程接口。它提供了对......
  • 第三周课程设计进展——基于java语言的国密算法库编译测试
    本周计划完成的任务本周实际完成情况(代码,文档,程序运行截图...),未完成计划的原因?如何改进?本周遇到的问题与解决过程(要详细)本周计划完成的任务给openeuler配置java......
  • 自学Java的基本态度
    面对Java学习,第一就是兴趣培养,第二基础打牢。学Java从入门到精通,需要家人们能一直保持学习的态度,特别如今技术更迭又快,这时就要我们多学想多看。只有Java知识不停学,家人们的......
  • java 接口限制访问次数
    1.通过注解的形式实现通用接口访问次数限制(1)pom.xml文件中引入expiringmap<dependency><groupId>net.jodah</groupId><artifactId>expiringmap</artifa......
  • JavaWeb知识总结
    HTML是什么:HyperTextMarkerLanguage超文本标记语言超文本:超级文本例如流媒体、声音、图片等标签:这种语言有大量的标签组成任何一个标签都有开始标签和结束标签开......
  • java学习笔记
    定义数组1.整形数组,charfloatdouble等和int格式相同int[]<数组名>=newint[needsize]; 2.定义字符串数组String<数组名>;<数组名>={"littleshark!"}; ......