javaWeb项目之Servlet学习笔记----web路径

在之前的web应用开发,尤其是Servlet的学习过程中,我们碰到多次要写路径的问题,这些路径并不统一,因此这里将大致说明下各个方法或者对象创建中会碰到的路径写法:

  首先,在web开发中,注意这里特别强调是在web开发中,也就是我们用Servlet来处理web应用的过程中:

  地址最好以“/”开头!!!

  以“/”开头在不同的对象或方法、标签中代表不同的相对根目录。区别在于编程者要注意这个地址是给服务器端使用的,还是给客户端浏览器使用的。

  如果是给服务器端使用的地址,“/”代表当前web工程;

  如果是给客户端浏览器使用的地址,“/”代表服务器中的主机,或者表示服务器部署web应用的根目录(如Tomcat的【webapps】目录)。

 

以下通过几个例子来说明:

1.

    this.getServletContext().getRealPath("/index.jsp");

在服务器端操作服务器中的资源,所以是给服务器使用的地址,表示该web工程下的index.jsp。

 

2.

    this.getServletContext().getRequestDispatcher("/index.jsp");

 

3.

    response.sendRedirect("/myservlet/index.jsp");

重定向需要配合响应头“Location”来将响应发给浏览器,再由浏览器来重新发送请求给重定向中的新URL,所以是给客户端浏览器使用的地址。【myservlet】为web应用名,存在于Tomcat的【webapps】目录下。

 

4.

    response.getWriter().write("<meta http-equiv='refresh' content='3;url=/myservlet/index.jsp'>");

很明显这个将会给浏览器进行解析出这个HTML语言作为页面中的响应头,所以是给浏览器的地址,需要提供web应用名。

 

5.

    <form action=”/myservlet/servlet/ServletRegister”>
    </form>

在浏览器中提交表单给服务器,是给浏览器的地址。

 

6.

    <a href=”/myservlet/servlet/ServletRegister”></a>
    <img src=”/myservlet/servlet/ServletRegister” />

均为给浏览器的地址。

 

这里注意:对于Servlet这样的web资源,路径都是以对外访问路径名(虚拟路径)为主(在web.xml文档中<servlet-mapping>标签定义),所不同的是对于浏览器地址来说需要加上web应用名。例:

对于服务器地址:

    request.getRequestDispatcher("/servlet/ServletDemo").forward(request, response);

对于客户端浏览器地址:

    response.sendRedirect("/myservlet/ servlet/ServletDemo");

 

另记:“/”通常用于表示虚拟地址,如URL地址,而“\”通常用于系统硬盘上的文件地址。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值