Jobs(二) Servlet的配置
折腾了一会,终于实现了:在浏览器中输入数据,然后在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的配置的更多相关文章
- 使用IntelliJ IDEA开发SpringMVC网站(二)框架配置
原文:使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 摘要 讲解如何配置SpringMVC框架xml,以及如何在Tomcat中运行 目录[-] 文章已针对IDEA 15做了一定 ...
- Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)
一.Servlet简介 1.什么是servlet: sun公司提供的一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API动态的向 ...
- Java学习笔记之:Java Servlet环境配置
一.介绍 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层. 使用 ...
- Servlet传统配置方式和Servlet3.0使用注解的方式
一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: <servlet> <servlet-name ...
- DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描
DB数据源之SpringBoot+MyBatis踏坑过程(二)手工配置数据源与加载Mapper.xml扫描 liuyuhang原创,未经允许进制转载 吐槽之后应该有所改了,该方式可以作为一种过渡方式 ...
- Servlet生命周期 Servlet获取配置信息 ServletContext
一.Servlet生命周期 实例化 ——> 初始化 ——> 服务 ——> 销毁 出生:(实例化 然后 初始化)tomcat第一次访问,Servlet就出生(默认情况下) 活着:( ...
- Servlet开发技术,创建,以及Servlet的配置,web.xml的配置
直接上图,不废话!!! 第一:首先在Eclipse的包资源管理器中,单机鼠标右键,在弹出的快捷键菜单中选择“新建”/Servlet命令,在弹出的对话框中输入新建的Servlet所在的包和类名,然后单击 ...
- Servlet的配置
让 Servlet 能响应用户请求,必须将 Servlet 配置在 Web 应用中. Servlet 3.0 中有两中配置方式: 1. 在 Servlet 类中使用 @WebServle ...
- paip.spring3 mvc servlet的配置以及使用最佳实践
paip.spring3 mvc servlet的配置以及使用最佳实践 1. Web.xml 1 2. springMVC.xml 2 1. mvcAction .mvcAction 2 2. Res ...
- EMW 性能优化二之---并发配置
EMW 性能优化二之---并发配置 在前一个日志中写到交货的异步更新,对于RFUI RF的前台操作会提升效率,异步更新不用等待更新状态的返回,启用更新队列的方式执行(SM13). 下面再补全性能相关的 ...
随机推荐
- iOS开发系列--地图与定位总结
现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.例如你到了一个陌生的 ...
- 表单 Flask-WTF - 校验器
1 wtforms内置的校验器 Class wtforms.validators.DataRequired(message=None)此验证器将会检测field是否输入了数值,实际上是进行了if fi ...
- 微信小程序开发常见坑
前段时间稍微涉猎了微信小程序开发,踩了一些坑,在此总结出来,希望能为小伙伴们提供一点帮助. 页面跳转 对于页面跳转,可能习惯性想到wx.navigateTo,但是在跳转到目标页面是一个tab时,此接口 ...
- 使用python获取微医数据
用到的包: BeautifulSoup pymysql requests json 碰到的问题: 1.医生查询分页数据不能超过38页,超过无法返回数据 2.某些字段对应的html元素包含一些无效的cl ...
- Qt编写安防视频监控系统2-视频播放
一.前言 视频播放功能是核心功能之一,为了统一管理接口,统一封装成一个控件,对外提供seturl open close方法即可,不用去管内部的具体处理,这样就可以提供多种接口来实现统一的管理,比如vl ...
- PAT 甲级 1019 General Palindromic Number (进制转换,vector运用,一开始2个测试点没过)
1019 General Palindromic Number (20 分) A number that will be the same when it is written forwards ...
- iOS 11适配
1.http://www.cocoachina.com/ios/20170915/20580.html 简书App适配iOS 11 2.http://www.jianshu.com/p/efb ...
- Pandas与Matplotlib结合进行可视化
前面所介绍的都是以表格的形式中展现数据, 下面将介绍Pandas与Matplotlib配合绘制出折线图, 散点图, 饼图, 柱形图, 直方图等五大基本图形. Matplotlib是python中的一个 ...
- Jmeter 逻辑控制器 之 循环控制器
今天和大家分享下循环控制器的使用. 一.认识循环控制器 如下图:新增一个循环控制器 循环控制器的设置界面: 循环次数:永远和自定义次数,这个应该比较好理解. 二.使用循环控制器 其实大家对Jmeter ...
- windows是下安装nvmw
nvmw:Windows环境下的node多版本管理工具. 安装: 1. git clone https://github.com/hakobera/nvmw.git 2.修改环境变量 计算机 -&g ...