java web中路径问题。
转自:http://blog.csdn.net/liang5630/article/details/38474543
如有侵权,请及时联系本人及时删除
在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对。
java web中的路径使用按我的分法可以分两种情况,当然啦两者使用相对路径是一致,本文只说绝对路径。
情况一、指向外部的web组件和本身关系不大的,这一类的有:html中使用路径的标签,比如<a>标签中的href;servlet和jsp中的重定向sendRedirect(path);
情况二、指向内部的web组件和本身有关系的,这一类我暂时看到的有:servlet或者jsp的转发
假设在myapp项目下有个login.html,index.jsp,还写了两个servletA和servletB.
在web.xml中的地址配置:
<url-pattern>/servlet/servletA</url-pattern>
<url-pattern>/servlet/servletB</url-pattern>
在情况一中:若在路径中以/开头,则这一/相当于http://localhost:8080/
1、login.html有个form表单有提交给servletA,那么action要填的路径:
绝对路径方式:action="/myapp/servlet/servletA" ------http://localhost:8080/myapp/servlet/servletA
相对路径方式:action="servlet/servletA" ------http://localhost:8080/myapp/servlet/servletA
2、login.html有个<a>链接到index.jsp 那么
绝对路径方式:href="/myapp/index.jsp" ------http://localhost:8080/myapp/index.jsp
相对路径方式:action="index.jsp" ------http://localhost:8080/myapp/index.jsp
3、index.jsp中重定向到servletA
绝对路径方式:sendRedirect("/myapp/servlet/servletA"); ------http://localhost:8080/myapp/servlet/servletA
相对路径方式:sendRedirect("servlet/servletA"); ---http://localhost:8080/myapp/servlet/servletA
在情况二中:若在路径中以/开头,则这一/相当于http://localhost:8080/myapp/
1.servletA转发到servletB
绝对路径方式:request.getRequestDispatcher("/servlet/servletB").forward(request, response);
--------http://localhost:8080/myapp/servlet/servletB
相对路径方式:request.getRequestDispatcher("servlet/servletB").forward(request, response);
--------http://localhost:8080/myapp/servlet/servletB
注意:
建议使用绝对路径,相对路径是相对于当前浏览器地址栏的路径(源地址)。
可能会出现:你在某个页面写了一个相对路径(目标路径),因为转发是不改变地址的,那么要是别人是通过转发到达你的这个页面的,那么地址栏的源地址就是不确定的,既然不确定你使用相对路径相对于这个不确定的路径就极有可能出错,所以建议使用绝对路径,这样可避免这种问题。
获得项目路径和绝对路径:
项目路径:String path=request.getContextPath(); ---- /myapp
String p=this.getServletContext().getRealPath("/"); ----- G:\environment\tomcat\webapps\myapp\
总结:
这里主要弄明白是指向外部的还内部的,外部时"/"就是代表主机路径,内部时"/"就是代表当前项目路径.
java web中路径问题。的更多相关文章
- java web中servlet、jsp、html 互相访问的路径问题
java web中servlet.jsp.html 互相访问的路径问题 在java web种经常出现 404找不到网页的错误,究其原因,一般是访问的路径不对. java web中的路径使用按我的分法可 ...
- Java web中常见编码乱码问题(一)
最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...
- Java Web 中使用ffmpeg实现视频转码、视频截图
Java Web 中使用ffmpeg实现视频转码.视频截图 转载自:[ http://www.cnblogs.com/dennisit/archive/2013/02/16/2913287.html ...
- Java Web 中 过滤器与拦截器的区别
过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法u ...
- JAVA WEB 中的编码分析
JAVA WEB 中的编码分析 */--> pre.src {background-color: #292b2e; color: #b2b2b2;} pre.src {background-co ...
- Java web中常见编码乱码问题(二)
根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析: 2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...
- 深入分析Java Web中的编码问题
编码问题一直困扰着我,每次遇到乱码或者编码问题,网上一查,问题解决了,但是实际的原理并没有搞懂,每次遇到,都是什么头疼. 决定彻彻底底的一次性解决编码问题. 1.为什么要编码 计算机的基本单元是字节, ...
- 解决java web中safari浏览器下载后文件中文乱码问题
解决java web中safari浏览器下载后文件中文乱码问题 String fileName = "测试文件.doc"; String userAgent = request.g ...
- java web 中 读取windows图标并显示
java web中读取windows对应文件名的 系统图标 ....显示 1.获取系统图标工具类 package utils; import java.awt.Graphics; import j ...
随机推荐
- CAD如何直接打印,不出现打印对话框?
主要用到函数说明: MxDrawXCustomFunction::Mx_Print 直接打印,不出现打印对话框,详细说明如下: 参数 说明 double ptLBx 打印的范围左下角x double ...
- ThinkPHP---thinkphp实用项
[一]代码调试 (1)跟踪信息 ①简介:用于展示系统执行的相关状况,类似于快递的物流信息.ThinkPHP中默认关闭.如需使用,则通过配置项SHOW_PAGE_TRACE(显示页面跟踪)来配置. ②位 ...
- elk大纲
一.ELK功能概览 1.检索 2.数据可视化--实时监控(实时刷新) nginx 访问量 ip地区分布图(大数据) 3.zabbix 微信联动报警 4.大数据日志分析平台(基于hadoop) 二.ka ...
- iOS的影片播放 MediaPlayer 和 AVPlayer
在iOS開發上,如果遇到需要播放影片,如開機動畫…,我們很習慣地會使用MediaPlayer來播放影片,因為很方便使用,所以就一直使用下去.但是隨著客戶的要求越來越嚴苛,尤其是過場動畫或互動效果上的表 ...
- iOS中NSAttributedString的使用--对关键字着色,以及处理html实例
1,最近项目中用到了一个功能,一个很好的功能.就是用户在搜索的时候,搜索结果出来后对你输入的关键字进行红色标记.这样用户就很请楚的看到自己输入什么后会出现什么样子的结果.还有一个功能是,现在有一段文字 ...
- uWSGI+nginx+django+virtualenv+supervisor部署项目
一.前言 在部署项目前,你已有一个能够在你本机测试过,能正常启动的Django项目(毕竟本文主要讲解部署Django项目),以及掌握了Linux系统的一些基本命令. 相关链接: Centos7安装py ...
- CCF201609-2 火车购票 java(100分)
试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一 ...
- STM32 内存管理实验
参考原文<STM32F1开发指南> 内存管理简介 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.最主要的目的是如何高效.快速的分配,并且在适当的时候释放和回收内存资源.内存管 ...
- JWT & HMAC-SHA256
JWT JSON Web Tokens https://jwt.io/ https://en.wikipedia.org/wiki/JSON_Web_Token#Structure HMACSHA25 ...
- Swift对象创建过程(PUT Object)——纠删码策略(二)
相应Object使用纠删码(EC)作为存储策略时,BaseObjectController类中PUT和GET需要调用的一些方法会被ECObjectController中相应函数覆盖. 在GET Obj ...