时,HTTP要求头中的所有信息都封装在这个工具中,通过这个工具供应的方法,可以得到客户端要求的所有信息。

我们回顾刚才的过程,我们在浏览器的地址栏中输入http://localhost/wzry/login.do,那么我们便是给做事器发起了一个要求login.do。
便是web.xml中配置的url-pattern,随便你写什么,不是非得要“xxx.do”。

个中,要求头便是Request Headers. 我们还可以看到要求的办法是Get办法,通过浏览器地址栏的办法便是GET办法。
现在,我们改变在要求的同时加入一点信息:

servlet返回jspmapJava项目从入门到装逼在Servlet中吸收和返回数据 Vue.js

http://localhost/wzry/login.do?username=admin&password=123&type=weixin

在要求地址后面加一个 ?,开始拼接数据,每一个数据都是key=value 的形式,不同数据之间用 & 连接。
再次回车。
我们可以看到信息发生了变革:

不论你是什么要求,你往做事器通报的数据只能是 字符串!

现在,我们可以在Servlet中吸收这些参数!

运行结果:

正常情形下,为了保存这些数据,我们都会各自建立一个Java类,比如用户类。
我们为了方便起见,可以采取一种公用的数据构造来保存,那便是Map。
从道理上也能明白吧,客户端通报数据到我们的做事器,我们是不是首先得想办法把它存起来?彷佛给你一筐鸡蛋,然后他说,鸡蛋给你,框子我得拿走,那么你是不是得找一个容器,把鸡蛋装起来呢?不便是这个道理嘛。

Map便是这么一个容器。

修正后的代码

在实际的开拓中,传进来的数据肯定是不一样的,如果我们太依赖于getParameter这个方法,就无法做到灵巧变通。
那么有没有一种通用的方法,让request工具中附带的数据自动转换为Map呢?

我已经封装好了一个工具类,里面就有这样的方法。

这里用到了列举,实现细节我们不去谈论,现在用这个代码来进行一把骚操作。

静态导入这个工具类:

import static com.wzry.util.WebUtil.;

直接调用转换的方法:

爽不?

2、HttpServletResponse

Web做事器收到客户真个http要求,会针对每一次要求,分别创建一个用于代表要求的request工具(HttpServletRequest)、和代表相应的response工具(HttpServletResponse)。

request和response工具即代表要乞降相应,那我们要获取客户机提交过来的数据,只须要找request工具就行了。
要向客户机输出数据,只须要找response工具就行了。

在刚才的例子中,我们添加以下代码:

页面效果:

我们通过这种办法,就可以往客户端发送一个数据。

刚才讲了GET办法提交可以直接在浏览器地址栏操作,GET办法提交的缺陷便是会暴露自己的数据信息,还有一种POST提交的办法。
比较GET办法要安全一点,它不会直接暴露数据。
现在我们通过form表单来做一个讲解。

在WebContent目录下新建一个index.jsp。

编写form表单:

用户名和密码都有对应的id:

为了项目的严谨性,防止用户通过抓包的办法手动提交,从而绕过JS验证,我们一样平常还须要在后台也进行一个验证。

为了方便起见,我们先把js验证给去掉。

我们故意不填写用户名和密码,点击登录按钮,结果并没有什么卵用。
由于实在通报到后台是有值的,只是为””,这一点和js不同,在Java中,””不即是假,它只是代表一个空字符串。
以是我们须要修正一下验证条件。
还有,为了不让代码连续往下实行,我们须要及时return。

为了给用户返回缺点信息,我们得把信息抛到页面上。

关注一下,这里有两个重复点,于是考虑封装。

再来一个通用的把数据返回给前台的方法: