折腾了一会,终于实现了:在浏览器中输入数据,然后在Java类中取出输出,并使浏览器重定向(接收一个request,返回一个response)。

  这里有几个问题需要详细记录一下。

  首先是request的发起处,即HTML中的form元素。form元素中的有两个属性是必填的:action和method。如下图:

<form action="test" method="get">
Personal Information:<br/>
Your Name:<br/>
<input type="text" name="userName" value="NoOne">
<input type="submit" name="Submit" value="搞定">
</form>

  首先,method属性代表request的提交方式,只能是GET或者POST,这是计算机网络中的基础知识,无需多言。

  而action属性,指明了当提交表单时,向何处发送表单数据。它可以填:

  • 绝对URL - 指向其他站点(比如 action="http://www.google.com"),当然,这里谷歌不会对你的请求做什么回应;
  • 相对URL - 指向站点内的文件(比如 action="test.htm"),或者是处理这些数据的对应的Servlet名(例如action="test",test是处理这些数据的一个servlet所映射的url,我在web.xml中已经映射好了,见下图);
    <servlet>
<servlet-name>indexServlet</servlet-name>
<servlet-class>org.bigo.IndexResponse</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>indexServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>

  这里使用的是相对URL,它是一个servlet,名字为indexServlet(servlet名可以自定义,因为我输入数据的页面为index.html),它所映射到的处理类(对request中的数据进行实际处理的Java类)为org.bigo包中IndexResponse.java。后面为映射配置,我指定了名为indexServlet的servlet,处理这样的request:request的请求URL为“http://www.xxx.com/aaa/.../test”。

  需要注意的是在servlet-mapping的url-pattern中,不能直接写为“test”,任何时候都不能省略斜杠,必须写“/test”。同时在HTML的form元素的action属性中,只能写action="test",而不能写action="/test“。(如果指定的是文件名,也同样如此,加上斜杠后,浏览器有不同的处理方式)

  我的Web应用的url为“http://localhost:8080/jobs/”,所以当在form中编写“action="http://localhost:8080/jobs/test",即填写的绝对url时,也能达到同样的目的。(那么如果这里在绝对URL后加了“/”呢?就会404)。

  这里也写个最佳实践:<url-pattern>元素值为“/aabbcc”,那么HTML的form的action属性用相对url就为“aabbcc”,二者都不要再添加多余的符号了。

  

  这里还需要注意的一个点是,我在IDE的HTML编辑页面,可以点击一个浏览器的logo直接显示一个html文件,IDE提供这个功能是为了方便即时查看页面,此时浏览器中的地址,并不会是你的web工程的地址,所以千万不要在这种情况下进行功能测试。只有在浏览器中输入自己web工程的url后,才会有正确的反馈。(我中间就这样出错了)

Jobs(二) Servlet的配置的更多相关文章

  1. 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置

    原文:使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 摘要 讲解如何配置SpringMVC框架xml,以及如何在Tomcat中运行 目录[-] 文章已针对IDEA 15做了一定 ...

  2. Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)

    一.Servlet简介  1.什么是servlet: sun公司提供的一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API动态的向 ...

  3. Java学习笔记之:Java Servlet环境配置

    一.介绍 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层. 使用 ...

  4. Servlet传统配置方式和Servlet3.0使用注解的方式

    一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: <servlet> <servlet-name ...

  5. DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描

    DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描 liuyuhang原创,未经允许进制转载  吐槽之后应该有所改了,该方式可以作为一种过渡方式 ...

  6. Servlet生命周期 Servlet获取配置信息 ServletContext

    一.Servlet生命周期 实例化 ——> 初始化 ——>  服务 ——>  销毁 出生:(实例化 然后 初始化)tomcat第一次访问,Servlet就出生(默认情况下) 活着:( ...

  7. Servlet开发技术,创建,以及Servlet的配置,web.xml的配置

    直接上图,不废话!!! 第一:首先在Eclipse的包资源管理器中,单机鼠标右键,在弹出的快捷键菜单中选择“新建”/Servlet命令,在弹出的对话框中输入新建的Servlet所在的包和类名,然后单击 ...

  8. Servlet的配置

    让 Servlet 能响应用户请求,必须将 Servlet 配置在 Web 应用中. Servlet 3.0 中有两中配置方式:        1. 在 Servlet 类中使用 @WebServle ...

  9. paip.spring3 mvc servlet的配置以及使用最佳实践

    paip.spring3 mvc servlet的配置以及使用最佳实践 1. Web.xml 1 2. springMVC.xml 2 1. mvcAction .mvcAction 2 2. Res ...

  10. EMW 性能优化二之---并发配置

    EMW 性能优化二之---并发配置 在前一个日志中写到交货的异步更新,对于RFUI RF的前台操作会提升效率,异步更新不用等待更新状态的返回,启用更新队列的方式执行(SM13). 下面再补全性能相关的 ...

随机推荐

  1. mysql数据库的还原及常见问题解决

    例如:需要还原的数据库脚本文件为test.sql,脚本中已包含数据库的创建,test.sql所在目录为/home 1.常用source命令 进入mysql数据库控制台,如mysql -uroot -p ...

  2. 攻防世界Hello,CTF writeup

    解题过程 首先在ida中进行反汇编,查看main函数的代码: 代码的的36行处进行了一个字符串比较,如果v10的值等于v13的值会反馈一个success的输出.v13的值在第15行给出,因此需要知道v ...

  3. python selenium 的配置安装

    selenium的使用需要以下几个配置步骤. (1) 首先安装selenium,使用python自带的pip进行安装.若pip配置到系统环境变量,可以直接在cmd命令行中使用,若没有配置到到环境变量, ...

  4. Linux之破解root密码

    破解CentOs6的root口令 进入单用户模式 重启后在下面界面按任意键   进入此界面后“ a ”在下面界面   输入1 进入单用户模式1之前有空格  按回车键进入命令行执行passwd命令直接修 ...

  5. CPU、io、mem之间的关系

    https://blog.csdn.net/weixin_38250126/article/details/83412749 https://blog.csdn.net/joeyon1985/arti ...

  6. WinCE 开发问题:不支持 Open Generic 方法的 GetParameters。

    WinCE中用的是Newtonsoft.Json.Compact.dll序列化Json的, 今天用Json解析类的时候, 提示异常:不支持 Open Generic 方法的 GetParameters ...

  7. Facebook币Libra学习-4.新的智能合约语言Move入门

    Move是一种新的编程语言,旨在为Libra Blockchain提供安全可编程的基础.Libra Blockchain中的帐户是任意数量的Move资源和Move模块的容器.提交给Libra Bloc ...

  8. 《Flutter 实战》开源电子书

    <Flutter 实战>开源电子书 转 https://blog.csdn.net/OQjya206rsQ71/article/details/86619630   关于 Flutter ...

  9. Markdown使用TOC自动生成导航栏

    经常使用markdown 的玩家一定很想要一个自动生成的导航栏吧,自己写的基本思路就是 轮询监听滚动条的位置,通过抛锚和跳锚实现,这里介绍一下今天的主角,markdown-toc插件: https:/ ...

  10. MySQL连接错误:Can't connect to MySQL server on'localhost' (10055)

    在Windows服务器上确认服务器和mysql都是正常运行,但就是连接不上.搜了一下别人的解决方案, 参考这篇https://blog.csdn.net/langren697/article/deta ...