精华内容
下载资源
问答
  • 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 目录

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

    展开全文
  • 基于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静态资源。

     

    展开全文
  • 获取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")); 
    展开全文
  • 1. JavaWeb应用JavaWeb应用从大类上分为静态和动态两种。静态应用就是传统的HTML文件+素材资源构造的静态网页,不需要特殊的配置。JavaWeb也不是专门用来做静态网站的。动态应用是基于数据库服务的网页(可能描述的...

    1. JavaWeb应用

    JavaWeb应用从大类上分为静态和动态两种。

    静态应用就是传统的HTML文件+素材资源构造的静态网页,不需要特殊的配置。JavaWeb也不是专门用来做静态网站的。

    动态应用是基于数据库服务的网页(可能描述的不是很合适),拥有了更强的功能和更好的交互性。由于这些特性,所以需要严格的对动态网站的要求更加复杂和严格。

    一个最基础的动态网站的组成:

    | 项目目录

    | src

    | web

    | WEB-INF

    | web.xml :核心配置文件

    | lib :放置jar包文件夹

    | classes :放置字节码(编译后)文件

    | 静态资源

    | HTML/CSS/JS/Image/Video……

    | Jsp

    2. web.xml

    一个完整而规范的JavaWeb项目中,一定要有一个web.xml文件,这个文件用来配置Filter、Listener、Servlet等。

    当Tomcat启动时,会先读取Tomcat安装目录中conf文件夹下的web.xml作为全局配置,然后再读取项目中的web.xml更新全局配置。

    web.xml常用标签:

    http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">

    This is a simple xml.

    ContextParameter

    test

    It is a test parameter.

    setCharacterEncoding

    com.myTest.setCharacterEncodingFilter

    encoding

    UTF-8

    setCharacterEncoding

    /*

    com.listener.SessionListener

    snoop

    SnoopServlet

    snoop

    /snoop

    120

    index.jsp

    index.html

    index.htm

    404

    /NotFound.jsp

    java.lang.NullException

    /Error.jsp

    3. WEB-INF

    WEB-INF目录是web应用的安全目录,作为安全目录就是服务器端可以直接访问,而无法被客户端访问,客户端想访问必须由服务器端进行配置。

    目录里存放着配置web应用的文件web.xml;有存放web需要的jar包目录lib;有存放编译好.class文件的目录classes。将不想被客户端用户直接访问到的文件放置到这个文件夹下,可以有效保障文件安全。

    4. 创建简易项目(IDEA)

    (1) 选择 Java Enterprise,选择/添加 JDK版本、EE版本、Tomcat路径和版本,勾选Web Application、create web.xml。

    801bd6017754b6b2b040ea044612859f.png

    (2) 选择是否使用模板创建。

    7008db39a774d2a6f51effc4b85b790d.png

    (3) 设定项目名、选择项目放置目录、选择web.xml的schema版本、配置一个Tomcat(跟第一个步骤一样)。

    f8eaa32be6dbcdd0065c08a556fe4199.png

    (4) 这时已经创建好一个简易的JavaWeb项目。

    9111672ff03be2ba6d209ecc2dfade61.png

    展开全文
  • web框架

    2019-06-30 14:43:00
    WEB框架分为两种,MVC和MTV,主要指的是目录的归类,框架能够帮助程序员快速开发网站,不需要程序员考虑http请求的细节处理,例如,路由系统,html渲染,数据库操作,帮助程序员快速进行web程序开发 框架目录分类...
  • 我们使用IDE部署JavaWeb项目基本上都是一键完成,这是IDE给我们该来的好处,但是...所以我们也将分为隐式和显式两种方式来进行总结显式部署显式部署总的来说就是以目录结构的方式部署,不打包,只要项目根目录(Mave...
  • 用Tomcat构建WEB站点

    千次阅读 2012-10-15 19:58:29
    第1讲 用Tomcat构建WEB站点 ...应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。 桌面应用程序(DesktopApplication):一般是指采用客户机/服务器结构(Client/Server
  • java web总结

    2016-02-20 23:39:05
    请求分为两种,一种是访问静态html、图片等静态web资源,另一种是访问某个java类 (1)静态资源请求  请求分为两种,一种是访问静态html、图片等静态web资源,另一种是访问某个java类  访问静态web资源很简单...
  • 位运算符java支持的位运算符有7个,分为两类:位逻辑运算和移位运算。位逻辑运算符包括按位取反(~)、按位与( )、按位或(|)和按位异或(^)4,。移位运算符包括左移( )、右移( )和无符号右移( )3。位运算符只能用于...
  • WEB应用

    2012-10-23 20:40:23
    用Tomcat构建WEB站点 ...•应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。 •桌面应用程序(Desktop Application):一般是指采用客户机/服务器结
  • 应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。桌面应用程序(Desktop Application):一般是指采用客户机/服务器结构(Client/Server)的应用程序。 C
  • 在javaweb中,路径分为相对路径和绝对路径两种 相对路径是: . 表示当前目录 .. 表示上一级目录 资源名 表示当前目录下的资源名(当前目录/资源名) 绝对路径: http://ip:port/工程路径/资源路径 web中斜杠的不同...
  • WebApi路由

    2018-06-14 22:57:00
    路由分为两种模式:模板路由和特性路由。 模板路由: 模板路由是ASP.NET Web API默认提供的路由。模板路由使用前需要定义路由模板。如下面默认的路由模板: 默认路由的URL格式是api/{controller}/{id}。api代表...
  • 用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
  • Django Web接口开发

    2020-02-19 22:33:21
    接口一般来讲分为两种: (1)程序内部的接口:方法与方法、模块与模块之间的交互,程序内部抛出的接口,如登录发帖,发帖就必须要登录,如果不登录不能发帖,发帖和登录这两个模块之间就要有交互,就会抛出一个接口,...
  • web技术基础—HTML

    2021-03-09 16:24:47
    web技术用来设计开发网页,主要分为两部分:前端开发、后端开发 ,二者合起来就是全栈开发。 前端开发主要有:HTML、CSS、JS(Java Script)、Angular; 后端开发主要有NestJs; 开发工具:VS Code最新版、Chrome...
  • Java Web 学习 - Tomcat

    2020-08-21 16:20:53
    web 资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种。 静态资源: html、css、js、txt、mp4 视频 , jpg 图片 动态资源: jsp 页面、Servlet 程序 Tomcat 的使用 目录介绍 如何启动Tomcat...
  • -----------------------siwuxie095 ...Maven 项目标准目录结构 ...1、Maven 项目分为两种 (1)Java 项目 (2)Web 项目 2、对于 Java 项目 ...
  • Web技术基础——HTML

    2021-03-27 10:54:48
    Web技术用来设计开发网页,主要分为两部分:前端开发、后端开发 ,二者合起来就是全栈开发。 前端开发主要有:HTML、CSS、JS(Java Script)、Angular; 后端开发主要有NestJs; 开发工具:VS Code最新版、Chrome...
  • java web —— Tomcat

    2021-04-03 13:37:46
    web 资源按实现的技术和呈现的效果的不同,又分为静态资源和动态资源两种。 静态资源: html、css、js、txt、mp4 视频 , jpg 图片 动态资源: jsp 页面、Servlet 程序 Tomcat目录 bin 专门用来存放 Tomcat 服务器...
  • Web Scraper分为chrome插件和云服务两种,云服务是收费的,chrome插件是免费的,这里说的就是chrome插件这种。 Web Scraper插件,可以让你以“所见即所得”的方式挑选要提取的网页数据,形成模版,以后可以随时执行...
  • webApi03

    2021-04-29 17:23:51
    本章分为大致个知识点:DOM节点(节点与元素获取),DOM操作子节点的增删改查。 关键词:children,previousElementSibling,nextElementSibling,parentNode(获取父节点/元素),innerHTML,document.
  • 文章目录一、简介1、Web Worker类型可以分为两种2、Web Worker的使用场景3、Web Worker的限制4、Worker上下文二、专用线程(Dedicated Web Worker)1、线程创建2、线程数据通讯方式3、关闭 Worker4、错误处理5、加载...
  • 应用程序:指允许用户执行特定任务的软件程序,主要分为桌面应用程序和Web应用程序两种类型。桌面应用程序(Desktop Application):一般是指采用客户机/服务器结构(Client/Server)的应用程序。
  • 1.HTML标签分为两种形式:块级元素、行内元素 2.CSS核心内容:标准流、盒子模型、浮动、定位。 3.选择器:可以跳转到这篇总结的博客,更加细致。 一、名词概念 aspx文件:是微软的再服务器端运行的动态网页...

空空如也

空空如也

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

web目录分为两种