精华内容
下载资源
问答
  • Servlet使用过程中关于路径的设置

    千次阅读 2016-06-07 23:38:57
    使用servlet进行web编程时,有关的路径设置是一个很头疼的问题,servlet的路径设置主要分为相对路径和绝对路径,下面通过Eclipse构建的一个ServletPathDemo动态网站项目进行分析: 项目文件层次为:

    在使用servlet进行web编程时,有关的路径设置是一个很头疼的问题,servlet的路径设置主要分为相对路径和绝对路径,下面通过Eclipse构建的一个ServletPathDemo动态网站项目进行分析(Myeclipse构建基本一致):

    项目文件层次为:


    1.Jsp页面中的路径设置

    以index.jsp为例:

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    
    <%
    	String path = request.getContextPath();
    	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    
    %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    	<h1>Servlet路径跳转</h1>
    	<hr>
    	<!-- 使用相对路径访问HelloServlet -->
    	<a href="servlet/HelloServlet">访问HelloServlet!</a><br>
    	<!-- 使用绝对路径访问HelloServlet -->
    	<a href="<%=path %>/servlet/HelloServlet">访问HelloServlet!</a><br>
    	<hr>
    	<!-- 使用相对路径访问TestServlet -->
    	<a href="servlet/TestServlet">访问TestServlet!</a><br>
    	<!-- 使用绝对路径访问TestServlet -->
    	<a href="<%=path %>/servlet/TestServlet">访问TestServlet!</a><br>
    	
    
    </body>
    </html>
    上面的jsp界面中有四个超链接来访问项目中的servlet,其中有相对路径和绝对路径的方式,上面代码中的两种路径访问格式完全正确。

    2. servlet中的路径设置

    以TestServlet为例:

    package servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class TestServlet
     */
    public class TestServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public TestServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    		doPost(request, response);
    		
    	}
    
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    
    		//请求重定向方式跳转到test.jsp,当前路径为ServletPathDemo/servlet/
    		response.sendRedirect("/test.jsp"); //错误,报错路径: /test.jsp(前面没有项目根目录)
    		response.sendRedirect("test.jsp"); //错误,报错路径: /ServletPathDemo/servlet/test.jsp
    		response.sendRedirect(request.getContextPath()+"/test.jsp"); //正确
    		response.sendRedirect("../test.jsp"); //正确
    		
    		//服务器内部跳转
    		request.getRequestDispatcher("/test.jsp").forward(request, response);//正确
    		request.getRequestDispatcher("../test.jsp").forward(request, response); //正确
    		request.getRequestDispatcher("test.jsp").forward(request, response); //错误,报错路径: /ServletPathDemo/servlet/test.jsp
    		request.getRequestDispatcher(request.getContextPath()+"/test.jsp").forward(request, response); //错误
    		//上述转发的最终路径为:/ServletPathDemo/ServletPathDemo/test.jsp,可以看到项目根目录重复
    		
    		/*
    		 * 从上面的分析可以知道:当服务器处理到达servlet时,重定向和转发的默认路径都为ServletPathDemo/servlet/
    		 * 在response的重定向时,当路径前面加“/”使用绝对路径时,默认路径会变成localhost:8080,后面并不带项目名称;
    		 * 在request的转发时,当路径采用绝对路径时,默认路径会变成localhost:8080/ServletPathDemo,带项目名称。
    		 */
    	}
    
    }
    servlet中的路径设置根据重定向和转发分为两种格式,上述代码完整的分析了各种写法。

    3. web.xml中关于servlet-mapping的设置

    以本项目的web.xml为例:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>ServletPathDemo</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <servlet>
      	<servlet-name>HelloServlet</servlet-name>
      	<servlet-class>servlet.HelloServlet</servlet-class>
      </servlet>
      
      <servlet>
      	<servlet-name>TestServlet</servlet-name>
      	<servlet-class>servlet.TestServlet</servlet-class>
      </servlet>
      
      <servlet-mapping>
      	<servlet-name>HelloServlet</servlet-name>
      	<!-- url-pattern 必须以/开头,这里的第一个/表示项目额根目录 -->
      	<url-pattern>/servlet/HelloServlet</url-pattern>
      </servlet-mapping>
      
      <servlet-mapping>
      	<servlet-name>TestServlet</servlet-name>
      	<url-pattern>/servlet/TestServlet</url-pattern>
      </servlet-mapping>
      
    </web-app>
    web.xml中的servlet-mapping中的url-pattern中的路径前面必须是有"/"的。



    展开全文
  • 在开发Qt项目过程中,涉及到写入文件方面,出现了一些关于相对路径的问题 首先尝试的是直接在Qt资源文件qrc添加文件,然后发现文件不能以写入的模式打开。查了一下,发现qrc文件支持的是只读模式,不能写入。 后面...

    在开发Qt项目过程中,涉及到写入文件方面,出现了一些关于相对路径的问题
    首先尝试的是直接在Qt资源文件qrc中添加文件,然后发现文件不能以写入的模式打开。查了一下,发现qrc文件支持的是只读模式,不能写入。
    后面在.pro所在目录下创建文件,出现的问题是访问路径出错,没有文件,发现是对Qt中相对路径的的理解不对。
    最后在构建目录(可执行文件.exe所在目录)下面创建文件成功通过。
    总结一下:
    Qt中相对路径:

    //相对对qrc中的文件访问路径(:/表示qrc文件目录)
    :/文件路径
    //相对构建目录相对路径(./表示构建目录下)
    ./文件路径
    

    如果只是对文件进行读取操作,可以直接添加在qrc中(用:/访问目录下),如果需要进行写入,又使用相对路径,需要注意源码中的(./)路径是在构建目录下的。

    展开全文
  • 问题:maven项目 属性...问题原因:maven在构建过程中java路径下的属性以及配置文件不会被构建(Maven会按照标准的目录结构查找和处理各种类型文件)解决方案:通过相关插件促使maven对java下的属性及配置文件进行构建
    问题:maven项目 属性文件默认放在src/main/resources路径下;当将属性文件 或配置文件放置在java路径下时(mybatis 配置mapping文件等)的问题
     
    
    
    
    问题原因:maven在构建过程中java路径下的属性以及配置文件不会被构建(Maven会按照标准的目录结构查找和处理各种类型文件
    解决方案:通过相关插件促使maven对java下的属性及配置文件进行构建
    插件1
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.8</version>
        <executions>
            <execution>
                <id>add-resource</id>
                <phase>generate-resources</phase>
                <goals>
                    <goal>add-resource</goal>
                </goals>
                <configuration>
                    <resources>
                        <resource>
                            <directory>src/main/java</directory>
                            <includes>
                                <include>**/*.xml</include>
                            </includes>
                        </resource>
                    </resources>
                </configuration>
            </execution>
        </executions>
    </plugin>
    展开全文
  • 在Webpack构建过程中,从JavaScript对象创建json文件。 安装 npm i -D emit-json-file-webpack-plugin 用法 new EmitJsonFileWebpackPlugin([files]) 文件看起来像: { path: 'filePath', content: 'object' } ...
  • eclipse构建路径

    千次阅读 2014-07-07 21:24:52
    Eclipse把Java构建路径的信息放在“.classpath”文件中,此文件位于项目文件夹根目录。直接修改“.classpath”内容也可以设置构建路径,但必须在修改后对项目进行刷新。 classpath ——工作区内的主目录 一...

    Eclipse把Java构建路径的信息放在“.classpath”文件中,此文件位于项目文件夹根目录。直接修改“.classpath”内容也可以设置构建路径,但必须在修改后对项目进行刷新。

    classpath ——工作区内的主目录


    一、java虚拟机启动过程:

    java虚拟机是由java luncher初始化的,也就是java(或java.exe)

      这个程序来做的.   虚拟机按以下顺序搜索并装载所有需要的类:

      1,   引导类:   组成java平台的类,   包含rt.jar和i18n.jar中的类.

      2,   扩展类:   使用java扩展机制的类,都是位于扩展目录($JAVA_HOME/jre/lib/ext)中的.jar档案包.

      3,   用户类:   开发者定义的类或者没有使用   java   扩展机制的第三方产品.   你必须在命令行中使用   -classpath   选项或者使用   CLASSPATH   环境变量来确定这些类的位置.

      在执行Java程序的时候,会自动加载程序用中需要的在rt.jar和其他java_home\jre\lib中包含的.jar文件中包含的Java基础类库和一些扩展类库。这些都是JVM自动处理的,对用户来说是透明的。

      如果Java程序中使用到了一些应用级别的类(如第三方的类),可以在javac和java中的-classpath选项中指定它们的搜索路径,或者是自 己写ClassLoader加载,另外也可以设置ClassPath环境变量,在里面指定那些应用级别的类的搜索路径。

      设置ClassPath环境变量不是必须的,只是为了方便使用,设置了ClassPath,JDK就会按ClassPath制定的路径去搜索需要的应用级别的类,而不必每一次都使用-classpath选项或自己写ClassLoader。

      还有需要注意的就是:如果相关的类就在当前工作目录下的话,上面3种方法都可以不要,因为JDK系统会首先搜索会在当前的工作目录中搜索程序相关的类。 



    二、Classpath(类路径)基础

    Java虚拟机(JVM)借助类装载器装入应用程序使用的类,具体装入哪些类根据当时的需要决定。CLASSPATH环境变量告诉类装载器到哪里去寻找第三方提供的类和用户定义的类。另外,你也可以使用JVM命令行参数-classpath分别为应用程序指定类路径,在-classpath中指定的类路径覆盖CLASSPATH环境变量中指定的值。

    类路径中的内容可以是:文件的目录(包含不在包里面的类),包的根目录(包含已打包的类),包含类的档案文件(比如.zip文件或者.jar文件)。在Unix家族的系统上,类路径的各个项目由冒号分隔,在MS Windows系统上,它们由分号分隔。

    类装载器以委托层次的形式组织,每一个类装载器有一个父类装载器。当一个类装载器被要求装载某个类时,它在尝试自己寻找类之前会把请求先委托给它的父类装载器。系统类装载器,即由安装在系统上的JDK或JRE提供的默认类装载器,通过CLASSPATH环境变量或者-classpath这个JVM命令行参数装入第三方提供的类或者用户定义的类。系统类装载器委托扩展类装载器装入使用Java Extension机制的类。扩展类装载器委托自举类装载器(bootstrap class loader)装入核心JDK类。

    你可以自己开发特殊的类装载器,定制JVM如何动态地装入类。例如,大多数Servlet引擎使用定制的类装载器,动态地装入那些在classpath指定的目录内发生变化的类。

    必须特别注意的是(也是令人吃惊的是),类装载器装入类的次序就是类在classpath中出现的次序。类装载器从classpath的第一项开始,依次检查每一个设定的目录和压缩文件,尝试找出待装入的类文件。当类装载器第一次找到具有指定名字的类时,它就把该类装入,classpath中所有余下的项目都被忽略。

    看起来很简单,对吧?


    三、可能出现的问题

    不管他们是否愿意承认,初学者和富有经验的Java开发者都一样,他们都曾经在某些时候(通常是在那些最糟糕的情形下)被冗长、复杂的classpath欺骗。应用程序所依赖的第三方类和用户定义类的数量逐渐增长,classpath也逐渐成了一个堆积所有可能的目录和档案文件名的地方。此时,类装载器首先装载的究竟是哪一个类也就不再显而易见。如果classpath中包含重复的类入口,这个问题尤其突出。前面已经提到,类装载器总是装载第一个它在classpath中找到的具有合适名字的类,从实际效果看,它“隐藏”了其他具有合适名字但在classpath中优先级较低的类。

    如果不小心,你很容易掉进这个classpath的陷阱。当你结束了一天漫长的工作,最后为了让应用程序使用最好、最新的类,你把一个目录加入到了classpath,但与此同时,你却忘记了:在classpath的另一个具有更高优先级的目录下,存放着该类的另一个版本!

    展开全文
  • Qtpro文件相对路径导入库

    万次阅读 2017-02-16 20:00:13
    Qtpro文件相对路径导入库Qt工程有lib、dll、a、so等文件需要导入时,有时需要指定路径。指定绝对路径换到其他机器编译时会不大方便。那么,如何在Qt pro文件中通过相对路径导入库呢。代码LIBS += -L ./ \ -L ...
  • 2、将内容生成列表放入txt文件中。两个txt文件,train训练文件、val测试文件。 Train里面就是你的分类了。 3、形成LMDB数据集。 4、形成训练集的均值文件。 整理并规约。一般情况下整理用数据增强的功能,一般用...
  • Jenkins参数化构建过程中参数的传递

    千次阅读 2017-02-13 10:45:12
    设置完参数化构建过程后的面板如下: 将参数传递到Python脚本: P4_Version = os.environ["P4_Version"]; #P4版本号 P4_Version = P4_Version.strip(); DevelopmentBuild = os.environ["Development...
  • gulp 用于构建过程(见下文) 如何开始 克隆回购 安装 凉亭安装(npm 在每次 npm 更新/安装后都会进行凉亭更新) 吞咽构建 导航到本地主机:8015 吞咽任务 吞咽 将供应商 js 连接并缩小到 build/vendor.min.js 并将...
  • 简介 Webpack 是当下最热门的前端资源模块化管理和打包工具。它可以将许多松散的模块按照依赖和...webpack目前已经是大部分前端项目打包工具的首选,但是在使用过程中还是存在一些问题。我们下面要讲到的就是常见的
  • 处理静态资源 静态资源可以通过两种方式进行处理: 在 JavaScript 被导入或在 template/CSS 中通过相对路径被引用。...当你在 JavaScript、CSS 或 *.vue 文件中使用相对路径 (必须以 . 开头) 引用...
  • DTI脑网络构建 详细介绍处理过程以及PANDA的使用

    千次阅读 多人点赞 2019-10-23 19:02:14
    举例来说,如果说核磁共振成像是追踪水分子的氢原子,那么弥散张量成像便是依据水分子移动方向制图。DTI是当前惟一的一种能有效观察和追踪脑白质纤维束的非侵入性检查方法。到2015年主要用于脑部尤其对白质束的...
  • 如何理解Gradle?在构建过程中的作用

    千次阅读 2018-07-10 22:36:31
    1.什么是Gradle?gradle是一个项目构建工具,是google官方推荐的Android项目编译工具。
  • ant 路径 在博客文章Java and Ant Properties Refresher和... 通常情况下,在构建过程中看到构建中使用的各种路径也很有价值,尤其是当这些路径由其他路径和其他构建文件中的片段组成时。 幸运的是,如StackOverfl...
  • 在Myeclipse中将一个Android程序代码引入到项目时,在构建项目过程中提示的错误: 1 由于项目的构建路径不完整,所以未构建该项目。找不到 java.lang.Object 的类文件。修正构建路径,然后尝试构建此项目 2 ...
  • java 项目构建过程

    千次阅读 2014-08-16 00:15:15
    java 项目构建过程 单个文件的编译 HelloWorld.java import java.util.*; public class HelloWorld //the class name must the same as file name case sensitivly { public static void main(String[] args...
  • QT pro文件中路径设置、调用dll

    千次阅读 2020-04-22 12:56:08
    工程文件信息会被qmake用于生成包含构建过程中所需的所有命令的MakeFile。工程文件通常包含一系列头文件和源文件,通用配置信息以及音乐程序指定的细节,如应用程序的链接库、搜索路径。 工程文件包含一定数量的不同...
  • 项目构建之maven篇:2.HelloWorld项目构建过程
  • app在android studio的构建过程

    千次阅读 2015-08-18 20:08:06
    android构建系统的概述  所谓的android构建系统就是我们构建项目时所使用的...定制,配置和拓展构建过程 为我们的app在同一个工程和模块构建不同的apk文件 通过源代码集实现代码的复用 android 构建系统的灵活性使
  • ...绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: ...C:xyz est.txt 代表了test.txt文件的绝对路径。...相对路径:相对与某个基准目录的路径。包含Web的相对路径(HTML
  • 使用composer构建自己的项目

    千次阅读 2021-05-06 16:45:11
    平时写项目我们都是使用别人的框架,也没有去研究文件的加载过程,这里从头分析下composer构建自动加载的过程及相关问题 流程: 1:安装composer并创建新项目,这里只简单创建了App 文件夹 2:配置composer.json 文件,...
  • Jenkins的部署及使用,插件集成git,项目持续构建开发,集成sonar服务,做代码分析!
  • electron 完整项目构建过程

    万次阅读 2017-12-01 17:14:48
    打包过程可能会因为缺少文件或下载文件失败而报错,参照 win环境,electron构建时的各种下载错误问题的解决方案 进行处理。 打包结果 参考文档 electron(1)安装和使用 开发electron程序的npm准备工作 ...
  • PDF展示   Web项目 其中有个需求是在网页...1. 将pdf文件转换成tiff文件(icepdf),公司有可以展示tiff的插件,能满足各种需求,但是在pdf转tiff过程中在服务器上出现字重的情况,一直没找出原因,最终放弃。 2.
  • 首先是库文件添加路径的问题 ,只要是你工程用到的头文件,都需要在工程选项配置添加相应的路径,另外,通过一个下午的挣扎,发现最好还是在学习的过程中逐渐构建自己的代码库,最好自己添加需要的库文件,这样...
  • 关于构建项目的理解

    千次阅读 2019-01-06 17:45:47
    1,什么是构建项目?  前端项目,项目的构建可以... 项目构建过程一般在脚手架创建初始项目文件之后,程序员编写完主要功能,需要进一步对项目文件进行处理。 2,构建需要解决的问题  a,面向语言  ECMASc...
  • VS的项目使用bat脚本进行构建

    千次阅读 2016-03-01 19:58:25
    通常情况下,对于一个使用VS来管理的项目,使用VS打开项目的.sln文件,然后右键进行生成即可进行编译,如果想要通过调用脚本比如在Jenkins上调用来进行持续集成,就需要将在VS运行.sln的动作变为脚本。即为.bat...
  • - Dockerfile 指令、构建过程

    千次阅读 2019-06-17 16:54:58
    指定一个环境变量,这个新的环境变量可以在后续的任何 RUN 指令中使用,并在容器运行时保持,这就如同在命令前面指定了环境变量前缀一样; 也可以在其他指令中直接使用这些环境变量: ENV TARGET_DIR /opt/app 、 ...
  • 配置文件看起来有些少,第一句是让注释起作用,第二句是扫描这个包所在的路径下,我们所需要注入的文件所在位置的公共路径。 网上有其他关于annotation起作用的配置,请自行查找。 希望对你有帮助。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 246,708
精华内容 98,683
关键字:

关于构建过程中文件路径的使用