在我们获取信息前需要了解GET请求和POST请求是HTTP请求的两种基本方法。
GET请求
使用GET请求方式传递参数:
①. 在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。
②. 如果网页中的form表单元素的 method 属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。
③. 使用GET请求方式给WEB服务器传递参数的格式
POST请求
使用 POST 方式传递参数:
①. POST 请求方式主要用于向 WEB 服务器端程序提交 FORM 表单中的数据: form 表单的 method 置为 POST
②. POST 方式将各个表单字段元素及其数据作为 HTTP 消息的实体内容发送给 WEB 服务器,传送的数据量要比使用GET方式传送的数据量大得多。
如何在 Serlvet 中获取请求信息
Servlet 的 service() 方法用于应答请求: 因为每次请求都会调用 service() 方法
1 | public void service(ServletRequest request, ServletResponse response) |
ServletRequest的方法
html文件:
1 |
|
xml文件:
1 | <servlet> |
代码:
1 | public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { |
结果:
123
reading game party
/JavaWeb_Study/loginServlet
POST
null
/loginServlet
ServletResponse的方法
①getWriter(): 返回 PrintWriter 对象. 调用该对象的 print() 方法, 将把 print() 中的参数直接打印
到客户的浏览器上. getOutputStream(),一般用来输出二进制内容,例如图片。getWriter(),用来输出文本类型的内容,如HTML和纯文本。
文本输出情况下需设置编码类型,在调用response.getWriter()前,我们必须设置content type
1 | response.setContentType("text/html; charset=GBK"); |
②设置响应的内容类型: response.setContentType(“application/msword”);
③void sendRedirect(String location): 请求的重定向. (此方法为 HttpServletResponse 中定义.)
请求的转发和重定向
本质区别: 请求的转发只发出了一次请求, 而重定向则发出了两次请求.
具体:
①. 请求的转发: 地址栏是初次发出请求的地址.
请求的重定向: 地址栏不再是初次发出的请求地址. 地址栏为最后响应的那个地址
②. 请求转发: 在最终的 Servlet 中, request 对象和中转的那个 request 是同一个对象.
请求的重定向: 在最终的 Servlet 中, request 对象和中转的那个 request 不是同一个对象.
③. 请求的转发: 只能转发给当前 WEB 应用的的资源
请求的重定向: 可以重定向到任何资源.
④. 请求的转发: / 代表的是当前 WEB 应用的根目录
请求的重定向: / 代表的是当前 WEB 站点的根目录.