在Web开发中,有时确实会被路径问题搞得晕头转向.但是要记住一点小诀窍,就不用再为此烦恼了.我们只要搞清楚我们写的路径是给服务器(tomcat)用还是给浏览器用就可以了.
/**
* 目标资源:target.html
* 给谁用:
* 给服务器用: /表示当前应用的根目录(WebRoot)下
* 给浏览器用: /表示在webapps根目录下
*/
新建一个web工程,在WebRoot下新建一个target.html,等下测试用的上这个页面.同时,新建一个servlet,代码如下:
package com.bighuan.path;
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开发中路径的写法
*
* @author bighuan
*
*/
public class PathDemo extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//解决编码问题
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
/**
* 目标资源:target.html
* 给谁用:
* 给服务器用: /表示当前应用的根目录(WebRoot)下
* 给浏览器用: /表示在webapps根目录下
*/
/**
* 1.转发:路径是给服务器用的
*/
//request.getRequestDispatcher("/target.html").forward(request, response);
/**
* 2.重定向:浏览器用
*/
//response.sendRedirect("/day11_cookie/target.html");
/**
* 3.html页面中超链接(href):浏览器用
*/
// response.getWriter().write(
// "<html><body><a href='/day11_cookie/target.html'>超链接</a></body></html>");
/**
* html页面中form提交:浏览器用
*/
response.getWriter()
.write("<html><body><form action='/day11_cookie/target.html'><input type='submit' value='提交'></input></form></body></html>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
}
代码中都有注释,很好掌握的,不用再为路径烦恼了.(注:本文都是用的绝对路径哦,我觉得绝对路径更不会错,自己也不会晕).