精华内容
下载资源
问答
  • Java Web 工程目录结构

    2019-01-12 09:33:02
    为了使 Web 容器顺利地执行 Web 应用,开发者需要以一种标准的方式将 Web ...一个 Web 项目的目录结构可分为两种: 发布目录结构 Web 容器加载 Web 应用的统一标准目录。 编译目录结构 一种方...

    文章转载自:https://www.cnblogs.com/reghao/p/8490855.html

    为了使 Web 容器顺利地执行 Web 应用,开发者需要以一种标准的方式将 Web 项目中的资源(servlets、JSP 等)打包。一个 Web 项目的目录结构可分为两种:

    • 发布目录结构

      Web 容器加载 Web 应用的统一标准目录。

    • 编译目录结构

      一种方便 Web 工程编写、修改的临时结构,需要通过构建工具(ant、maven 等)编译生成最终的发布目录结构。因此编译目录结构并不统一,与所使用的编译工具(以及配置)有关。

    发布目录结构

    Web 项目的发布目录结构如下所示:

    HelloWorld/
    ├── index.jsp
    ├── META-INF
    │   └── MANIFEST.MF
    └── WEB-INF
        ├── classes
        ├── lib
        └── web.xml
    • index.jsp

      通过 http://localhost:8080/HelloWorld/ 访问的即是该文件,此 Web 应用的根目录名为 HelloWorld。

      静态资源(jsp、html、css、js 以及 png 等)可直接放在 HelloWorld/ 中,也可在 HelloWorld/ 下创建相应的目录分别放置。

    • META-INF 目录

      MANIFEST.MF 包含 Web 应用的版本等信息。

    • WEB-INF 目录

      classes 目录包含 Web 应用中所有的已编译 Java 类文件(以及配置文件等),是 Web 应用的核心部分,实现具体的业务逻辑。

      lib 目录包含 Web 应用使用的所有类库文件(即第三方 JAR 文件)。

      web.xml 是该 Web 项目的配置文件,用来供 Web 容器部署和执行 Web 应用。

    编译目录结构

    Web 项目的编译目录结构(使用 maven 构建)如下所示:

    my-app/
    ├── pom.xml
    ├── src
    │   ├── main
    │   │   ├── java
    │   │   │   └── mycompany
    │   │   │       └── app
    │   │   │           └── App.java
    │   │   ├── resources
    │   │   └── webapp
    │   └── test
    │       ├── java
    │       │   └── com
    │       │       └── mycompany
    │       │           └── app
    │       │               └── AppTest.java
    │       └── resources
    └── target
    • pom.xml

      项目的配置文件,包含构建一个项目所需的大多数信息(主要是依赖的类库)。

    • src/main/java 目录

      放置项目的源码。

    • src/main/resources 目录

      放置项目的资源。

    • src/main/webapp 目录

      放置 Web 项目的发布目录结构,其中包括 META-INF 以及 WEB-INF 目录。

      web.xml 文件放置在 WEB-INF 目录中。

    • src/test/java 目录

      放置项目测试的源码。

    • src/test/resources 目录

      放置项目测试的资源。

    • target 目录

      放置构建项目生成的所有输出。

    展开全文
  • Web中的相对路径和绝对路径 在javaweb中,路径分为相对路径和绝对路径两种 相对路径是: . 表示当前目录 .. 表示上一级目录 资源名 表示当前目录下的资源名(当前目录/资源名) 绝对路径: http://ip:port/工程路径...

    Web中的相对路径和绝对路径

    在javaweb中,路径分为相对路径和绝对路径两种
    相对路径是:

    .		表示当前目录
    ..		表示上一级目录
    资源名	表示当前目录下的资源名(当前目录/资源名)
    

    绝对路径:

    http://ip:port/工程路径/资源路径
    

    web中斜杠的不同意义

    在web中/是一种绝对路径

    / 斜杠 如果被浏览器解析,得到的地址是:
    http://ip:port/

    / 斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径
    如下这几种情况

    <url-pattern>/servlet1</url-pattern> 
    servletContext.getRealPath(“/”); 
    request.getRequestDispatcher(“/”);
    

    特殊情况response.sendRediect(“/”)
    这个也是属于服务器解析的,但是,他自己不会解析
    他这个的作用是:把斜杠发送给浏览器解析。然后斜杠解析得到 http://ip:port/

    展开全文
  • 获取java项目根目录的方法汇总

    千次阅读 2016-01-09 18:45:32
    Java使用路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有相对路径寻找资源方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源...
    Java中使用的路径,分为两种:绝对路径和相对路径。归根结底,Java本质上只能使用绝对路径来寻找资源。所有的相对路径寻找资源的方法,都不过是一些便利方法。不过是API在底层帮助我们构建了绝对路径,从而找到资源的!

    在开发Web方面的应用时, 经常需要获取 服务器中当前WebRoot的物理路径。

    如果是Servlet , Action , Controller, 或则Filter , Listener , 拦截器等相关类时, 我们只需要获得ServletContext, 然后通过ServletContext.getRealPath("/")来获取当前应用在服务器上的物理地址。

    如果在类中取不到ServletContext时, 有两种方式可以做到:

    1. 利用Java的类加载机制 调用 XXX.class.getClassLoader().getResource(""); 方法来获取到ClassPath , 然后处理获得WebRoot目录,这种方式只能是该class在webapp/WEB-INF/classes下才能生效, 如果该class被打包到一个jar文件中, 则该方法失效。这时就应该用下面一种方式。

    2. spring框架的思路, 在WEB-INF/web.xml中 , 创建一个webAppTest的param, 指定一个值(默认为webapp.root)作为键值, 然后通过Listener , 或者Filter , 或者Servlet 执行String webAppTest = getServletContext().getRealPath("/"); 并将webAppTest对应的webapp.root 分别作为Key , Value写到System Properties系统属性中。之后在程序中通过System.getProperty("webapp.root")来获得webapp的物理路径。

    根据第二种的思路,我们还可以再扩展一下。不过对于在部署在一台服务器中的应用来说,若还不是你所需请再往下看。

    下面是一些得到classpath和当前类的绝对路径的一些方法。你可使用其中的一些方法来得到你需要的资源的绝对路径:

    1. FileUploadAction.class.getResource("")

    得到的是当前类FileTest.class文件的URI目录。不包括自己!

    如:file:/D:/eclipse/mvcTest/src/webapp/WEB-INF/classes/

    /com/modules/filemanage/action/

    2. FileUploadAction.class.getResource("/")

    得到的是当前的classpath的绝对URI路径。

    如:file:/D:/eclipse/mvcTest/webapp/WEB-INF/classes/

    3. Thread.currentThread().getContextClassLoader().getResource("")

    得到的也是当前ClassPath的绝对URI路径

    如:file:/D:/eclipse/mvcTest/webapp/WEB-INF/classes/

    4. FileUploadAction.class.getClassLoader().getResource("") 或ClassLoader.getSystemResource("")

    得到的也是当前ClassPath的绝对URI路径。

    如:file:/D:/eclipse/mvcTest/webapp/WEB-INF/classes/

    5. 取得服务器相对路径

    System.getProperty("user.dir")
    例如:d:\apache-tomcat-5.5.16\bin

    我推荐使用Thread.currentThread().getContextClassLoader().getResource("")来得到当前的classpath的绝对路径的URI表示法

    6. 取得项目中的绝对路径

    一般用request.getRealPath("/")或request.getRealPath("/config/")

    但现在不提倡使用request.getRealPath("/")了,大家可试用ServletContext.getRealPath("/")方法得到Web应用程序的根目录的绝对路径

    要取得src的文件非常容易,因为src是默认的相对目录,比如你说要取得src下com目录的test.java文件,你只需要这样就够了

    File f = new File(com/test.java);
    但如果我要取得不在src目录或者WebRoot目录下的文件呢,而是要从src或者WebRoot同级的目录中取呢,比如说doc吧

    我的硬方法是这样实现的:

    String path = this.getServletContext().getRealPath("/");  

    Properties p = new Properties();  

    p.load(new FileInputStream(new File(path.substring(0,(path.lastIndexOf("\\webapp") + 1)) + "config/db.properties")));  

    System.out.println(p.getProperty("driverName")); 
    展开全文
  • 基于springboot的web工程在打包时,一般情况下分为两种方式。一种为jar方式,这种方式包含一个嵌入式的web容器,例如tomcat或jetty。另一种方式则为war包方式。在工程实践,我常常使用第一种jar方式,这种方式优点...

         基于springboot的web工程在打包时,一般情况下分为两种方式。一种为jar方式,这种方式包含一个嵌入式的web容器,例如tomcat或jetty。另一种方式则为war包方式。在工程实践中,我常常使用第一种jar方式,这种方式优点为部署简单。在toB业务中,实施人员不需要掌握tomcat等web容器的安装方式,减少了出错的可能性。但使用此种方式,也同时带来一个问题,springboot工程打包部署时,将web静态页及相关文件,也打入jar中,不利于现场的js页的调试和编码。

          是否有办法可以将web静态资源外部化?答案是存在的。通过阅读springboot的源码,我发现在嵌入式tomcat的启动中,会经历以下步骤。      

    EmbeddedWebApplicationContext.createEmbeddedServletContainer()

    TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer()

    TomcatEmbeddedServletContainerFactory.prepareContext()

    AbstractEmbeddedServletContainerFactory.getValidDocumentRoot()

    AbstractEmbeddedServletContainerFactory.getCommonDocumentRoot()

    最终在获取documentRoot的过程中,我们可以看到类成员,有如下定义。

    private static final String[] COMMON_DOC_ROOTS = { "src/main/webapp", "public",  "static" };

    所以只要在${user.dir}目录下建立public或static目录,springboot的jar运行时可以加载这些目录下的web静态资源。

     

    展开全文
  • Servlet配置分为两种:一种为文件配置(web.xml配置),另一种为注解配置(注入声明) 下面我们通过实例来分别使用这两种方法 一、 首先创建一个项目 首先创建一个Dynamic文件,对勾要勾上,自动生成xml文件,...
  • 一般情况下,jsp页面 直接选择在根目录WebContent建立,可直接调用根目录Src 建立Servlet对象。...解决办法:首先 Servlet要想使用 则需要,根据新建Web工程时 下图所示栏所选版本不同分为两种: ①Servl...
  • 说明:本文首发于《程序员》杂志2006年第...从实现方式上来说,验证码分为“读取式”和“生成式”两种。 “读取式”是指从服务器上指定的目录下随机读取预先制作好的图片文件,将图片文件显示在页面上要求用户识别...
  • 目录 web前端开发工具——Git(一)简单介绍Git以及部分远程仓库 ...在使用Git时我们一般都需要先在本地创建一个本地仓库,根据情况不同,主要分为两种情况: 没有远程仓库,对本地某个项目开始使用Git进...
  • 用eclipse创建web项目

    2019-07-18 19:40:25
    在eclipse创建web项目 浏览器可以直接访问...注意:并不是任何内部tiaoz能访问WEB-INF,因为转发分为两种,请求转发和重定向。 有版本创建jsp第一行会报错,是因为没有配置tomcat运行时环境。 需要增加...
  • Servlet-5-Web开发模式

    2020-06-09 21:27:35
    Mode I处理情况分为两种,一种是完全使用JSP进行开发,另外一种是使用JSP + JavaBean模式进行开发,下面分别对这两种模式加以说明 用户发出请求(request),交给JSP页面进行处理。如果是开发小型的WEB
  • SSH 为 Struts+Spring+Hibernate一个集成框架,是目前较流行种Web应用程序开源框架。其中使用Struts作为系统整体基础架构,负责MVC分离,在Struts框架模型部分,控制业务跳转,利用Hibernate框架对持久...
  • 项目中的相对路径

    千次阅读 2019-05-18 08:53:14
    相对路径: 1.相对与某个基准目录的路径。包含Web的相对路径(HTML中的相对目录)...3.相对路径又分为以斜杆开头的路径和不以斜杆开头的路径,根据路径所在文件所处位置的不同,分为两种:前台路径与后台路径。 ...
  • 该窗口分为两个部分: 。 导航栏: 在导航栏,我们可以看到游戏标题,括弧内RGB值,“新颜色”选项卡以及“难度模式” 。 标题 - 伟大RGB颜色游戏 RGB值- 它是一配色方案,代表形成颜色时红色,绿色...
  • Web 前端学习 img标签详解 img标签是用来显示图片的,下面我将根据一个小案例...而在html的语法,这两种路径的用法与编程有着一点点的区别 相对路径 . 代表文件所在的目录 .. 代表上级目录 直接输入文件名就代表当
  • 说明在 文章目录 1.什么是Docker 仓库? 仓库是集中存放镜像文件场所。...仓库分为公开仓库(Public)和私有仓库(Private)两种形式。最大公开仓库是 Docker Hub,存放了数量庞大镜像供用户下...
  • 文章目录一、仓库简介二、向Docker Hubpush镜像三、Registry工作原理(Docker官方已开源... 仓库分为两种类型:公共和私有。在Docker运行过程默认使用就是Docker官方公共仓库Docker Hub,上传时需要登陆。私有仓
  • 文章目录前言一、收集域名信息二、收集敏感信息三、四、收集端口信息...信息收集方式可以分为两种:主动和被动。 1、主动信息收集:通过直接访问、扫描网站等方式。 2、被动信息收集:利用第三方服务对目标进行访问
  • java日志我这里分为两种web应用和桌面应用。而我这里重点介绍web应用log4j使用。   一、配置log4j.properties文件,该文件存放于classpath根目录下。 代码如下: log4j.rootLogger=INFO, stdout, logfile...
  • 微信支付可以分为两种情况,微信浏览器之外扫码支付(需要配置Native支付回调链接,支付完成后,微信服务器会调用这个链接,并传入参数。)和微信浏览器之内直接支付(需要配置JSAPI支付授权目录,.
  • 一、概述如果需要实现...【开发配置】配置【JSAPI支付授权目录】和【Native支付回调链接】,如下图所示:微信支付可以分为两种情况,微信浏览器之外扫码支付(需要配置Native支付回调链接,支付完成后,微信服务...
  • MLDN 李兴华 Java Web 开发实战经典.pdf (高清版) 全书分为两部分,需 要全部下载下载一起解压,此部分为第一部分 带有书签,清华大学出版社 第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 ...
  • 15. java IO 流分为? 7 16. BIO、NIO、AIO 有什么区别? 7 17. Files常用方法都有哪些? 8 二、容器 8 18. java 容器都有哪些? 8 19. Collection 和 Collections 有什么区别? 9 20. List、Set、Map 之间...
  • 知识库总目录: No.0 Web开发...3.本地文件配置:当配置储如某些三方系统URL类信息时就需要本地化文件配置,这种信息一般分正式地址与测试地址套,就不可采用数据库配置,以免将生产数据卸载到测试库使用时出问
  • <h4><a href="#browsing-context">浏览器中的事件轮询</a></h4> </li><li> <h5><a href="#defination-b">Event Loop在HTML规范中的定义</a></h5> </li><li> <h5><a href="#elimg-b">图解Event Loop</a></h5> </li>...
  • .NET 缓存

    2010-12-29 15:57:00
    在 .NET 缓存定义在命名空间 System.Web.Caching 。 .NET 支持两种依赖:CacheDependency 和 SqlDependency。  1. CacheDependency 表示依赖对于文件或者目录的依赖  2. Sql...
  • SpringMVC框架配置项

    2020-05-24 11:12:01
    1、Spring容器分为两种类型:BeanFactory与ApplicationContext 1)、BeanFactory:(org.springframework.beans.factory.BeanFactory接口定义)是最简单的容器,它根据XML文件中的定义加载beans,该容器从XML文件读取...
  • IDEASpringBoot打包与服务器部署

    千次阅读 2019-08-02 16:12:18
    打包分为两种,war包和jar包。 平常java web项目一般使用war包后放到Tomcatwebapp目录下运行即可。 但SpringBoot内置Tomcat,想要打成war包比较麻烦也不推荐,这里主要说一下打成jar包 1.指定打包文件名(也可...
  • JavaWeb当中相对路径与绝对路径

    千次阅读 2020-07-09 22:10:28
    在 JavaWeb ,路径分为相对路径和绝对路径两种: 相对路径 符号 释义 ./ 表示当前目录 …/ 表示上一级目录 某个资源 表示当前目录/资源名 第三个简单来说就是假如a目录下有个index.html,这个index....
  • iOSCookie介绍

    2015-03-19 10:02:43
    目录[-] 一. Cookie 二....三.NSHTTPCookieStorage ...Cookie是在客户端存储服务器状态机制,Web服务器可以通过Set-Cookie或者Set-Cookie2 HTTP头部设置Cookie。 Cookie可以分为两类,会话Cookie和持久Co
  • 读取资源文件一般根据上下文环境分为两种情况。  第一种是非WEB应用环境,只需要简单通过类加载器getResourceAsStream方法读取。  例如,classpath根目录下有一个setting.properties文件,可以这样...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 130
精华内容 52
关键字:

web中的目录分为两种