相对路径&绝对路径
粗浅理解:
1)绝对路径:带有访问协议的路径,就是带上http访问协议
2)相对路径:
①以带斜杠开头的相对路径:
A)前台相对路径:以web服务器的根路径为参照路径,比如在jsp、HTML中写的路径,这些页面都是由浏览 器进行解析的。例:http://127.0.0.1:8080/
B)后台相对路径:以web应用的路径为参照路径,比如在xml、java文件中写的路径,这些页面都是由服务器 进行解析的。例:http://127.0.0.1:8080/项目名/
②以不带斜杠开头的相对路径:部分前后台军以当前路路径为参照路径,这个当前路径可以理解为浏览器地址栏 中的路径而不是在项目中的路径。
简单小例子说明一个浏览器地址栏中,路径逐一递增的解决方案:
例:
表单登录界面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My First Struts2 Project</title>
</head>
<body>
<!-- 用ognl表达式将Action中的fieldError中的自定义显示内容展现在页面 -->
<s:fielderror/>
<form action="validate/login_validate.action" method="post">
用户名<input type="text" name="name"><br>
手机号<input type="text" name="mobile"><br>
<input type="submit" value="登录">
</form>
</body>
</html>
Action方法进行数据验证:
package com.bjyinfu.struts.actions; import java.util.regex.Pattern; import com.opensymphony.xwork2.ActionSupport; public class LoginAction4 extends ActionSupport { private String mobile;
private String name;
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute(){
return "success";
}
@Override
public void validate() {
//等于null是为了防止越过表单方法问
if(name==null || "".equals(name.trim())){
//底层有个集合叫fieldErrors.size()>0,说明有验证失败的信息,此时会自动跳转到input视图
this.addFieldError("name", "用户名不能为空");
}
if(mobile==null || "".equals(mobile.trim())){
this.addFieldError("mobile", "手机号不能为空");
}else if(!Pattern.matches("^1[34578]\\d{9}", mobile)){
this.addFieldError("mobile", "手机号不符合规定");
}
}
}
将Action方法注册到struts2中:(当输入数据符合规范的时候为“success”,跳转到welcome4.jsp页面上,当输入数据不符合规范的时候为“input”,跳转到login4.jsp登录界面,第二个跳转是struts2底层ActionSupport进行封装的,addFieldError("","")方法底层有个集合叫fieldErrors.size()>0,说明有验证失败的信息,此时会自动跳转到input视图)
)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts> <package name="validate" namespace="/validate" extends="struts-default">
<action name="login_*" class="com.bjyinfu.struts.actions.LoginAction4">
<result name="success">/welcome4.jsp</result>
<result name="input">/login4.jsp</result>
</action>
</package>
</struts>
展示页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>My First Struts2 Project</title>
</head>
<body>
<s:debug></s:debug><br>
<h1>数据验证的执行</h1>
</body>
</html>
下面故意将数据输入错误,会出现这种情况:
第一次点击登录:
第二次点击登录:
第三次点击登录:
结:
a:获取项目名:String path = request.getContextPath();
此示例中的输出<%=path %> 结果:/AjaxPostProject
b:EL表达式中也可以获取项目名:${pageContext.request.contextPath }
此示例中输出 m=${pageContext.request.contextPath } 结果:/AjaxPostProject
c:获取带项目名的请求路径:
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
此示例中输出 <%=basePath %> 结果:http://127.0.0.1:8080/AjaxPostProject/
三种解决方案:
1:所以表单中的action可以写成action="<%=path %>/validate/login_validate.action"此为带斜杠的前段相对路径
2:action="${pageContext.request.contextPath }/validate/login_validate.action"此为带斜杠的前段相对路径
3:action="<%=basePath %>validate/login_validate.action"此为绝对路径
相对路径&绝对路径的更多相关文章
- JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址
在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上 1.可以在servlet的init方法里 String path = getServletContext().getRealP ...
- C#中网站根路径、应用根路径、物理路径、绝对路径,虚拟路径的区别
C#中网站根路径,请站点的最外一层 /表示 应用根路径 ~/表示,有时候C#程序路径并不是网站路径 物理路径 server.mappath("~/") 是指应用程序放在服务器硬盘的 ...
- 根据图片的路径(绝对路径/相对路径都可以),生成base64的
根据图片的路径(绝对路径/相对路径都可以),生成base64的 <!DOCTYPE html> <html> <head> <meta charset=&qu ...
- javaWeb项目中的路径格式 请求url地址 客户端路径 服务端路径 url-pattern 路径 获取资源路径 地址 url
javaweb项目中有很多场景的路径客户端的POST/GET请求,服务器的请求转发,资源获取需要设置路径等这些路径表达的含义都有不同,所以想要更好的书写规范有用的路径代码 需要对路径有一个清晰地认知 ...
- html5-绝对路径/相对路径
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- Linux之文档与目录结构 (/ 用法, 相对路径,绝对路径)
Linux之文档与目录结构 Linux文件系统结构 Linux目录结构的组织形式和Windows有很大的不同.首先Linux没有“盘(C盘.D盘.E盘)”的概念.已经建立文件系统的硬盘分区被挂载到 ...
- Java相对路径/绝对路径总结
Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00019826 Java相对路径/绝对路径总结(2) 修 ...
- JAVA File的创建及相对路径绝对路径
http://blog.sina.com.cn/s/blog_9386f17b0100w2vv.html JAVA File的创建及相对路径绝对路径 (2011-12-09 08:27:56) 转载▼ ...
- 绝对路径-相对路径和File类的构造方法
绝对路径和相对路径 绝对路径:是一个完整的路径,以盘符开始(c: d:)c:\a.txt 相对路径:相对指的是相对于当前项目的根目录(可以省略项目的根目录) 注意: 1.路径不区分大小写 2.路径中的 ...
- JSP Servlet 路径解析 路径设置
转自:http://ethen.iteye.com/blog/800415 在用JSP和Servlet编写Web应用时,经常遇到的问题就是找不到.do路径,或者.do路径不能解析,其实归根到底就是Se ...
随机推荐
- Hibernate入门(四)
一 Hibernate缓存 缓存是介于应用程序和数据库之间,对数据库中的数据复制一份到缓存中,其作用就是为了减少应用程序对数据库的访问,访问数据库时先从缓存中取,提高了程序的性能.Hibernate缓 ...
- Idea 常用功能汇总,工作中常用技巧
1.隐藏没用到的文件 比如 IDEA 的项目配置文件(.iml 和.idea),打开 Settings-File Types, 加入要隐藏的文件后缀. 2.常用技巧 2.1 通过Alt+F8查看变量 ...
- flask 扩展之 -- flask-pagedown
支持 Markdown 语法, 并添加 富文本文章的预览功能. 使用到的包列表: PageDown : 使用 JavaScript 实现的客户端 Markdown 到 HTML 的转换程序. Flas ...
- Python原理 -- 内存管理
语言的内存管理是语言设计的一个重要方面. 它是决定语言性能的重要因素. 无论是 c语言 的手工管理, 还是 Java 的垃圾回收, 都成为语言最重要的特种. 以下以 python 为例, 说明一门动态 ...
- Visual Studio Debugger中七个鲜为人知的小功能
Visual Studio debugger是一个很棒的调试工具,可以帮助程序猿们快速地发现和解决问题.这里给大家简单介绍一下VS调试工具中的七个鲜为人知的小功能. 1. 一键跳转到指定语句 调 ...
- Spring MVC 项目搭建 -4- spring security-添加自定义登录页面
Spring MVC 项目搭建 -4- spring security-添加自定义登录页面 修改配置文件 <!--spring-sample-security.xml--> <!-- ...
- accp8.0转换教材第7章JavaScript操作DOM对象理解与练习
程序调试,chrome开发人员工具,DOM操作,节点和节点间的关系,节点信息,操作节点,获取元素 一.单词部分 ①alert警告②prompt提示③parentNode父节点④childNode子节点 ...
- Python 操作 MYSQL
本文介绍了 Python 操作 MYSQL.执行 SQL 语句.获取结果集.遍历结果集.取得某个字 段.获取表字段名.将图片插入数据库.执行事务等各种代码实例和详细介绍,代码居多, 是一桌丰盛唯美的代 ...
- (转载)Java多线程的监控分析工具(VisualVM)
原文链接:http://blog.csdn.net/chendc201/article/details/22905511 在Java多线程程序运行时,多数情况下我们不知道到底发生了什么,只有出了错误的 ...
- poj 1948 Triangular Pastures 小结
Description Like everyone, cows enjoy variety. Their current fancy is new shapes for pastures. The o ...