web工程各类URL地址的写法

IT程序员开发必备-各类资源下载清单,史上最全IT资源,个人收藏总结!


对于Web工程下URL地址,有两种写法:一、绝对路径("以' / '开头的路径")   二、相对路径(”不以' / '开头的路径“)

一、绝对路径:

       对于书写绝对路径的URL,首先先写个" / ",然后在看,这个URL是给服务器用的,还是客户端浏览器用的,如果是给服务器用的,则" / "代表当前应用(如这里的RequestAndResponse);如果是给客户端浏览器用的,则" / "代表当前站点(如这里的http://localhost:8080/);

       对于web工程下的URL大致可分为一下几种:

     工程目录结构图:

web工程各类URL地址的写法_第1张图片

package edu.request;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class UrlServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//1.转发类型:(给服务器用的地址)
		//request.getRequestDispatcher("/page/test1.jsp").forward(request, response);//ok
		//request.getRequestDispatcher("page/test1.jsp").forward(request, response);//ok
		//request.getRequestDispatcher("/RequestAndResponse/page/test1.jsp").forward(request, response);  //HTTP Status 404 - /RequestAndResponse/RequestAndResponse/page/test1.jsp
		
        //2.重定向类型:(给浏览器用的地址)
		//response.sendRedirect("/page/test1.jsp");//error: http://localhost:8080/page/test1.jsp
		//response.sendRedirect("page/test1.jsp");//ok
		//response.sendRedirect("/RequestAndResponse/page/test1.jsp");//ok
		
		//3.获取资源真实路径:(给服务器用的)
		response.setHeader("Content-Type", "text/html;charset=utf-8");
		OutputStream out = response.getOutputStream();
		//String path = this.getServletContext().getRealPath("/page/test1.jsp");//ok: E:\赛杰\工程空间workspace\jsp_方立勋\.metadata\.me_tcat\webapps\RequestAndResponse\page\test1.jsp
		//String path = this.getServletContext().getRealPath("page/test1.jsp"); //ok: E:\赛杰\工程空间workspace\jsp_方立勋\.metadata\.me_tcat\webapps\RequestAndResponse\page\test1.jsp
		//String path = this.getServletContext().getRealPath("/RequestAndResponse/page/test1.jsp");//错误地址:E:\赛杰\工程空间workspace\jsp_方立勋\.metadata\.me_tcat\webapps\RequestAndResponse\RequestAndResponse\page\test1.jsp
		//out.write(path.getBytes("utf-8"));
	   
		//4.获取资源文件输入流对象:(给服务器用的)
		//InputStream in = this.getServletContext().getResourceAsStream("/page/test1.jsp");//ok:正确输出test1.jsp页面
		InputStream in = this.getServletContext().getResourceAsStream("page/test1.jsp");//ok:正确输出test1.jsp页面
		//InputStream in = this.getServletContext().getResourceAsStream("/RequestAndResponse/page/test1.jsp");//java.lang.NullPointerException 代码1处
		int len = 0;
        byte buffer[] = new byte[1024];
        while((len=in.read(buffer))>0){ //代码1
        	out.write(buffer,0,len);
        }
        in.close();
		
	}

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

	}

}

<%@ page language="java" import="java.util.*" 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">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'test2.jsp' starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>
  
  <body>
    5. 给客户端浏览器用的地址--&lt;form action=""&gt;类型<br>
     表单1:
     <form action="/page/test1.jsp">
      <input type="text" name="username" value="中国">
      <input type="submit" value="提交" name="button">
      (action="/page/test1.jsp" 地址错误)
     </form>
  <br>
   表单2:
     <form action="page/test1.jsp">
      <input type="text" name="username" value="中国">
      <input type="submit" value="提交" name="button">
      (action="page/test1.jsp" 地址正确)
     </form>
  <br>
     表单3:
     <form action="/RequestAndResponse/page/test1.jsp">
      <input type="text" name="username" value="中国">
      <input type="submit" value="提交" name="button">
      (action="/RequestAndResponse/page/test1.jsp" 地址正确)
     </form>
  <br>
       表单4:
     <form action="../page/test1.jsp">
      <input type="text" name="username" value="中国">
      <input type="submit" value="提交" name="button">
      (action="../page/test1.jsp" 地址错误,跳转至http://localhost:8080/page/test1.jsp)
     </form>
  <br>
  6. 给客户端浏览器用的地址--&lt;a href=""&gt;类型<br>
   <a href="/page/test1.jsp">连接1(href="/page/test1.jsp" 地址错误)</a><p>
   <a href="page/test1.jsp">连接2(href="page/test1.jsp" 地址正确)</a><p>
   <a href="/RequestAndResponse/page/test1.jsp">连接3(href="/RequestAndResponse/page/test1.jsp" 地址正确)</a> <p>    
   <a href="../page/test1.jsp">连接4(href="../page/test1.jsp" 地址错误,跳转至http://localhost:8080/page/test1.jsp)</a><p>
  </body>
</html>

上面页面访问效果:

web工程各类URL地址的写法_第2张图片


二、相对路径



你可能感兴趣的:(web工程各类URL地址的写法)