web工程中URL地址的写法

     在开发中我们不可避免的要碰到许多需要写URL地址的情况,这常常让我们感到头疼。下面笔者推荐一种简单的做法。URL地址分为绝对路径和相对路径两种。相对路径又分为相对资源路径和相对根路径。显然绝对路径在开发中是要禁用的。至于相对资源路径和相对根路径用哪个的问题,笔者推荐用相对根路径,相对资源路径容易引起混乱。笔者建议在web开发中通通使用相对根路径,即通通以"/"开头写URL地址。因为这样我们只需弄清楚"/"代表谁即可。可以简单的理解为"/"是给谁用的,就代表谁。给服务器用,代表web工程;给浏览器用就代表webapps。

package com.yyz.response;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//web工程中URL地址的写法
public class ResponseDemo extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //servletContext,给服务器用,"/"代表web工程
        this.getServletContext().getRealPath("/download/1.gif");
        //forward,给服务器用,"/"代表web工程。
        this.getServletContext().getRequestDispatcher("/register.html");
        //sendRedirct,给浏览器用,"/"代表webapps。
        response.sendRedirect("/test/register.html");
/**
 * 在register.html中要访问ResponseDemo.java,超链接的写法,给浏览器用,"/"代表webapps
 * <a href="/test/servlet/ResponseDemo"></a>
 */
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    }

}

为了便于大家理解,下面附上Myeclipse下Package Explorer的结构图:

另外还有一个容易疑惑的地方,究竟使用"/"还是用"\"。读取硬盘上的资源用"\",处理URL资源用"/"。而服务器中的所有资源都是web资源,通通用"/"。但当我们读取硬盘上的一个文件时用"\",如

 FileInputStream in = new FileINputStream("c:\ag\sd")

原文地址:https://www.cnblogs.com/yyz666/p/4048169.html