十三、web应用中路径总结
1、路径的编写形式:
1)<a href="/项目名/资源路径"></a> <!--超链接-->
<form action="/项目名/资源路径"></form> <!-- form保单-->
重定向:response.sendRedirect("/项目名/资源路径");
例如://resp.sendRedirect(req.getContextPath()+"/login_error.html");
转发:request.getRequestDispatcher("/资源路径").forward(request,response);
2)欢迎页面:
<welcome-file-list>
<welcome-file>资源路径</welcome-file>
<!——备注:此处的资源路径名字前面没有/ ——>
</welcome-file-list>
3)servlet路径
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.bjpownernode.javaweb.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/路径资源</url-pattern>
<!--此处路径名不需要添加项目的路径名-->
</servlet-mapping>
4)Cookie设置path
cookie.setPath("/项目名/资源路径");
备注:cookie是将回话的状态保存在客户端、HttpSession是将回话的状态保存在服务器端;
session不止是在java中有,你只要遇到b/s架构的,不管是什么语言,都有这种机制Session
5)ServletContext
ServletContext application=config.getServletContext();
application.getRealPath("/WEB-INF/class/db.properties");
application.getRealPath("/资源路径");//此处的资源也不需要加项目名
备注:常用的是超链接、form表单、重定向、转发、servlet路径、欢迎页面、Cookie设置path。
String basePath= request.getSession().getServletContext().getRealPath("/"+EXCLE_FILE_NAME+".xls");
返回的实际路径将与运行servlet容器的计算机和操作系统(包括正确的路径分隔符)的形式相匹配。
6)url-pattern的编写方式:
精确匹配:
<url-pattern>/hello</url-pattern>
<url-pattern>/system/hello</url-pattern>
扩展匹配:
<url-pattern>/abc/*<url-pattern>
后缀匹配:
<url-pattern>*.action</url-pattern>
<url-pattern>*.do</url-pattern>
全部匹配:
<url-pattern>/*</url-pattern>
2、关于WEB-INF文件目录和路径问题



1)资源文件只能放在WebRoot下面,如 CSS,JS,image等.放在WEB-INF下将无法引用
2)页面放在WEB-INF目录下面,这样可以限制访问,提高安全性.如JSP,html
3)只能用转发方式来访问WEB-INF目录下的JSP,不用采用重定向的方式请求该目录里面的任何资源.如图:index.jsp>> main.jsp
4)WEB-INF目录下文件访问资源文件时,可以忽略WEB-INF这一层目录.如main.jsp 要用css目录里的一个css文件.
<link rel="stylesheet"type="text/css" href="css/comm201005faa3.css" />这样就行了,从客户端的地址可以看出来
服务器转向main.jsp就是在webroot下面.所以main.jsp和css目录可以讲是同一级目录.
5)WEB-INF/oa目录下访问images目录.怎么办呢.<imgalt="" src="data:images/instpage.gif"></body>还是这这样.
6)WEB-INF目录下的文件之间如何访问呢.如在main.jsp用<ahref="oa.do">测试OA的路径</a>访问
像main.jsp有10处链接到WEB-INF目录下的其它页面.那就得有10个转向Action.这个可以用DispatchAction类加参数专门处理转向工作.
注:
转向方式: forward
如struts-config文件中配置<forward name="success"path="/WEB-INF/main.jsp" /> 或 在Action中写request.getRequestDispatcher("/WEB-INF/main.jsp").forward(request,response);都是服务器读取了该页面内容,并发送到客户端.客户端的地址不变.内容跳转了
重定向方式: Redirect
如struts-config文件中配置<forward name="success"path="/WEB-INF/main.jsp" redirect="true"/>
或在action中response.sendRedirect("/error.jsp");重定向的含义就是服务器把地址发给客户端,让客户端去访问.这种办法显然针对WEB-INF目录是无用功
十三、web应用中路径总结的更多相关文章
- Java Web开发中路径问题小结
Java Web开发中,路径问题是个挺麻烦的问题,本文小结了几个常见的路径问题,希望能对各位读者有所帮助. (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 ...
- Java Web 开发中路径相关问题小结
Java Web开发中路径问题小结 (1) Web开发中路径的几个基本概念 假设在浏览器中访问了如下的页面,如图1所示: 图1 Eclipse中目录结构如图2所示: 图2 那么针对这个站点的几个基本概 ...
- servlet——web应用中路径问题
target.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html ...
- Java Web开发中路径问题小结(getRequestUrl getContextUrl getServletUrl)
看以博客感觉不错,分享一下http://www.cnblogs.com/tianguook/archive/2012/08/31/2665755.html (1) Web开发中路径的几个基本概念 假设 ...
- 对Java Web项目中路径的理解
第一个:文件分隔符 坑比Window.window分隔符 用\;unix采用/.于是用File.separator来跨平台 请注意:这是文件路径.在File f = new File(“c:\\hah ...
- Web 编程中路径问题
web.xml 中 <url-pattern> 路径(即 Servlet 路径) 要么以 "*" 开头, 要么以 "/" 开头. 转发和包含路径(服 ...
- 关于web开发中路径的问题的总结
web开发中的一个困扰web开发新人的是路径问题: 1:项目的静态资源的根路径:http://localhost:8080/sqec-monitor 即是部署在web服务器中(比如tomcat)中项目 ...
- (转载)JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件
博客源地址:http://www.cnblogs.com/xdp-gacl/p/4220190.html 现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件 ...
- JavaWeb学习总结(五十三)——Web应用中使用JavaMail发送邮件
现在很多的网站都提供有用户注册功能, 通常我们注册成功之后就会收到一封来自注册网站的邮件.邮件里面的内容可能包含了我们的注册的用户名和密码以及一个激活账户的超链接等信息.今天我们也来实现一个这样的功能 ...
随机推荐
- powershell 无法运行一些脚本的情况
有时候在powershell里运行脚本会报错: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 "get-help about_signing" ...
- PyQt5窗口操作大全
1.多窗口交互-使用信号与槽函数'''如果一个窗口和一个窗口交互,尽量不要访问窗口B的控件:应该访问与信号绑定的槽函数,从而降低窗口之间的耦合度 例:如果A直接访问B窗口的控件,一旦B窗口的控件发生改 ...
- shell 脚本基础
弱类型语言 bash 变量类型 本地变量 环境变量 局部变量 位置参数变量 特殊变量 运行 无执行权限 bash hello.sh 有执行权限 检查语法 bash -n user.sh 跟踪每一行的执 ...
- 添加COOKIE
HttpCookie userinfoCookie = new HttpCookie("userinfo"); JObject o = new JObject();//JObjec ...
- TomcatJVM参数优化降低内存使用率(重点)!
JVM是jdk最底层的支柱 做JVM参数优化主要是为了改善服务器性能以及内存使用率 JAVA堆分为三大部分:(新生代.老年代.永久代) ================================ ...
- [ NLP ] CS224N 学习笔记
Lecture1 One-Hot 定义:用N位状态寄存器编码N个状态,每个状态都有独立的寄存器位,且这些寄存器位中只有一位有效,说白了就是只能有一个状态.即保证每个样本中的每个特征只有1位处于状态1, ...
- paramiko linux pip18.1
Collecting paramiko Downloading https://files.pythonhosted.org/packages/cf/ae/94e70d49044ccc234bfdba ...
- js加入收藏
<script> function AddFavorite(sURL, sTitle) { try { window.external.addFavorite(sURL, sTitle); ...
- MySQL(window10)加载配置文件的顺序
mysql加载配置的顺序为:(mysql --help中有详细的说明) C:\WINDOWS\my.ini C:\WINDOWS\my.cnf C:\my.ini C:\my.cnf D:***\my ...
- C++ 判断是文件还是文件夹
转载:https://www.csdn.net/gather_23/NtDaIg1sMDYtYmxvZwO0O0OO0O0O.html Windows平台代码如下: #include <wind ...