Web工程中各类地址的写法

1)总体原则

                在java web开发中,只要是url地址,那么最好以“/”开头,也就是绝对路径的方式。那么这个“/”到底代表什么呢?

                如果“/”是给服务器用的,则代表当前web工程;如果是给浏览器用的,则代表webapps目录,webapps目录的/后面还得加上项目名

(2)给服务器用的场景

                1.使用ServletContext获取资源的绝对路径

String realPath = this.getServletContext().getRealPath("/WEB-INF/测试图片.jpg");

也就是当前web项目的WebContent目录

                2.请求转发

request.getRequestDispatcher("/index.html").forward(request, response);

(3)给浏览器使用的场景

                1.请求重定向,因为重定向是客户端行为,是由浏览器发起请求,所以地址是webapps的,具体重定向的请求流程查看上一篇的文章介绍

response.sendRedirect("/LearnServlet/index.html");

因为/表示webapps目录,所以需要指定项目

                2.页面超链接

<a href="/LearnServlet/index.html">跳转到首页</a>

这是浏览器使用的超链接,这个“/”是给浏览器用的,所以代表的是webapps目录,所以需要指定webapps目录

                  使用超链接为了避免出现项目名称,可以使用pageContext.request.contextPath来替换

String name = this.getServletContext().getContextPath();

3.form表单

<form action="/LearnServlet/FirstServlet" method="POST">
    <input type="text" name="name"/ >
    <input type="submit" name="submit"/>
</form>

理由类似上面的超链接。

猜你喜欢

转载自www.cnblogs.com/alsf/p/9236700.html