JavaWeb:笔记(二)

 

1、GET 请求和 POST 请求:

1)、使用 GET 方式传递参数:

①、在浏览器地址栏中输入某个 URL 地址或单击网页上的一个超链接时,浏览器发出 HTTP 请求消息的请求方式为 GET。

②、如果网页中的 <form> 表单元素的 method 属性被设置为了 “GET”,浏览器提交这个 form 表单时生成的 HTTP 请求消息的请求方式也为 GET。

③、使用 GET 请求方式给 WEB 服务器传递参数的格式:

http://www.hnust.com/counter.jsp?name=a&password=123

④、使用GET方式传送的数据量一般限制在 1KB 以下。

2)、使用 POST 方式传递参数:

①、POST 请求方式主要用于向 WEB 服务器端程序提交 form 表单中的数据:form 表单的 method 属性设为 post。

②、POST 请求方式将各个表单字段元素及其数据作为HTTP 消息的实体内容发送给 WEB 服务器,传送的数据量要比使用 GET 方式传送的数据量大得多。

POST /counter.jsp HTTP/1.1
referer: http://localhost:8080/Register.html
content-type: application/x-www-form-urlencoded
host: localhost:8080
content-length: 43

name=zhangsan&password=123 --请求体中传递参数。

 

2、如何在 Serlvet 中获取请求信息:

1)、Servlet 的 service() 方法用于应答请求:因为每次请求都会调用 service() 方法

public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ }

ServletRequest:封装了请求信息,可以从中获取到任何的请求信息。

ServletResponse:封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现。

这两个接口的实现类都是服务器给予实现的,并在服务器调用 service 方法时传入。

2)、ServletRequest:封装了请求信息,可以从中获取到任何的请求信息。

①、获取请求参数:

  》String getParameter(String name):根据请求参数的名字,返回参数值。若请求参数有多个值(例如: checkbox),该方法只能获取到第一个提交的值。

  》String[] getParameterValues(String name):根据请求参数的名字,返回请求参数对应的字符串数组。

  》Enumeration getParameterNames():返回参数名对应的 Enumeration 对象。类似于 ServletConfig(或 ServletContext) 的 getInitParameterNames()  方法。

  》Map getParameterMap():返回请求参数的键值对:key:参数名,value :参数值,String 数组类型。

②、获取请求的 URL:

HttpServletRequest httpServletRequest = (HttpServletRequest) request;

String requestURI = httpServletRequest.getRequestURI();
System.out.println(requestURI); // /day_29/loginServlet

③、获取请求方式:

String method = httpServletRequest.getMethod();
System.out.println(method); //GET

④、若是一个 GET 请求, 获取请求参数对应的那个字符串, 即 ? 后的那个字符串。

String queryString = httpServletRequest.getQueryString();
System.out.println(queryString); //user=a&password=123&interesting=game&interesting=party&interesting=shopping

⑤、 获取请求的 Serlvet 的映射路径 

String servletPath = httpServletRequest.getServletPath();
System.out.println(servletPath); // /loginServlet

⑥、和 attribute 相关的几个方法:(后续)

3)、HttpServletRequest,是 SerlvetRequest  的子接口,针对于 HTTP 请求所定义,里面包含了大量获取 HTTP 请求相关的方法。

4)、ServletResponse:封装了响应消息,如果想给用户什么响应,具体可以使用该接口的方法实现。

①、getWriter():返回 PrintWriter 对象,调用该对象的 print() 方法,将把 print() 中的参数直接打印到客户的浏览器上。

②、设置响应的内容类型:response.setContentType("application/msword");

③、void sendRedirect(String location): 请求的重定向。 (此方法为 HttpServletResponse 中定义。)

 over。

posted @ 2017-01-22 23:24  稻小白  阅读(285)  评论(0编辑  收藏  举报