javaWeb开发中URL地址的书写总结

在jsp页面中获取当前web应用的根目录使用el表达式${pageContext.request.contextPage}
在servlet中获取当前web应用的根目录使用request.getContextPath()
以上两者获取根目录的返回值是“/projectName”
jsp中举例:${pageContext.request.contextPath}/servlet/Test2
servlet中举例:request.getContextPath() + "/servlet/Test2"
WebRoot下的jsp文件可以直接被客户端访问(主页一般放在此目录下),WEB-INF下的jsp文件受保护,不能够被客户端直接访问(通过转发进行访问)。

在javaweb开发过程中地址的书写总结:

在servlet中:

在servlet执行转发过程中书写地址,此地址供服务器调用,此时当前路径为servlet的路径。如果在地址的前面不加“/”,则执行程序的时候服务器会在地址前面自动加上“/projectName/servlet/”。如果加上“/”,此时服务器会认为“/”代表当前web网站的根目录,即“projectName/”目录下。则执行程序的时候服务器会自动在地址前面加“/projectName”
所以在书写的过程中一般建议在地址的前面加上“/”,然后根据当前web应用的目录进行书写地址。
在servlet执行重定向过程中书写地址,因为重定向是直接被客户端使用,此时应当使用完整的路径,即“/projectName(根目录) + 你要访问的网页的完整路径”

在jsp页面中:

若是使用a标签或者使用重定向,由于是提供给用户使用,此时使用完整的路径。和在servlet中使用重定向相同。
若使用转发,此时的情况和在servlet中的情况相同,此时的路径是供服务器直接调用的,此时当前目录是jsp所在目录,若路径之前不加“/”,则服务器再调用的时候,会直接在之前路径之前加上“.../jsp/”。如果加上“/”,此时当前路径就是web应用的根目录,服务器调用的时候会在路径之前加上“/projectName”
总结:
不管是在servlet中还是在jsp中,如果书写的路径是供客户端调用,则使用路径的完整名称(“/projectName/+ 路径”)。
如果路径是被服务器调用,则服务器在调用的时候会使用当前路径+您所书写的路径,如果你的路径之前没有“/”,则使用的当前路径就是当前的servlet或者jsp所在的路径,如果在你写的路径之前加上“/”,则服务器就会在你的路径之前加上web应用的根目录。
书写路径的步骤:

  • 首先思考此地址是供服务器自己使用,还是供客户端使用。
  • 如果此地址是服务器自己使用,先使用"/"将当前路径改为web应用所在的路径,在街上自己要访问的路径。
  • 如果此时地址是供客户端使用的,则直接使用完整的路径。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在jsp页面中获取当前web应用的根目录使用el表达式 ${pageContext.request.context...
    鑫韭缘设计阅读 4,941评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 5,234评论 0 10
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,899评论 18 399
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,430评论 11 349