关于"/"
- 只要是需要通过浏览器发送请求的地方(比如HTML代码、sendRedirect方法),"/“一般代表虚拟主机根目录,即相当于端口号之后的”/"
- 相当于http://localhost:8080/ 中最后的"/"
- 服务器程序内部跳转,"/"一般代表本web应用根目录(比如映射、getRequestDispatcher()方法)
- 相当于http://localhost:8080/test/ 中最后一个"/"
项目结构
在web.xml中配置映射,以/开始
- 如果没有斜杠,在启动Tomcat时就会报错(*或.匹配另论)
不使用web.xml,以注解配置
- 没有/,也会报错
HTML中form表单action动作中
此时提交后的URL=http://localhost:8080/test/one
当action="/one"
提交之后会报错,URL变为http://localhost:8080/one
也可以这样写
action="/test/one"
这样可以运行,但是不推荐
重定向sendRedirct()
// 正确写法 不加"/"
// 此时index.jsp是在WebContent,如果不是需要添加额外路径
resp.sendRedirect("index.jsp");
//或者
resp.sendRedirect("/test/index.jsp");
转发getRequestDispatcher()
//正确写法
req.getRequestDispatcher("/index.jsp").forward(req, resp);