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中定义)