J2EE/JAVA——HTMLform表单中action的‘/’路径问题

2023-10-27

1.HTML中的form表单简单介绍

HTML中的form表单在JAVA企业级开发中拥有十分重要的地位,HTML表单用于收集用户输入的信息,并将收集到的用户信息发送到web服务器中。在初级阶段,form表单常常使用在设计用户登录、用户反馈和用户选择上。

下面是一个基于form表单的一个简单登录系统:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>
            一个简单登录系统
        </title>
    </head>
    <body>
        <form>
            Username:<input type="text" name="user"><br>
            Password:<input type="password" name="password"><br>
            <input type="submit" value="Submit">
        </form> 
    </body>
</html>

2.HTML表单中的action用法

        在HTML表单中可以在form表单后添加一个action属性,action属性的值是表单提交给的url,当HTML表单提交信息后,提交的信息就会交给action的属性值,不填action或者填为action="",那么表单就会默认提交到当前页面。

下面是一个使用到action属性的登录系统例子:

Servlet代码:

public class LoginServlet extends HttpServlet {

	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		
        String username = request.getParameter("username"); 
        String password = request.getParameter("password");         
        
        System.out.println("username = " + username ); 
        System.out.println("password = " + password ); 
        
        response.setContentType("text/html"); 
        response.getWriter().println("Login Success!"); 
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) 
			throws ServletException, IOException {
		doGet(request, response);
	}
}

HTML源码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
	
	<form action="login"> 
	
	用户名:<input type="text" name="username"> <br> 
	密 码:<input type="password" name="password"> <br> 
	<input type="submit" value="登录"> 
	</form>
</body>
</html>

浏览器演示效果: 

 

当我们输入数据,然后点击登录在编译器的控制台中就会显示我们刚刚输入的数据,并且浏览器就会跳转到登录成功页面。

 3.form表单action的属性值填写中路劲问题

        首先action需要能成功执行,需要action属性的值在对应的路径下能够找到,这就需要正确理解路径的写法。我们先理解路径中‘/’的具体意义。

        一般情况,在服务器端看,/就是项目的根目录。如http://127.0.0.1:8080/Test/,Test后的/就是指的根目录。

        从客户端看,/指的是服务器的虚拟跟目录webapps,如http://127.0.0.1:8080/,8080后的/就是虚拟跟目录。

        在action路径书写中,./代表的就是本级目录,../代表的就是上一级目录。

例如在上一个例子中:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
	
	<form action="login"> 
	
	用户名:<input type="text" name="username"> <br> 
	密 码:<input type="password" name="password"> <br> 
	<input type="submit" value="登录"> 
	</form>
</body>
</html>

 action="login",这里不没有加/意思也是在本级目录中去找。而找的对象则是在web.xml文件中:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <servlet>
    <servlet-name>MyServlet</servlet-name>
    <servlet-class>servlet.LoginServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>MyServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>
</web-app>

值得注意的是,在web.xml文件中用的是/login,在form表单中应该为login。

又因为直接写login,就是在本级目录中找,所以action中login换为./login也可以。

但是不能换为/login,因为换为/login那么就会在html所在目录的根目录下去寻找,就找不到web.xml文件了。

 

直接写/login会在webapp目录下找,无法找到web.xml文件。

同理当html文件在web.xml文件下一级目录中,那么久需要改为../了。

例子:

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

J2EE/JAVA——HTMLform表单中action的‘/’路径问题 的相关文章

  • JAXb、Hibernate 和 beans

    目前我正在开发一个使用 Spring Web 服务 hibernate 和 JAXb 的项目 1 我已经使用IDE hibernate代码生成 生成了hibernate bean 2 另外 我已经使用maven编译器生成了jaxb bean
  • 如何在codeigniter中将上传图片比例限制为16:9?

    这是我用来上传图像的代码 this gt load gt library upload ext pathinfo file name PATHINFO EXTENSION img name now ext imgConfig upload
  • Liferay ClassNotFoundException:DLFileEntryImpl

    在我的 6 1 0 Portal 实例上 带有使用 ServiceBuilder 和 DL Api 的 6 1 0 SDK Portlet 这一行 DynamicQuery query DynamicQueryFactoryUtil for
  • Spring Data JPA 应用排序、分页以及 where 子句

    我目前正在使用 Spring JPA 并利用此处所述的排序和分页 如何通过Spring data JPA通过排序和可分页查询数据 https stackoverflow com questions 10527124 how to query
  • 我可以使用 HSQLDB 进行 junit 测试克隆 mySQL 数据库吗

    我正在开发一个 spring webflow 项目 我想我可以使用 HSQLDB 而不是 mysql 进行 junit 测试吗 如何将我的 mysql 数据库克隆到 HSQLDB 如果您使用 spring 3 1 或更高版本 您可以使用 s
  • 无法解析插件 Java Spring

    我正在使用 IntelliJ IDEA 并且我尝试通过 maven 安装依赖项 但它给了我这些错误 Cannot resolve plugin org apache maven plugins maven clean plugin 3 0
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 禁止的软件包名称:java

    我尝试从数据库名称为 jaane 用户名 Hello 和密码 hello 获取数据 错误 java lang SecurityException Prohibited package name java at java lang Class
  • Jquery 数据表列总和

    我只是参考一下这个链接 https datatables net examples advanced init footer callback html了解如何获取 jquery 数据表中的列总计 但我已经完成了一半的项目 我在html页面
  • php - 解析html页面

    div divbox div p para1 p p para2 p p para3 p table class table tr td td tr table p para4 p p para5 p 有人可以告诉我如何解析这个 html
  • Java TestNG 与跨多个测试的数据驱动测试

    我正在电子商务平台中测试一系列商店 每个商店都有一系列属性 我正在考虑对其进行自动化测试 是否有可能有一个数据提供者在整个测试套件中提供数据 而不仅仅是 TestNG 中的测试 我尝试不使用 testNG xml 文件作为机制 因为这些属性
  • 使用Caliper时如何指定命令行?

    我发现 Google 的微型基准测试项目 Caliper 非常有趣 但文档仍然 除了一些示例 完全不存在 我有两种不同的情况 需要影响 JVM Caliper 启动的命令行 我需要设置一些固定 最好在几个固定值之间交替 D 参数 我需要指定
  • Java Integer CompareTo() - 为什么使用比较与减法?

    我发现java lang Integer实施compareTo方法如下 public int compareTo Integer anotherInteger int thisVal this value int anotherVal an
  • 图像背景不透明度不影响边框

    如何设置背景不透明度而不影响边框线不透明度 我找到的解决方案没有帮助 div class selected img src assets img image product 1 thumbnail jpg alt product 1 thu
  • Google App Engine 如何预编译 Java?

    App Engine 对应用程序的 Java 字节码使用 预编译 过程 以增强应用程序在 Java 运行时环境中的性能 预编译代码的功能与原始字节码相同 有没有详细的信息这是做什么的 我在一个中找到了这个谷歌群组消息 http groups
  • 如何在桌面浏览器上使用 webdriver 移动网络

    我正在使用 selenium webdriver 进行 AUT 被测应用程序 的功能测试自动化 AUT 是响应式网络 我几乎完成了桌面浏览器的不同测试用例 现在 相同的测试用例也适用于移动浏览器 因为可以从移动浏览器访问 AUT 由于它是响
  • 表格行未扩展到全宽

    我有一个表格 当我将表格的宽度设置为 100 并将表格行的宽度设置为 100 时 没有任何反应或宽度发生变化 Table Normal position relative display block margin 10px auto pad
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O
  • CSS溢出文本显示在几行中,没有断字

    我有一些长文本显示在 div 中 该 div 具有固定的宽度和高度 我希望文本显示在几行上 作为 div 高度 并且句子单词不会中断 一行中的单词前缀和下一行中的继续 此外 我想在末尾添加省略号最后一句话 CSS white space n

随机推荐

  • 五大排序算法(C语言)

    一 插入排序 每次将一个待排序的记录按其关键字大小插入到前面已排序好的子序列中 直到全部记录插入完成 4 7 2 6 9 13 1 5 4 7 2 6 9 13 1 5 2 4 7 6 9 13 1 5 2 4 6 7 9
  • Timer.schedule方法的使用

    java util Timer定时器的常用方法如下 schedule TimerTask task long delay 延迟delay毫秒后 执行一次task schedule TimerTask task long delay long
  • Oracle insert 插入数据的几种方式

    1 insert 的单表插入 INSERT INTO
  • Leetcode 本地调试环境(C++)

    文章目录 二叉树调试 刷题时 经常需要本地调试 特此整理一下如何依照 LeetCode 的样式 输入测试用例以及打印结果 增强结果的可视性 二叉树调试 利用数组生成二叉树 这里以LeetCode第102题层序遍历为例 工具函数 TreeNo
  • SmartFusion从FPGA到ARM(十一)——CorePWM的使用

    文章目录 前言 IP核添加与配置 库函数简介 posedge和nededge 对齐方式 示例1 基本PWM生成 示例2 带相位差的PWM生成 PWM应用示例 系列教程 SmartFusion从FPGA到ARM系列教程 前言 CorePWM是
  • 贪心算法例题:2850商人小鑫

    Problem Description 小鑫是个商人 当然商人最希望的就是多赚钱 小鑫也一样 这天 他来到了一个遥远的国度 那里有着n件商品 对于第i件商品需要付出ci的价钱才能得到 当然 对于第i件商品 小鑫在自己心中有一个估价pi 代表
  • 无法解析的外部符号__imp__AlphaBlend@44

    使用Win32 API函数AlphaBlend编译时出现一个错误 无法解析的外部符号 imp AlphaBlend 44 解决办法是在使用得地方包含Msimg32 lib 具体是在文件头部添加代码 pragma comment lib Ms
  • 利用PyQt5制作本地音乐播放器

    介绍 本文是对之前的音乐播放器的一些改进和功能实现 只写了有变化的部分 具体部分请看上一篇博客 利用PyQt5和QSS制作本地音乐播放器 初稿 https blog csdn net weixin 44343083 article deta
  • PHP版今日头条算法面试题(持续更新)

    1 现在有一个字符串 你要对这个字符串进行 n 次操作 每次操作给出两个数字 p l 表示当前字符串中从下标为 p 的字符开始的长度为 l 的一个子串 你要将这个子串左右翻转后插在这个子串原来位置的正后方 求最后得到的字符串是什么 字符串的
  • mysql 字符串主键效率,字符串作为主键的性能损失?

    What would be the performance penalty of using strings as primary keys instead of bigints etc String comparison is much
  • .360勒索病毒数据恢复

    导言 在当今数字时代 随着我们对计算机和互联网的依赖不断增加 威胁网络安全的因素也日益猖獗 其中 360 勒索病毒是一股咄咄逼人的黑暗力量 它能够迅速加密您的数据文件 并以比特币等加密货币的形式勒索您的财产 本文91数据恢复将深入介绍这一极
  • 在Linux中使用VSCode进行PyQt开发

    在Linux中使用VSCode进行PyQt开发 需要进行以下步骤 步骤一 安装Anaconda 在Anaconda官网上下载相应版本的Anaconda安装包 然后执行以下命令进行安装 bash Anaconda XXX Linux x86
  • 【SHOI2017】寿司餐厅【最大权闭合子图】

    题目链接 说实话 这道题从前天开始敲 然后不断的加优化 今晨才过了它 但是却对于最大权闭合子图有了很深的了解 题意 有N种寿司 我们可以吃连续的一段寿司 讲 将得到一系列的贡献 譬如说吃了1 2 3三个寿司 将得到 这么多的贡献值 当然 每
  • 机器学习:你需要多少训练数据?

    摘自 PPTV课堂 作者为Google 软件工程师 美国西北大学电子信息工程博士 擅长大规模分布式系统 编译器和数据库 从谷歌的机器学习代码中得知 目前需要一万亿个训练样本 训练数据的特性和数量是决定一个模型性能好坏的最主要因素 一旦你对一
  • 004.设计原则与思想:设计原则

    设计原则 一 理论一 对于单一职责原则 如何判定某个类的职责是否够 单一 1 如何理解单一职责原则 SRP 二 如何做到 对扩展开放 修改关闭 扩展和修改各指什么 三 里式替换 LSP 跟多态有何区别 哪些代码违背了LSP 四 接口隔离原则
  • IDEA实现远程Debug调试(附上Demo代码)

    目录 一 前提 二 IDEA中如何实现远程Debug模式 1 创建demo项目 2 引入依赖 3 创建启动类和创建demo 4 配置idea 二 IDEA的Debug的优缺点 二 Demo的源代码地址 总结 一 前提 需要准备JDK1 8环
  • C#实现查询MySql数据信息在DataViewGrid控件中显示

    具体的实现步骤如下 1 新建Windows窗体应用程序 添加DataGridView控件 不对DataGridView控件做任何处理 只做拉伸 防止看不到数据 2 为 查看记录 按钮添加事件 代码如下 1 数据库操作类 class DBCo
  • 《机器学习实战》第五章 Python3代码-(亲自修改测试可成功运行)

    由于Peter Harrington所著的这本 机器学习实战 中的官方代码是Python2版本的且有一些勘误 使用Python3的朋友运行起来会有很多问题 所以我将自己在学习过程中修改好的Python3版本代码分享给大家 以供大家交流学习
  • 电力电子中的Boost电路实现PFC功能-介绍与仿真

    今天也是个自习的日子 翻了些资料 觉得自己也是落后了 最新的单级PFC Power Factor Compensation 有Boost Flyback Boost Forward Buck Flyback变流器 和传统的PFC变流器 DC
  • J2EE/JAVA——HTMLform表单中action的‘/’路径问题

    1 HTML中的form表单简单介绍 HTML中的form表单在JAVA企业级开发中拥有十分重要的地位 HTML表单用于收集用户输入的信息 并将收集到的用户信息发送到web服务器中 在初级阶段 form表单常常使用在设计用户登录 用户反馈和