JavaWeb--Http

1.使用GET方式传递参数 

  ①在浏览器地址栏中输入某个URL地址或单击网页上的一个超链接时,浏览器发出的HTTP请求消息的请求方式为GET。
  ②如果网页中的<form>表单元素的method属性被设置为了“GET”,浏览器提交这个FORM表单时生成的HTTP请求消息的请求方式也为GET。
  ③使用GET请求方式给WEB服务器传递参数的格式: http://lampbrother/counter.jsp?name=lc&password=123
  ④使用GET方式传送的数据量一般限制在1KB以下。

2.使用POST方式传递参数
  ①POST请求方式主要用于向WEB服务器端程序提交FORM表单中的数据。
  ②POST方式将各个表单字段元素及其数据作为HTTP消息的实体内容发送给WEB服务器,传送的数据量要比使用GET方式传送的数据量大得多。
 

 POST请求消息的格式: 
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

  如何在Servlet中获取请求信息:

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

public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException

ServletRequest 封装了请求信息,可以从中获取任何的请求信息
①获取请求参数

  1.String getParameter(java.lang.String name)  根据请求参数的名字,返回参数的值   若请求参数有多个值(如checkbox),返回第一个
  2.String[] getParameterValues(java.lang.String name)  根据请求参数的名字,返回请求参数对应的字符串数组
  3.Map<String,java.lang.String[]> getParameterMap()   返回请求参数的键值对,key:参数名 value:参数值,String类型
  4.Enumeration<String> getParameterNames()  返回请求参数对应的Enumeration对象,类似于ServletConfig(或ServletContext)中                                                                                                                  的getInitParameterNames()方法

②获取请求的URI

③获取请求方式

 HttpServletRequest是ServletRequest的子接口,使用时需要强转

HttpServletRequest httpServletRequest = (HttpServletRequest)servletRequest;
String uri = httpServletRequest.getRequestURI();
System.out.println("URI: " + uri);      //URI: /loginServlet

String method = httpServletRequest.getMethod();
System.out.println("method: " + method);  //method: POST

  ④若是一个Get请求,获取请求参数对应的那个字符串,即问号后的那个字符串

String queryString = httpServletRequest.getQueryString();
System.out.println("queryString: " + queryString);//queryString: user=51&password=wsdwsx&interesting=shopping&interesting=eating&interesting=playing&Submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2%E5%86%85%E5%AE%B9

  ⑤获取请求的Servlet的映射路径

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

  ⑥

ServletResponse 封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现
这两个接口的实现类都是服务器给与实现的,并在服务器调用service方法时传入
getWriter():返回PrintWriter对象,调用该对象的print()方法,将把print()中的参数打印到客户的浏览器上
②设置响应的内容类型:response.SetContentType("application/msword");
servletResponse.setContentType("application/msword");//令输出为一个word文档,内容为下面的hello
PrintWriter printWriter = servletResponse.getWriter();
printWriter.println("hello");
③ void sendRedirect(String location):请求的重定向(此方法为HttpServletResonse中定义)




















posted @ 2017-12-04 20:29  SkyeAngel  阅读(217)  评论(0编辑  收藏  举报