Servlet-ServletRequest
Servlet-Service参数
@Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { }
ServletRequest:封装了请求信息,可以从中获取到任何的请求信息
ServletResponse:封装了响应信息,如果想给用户什么响应,具体可以使用该接口的方法实现。
这两个接口的实现类是服务器给予实现的,并在服务器调用service方法时传入。
1、Servlet-ServletRequest
1)获取请求参数:
> String getParameter(String name):根据请求参数的名字,返回参数值
若请求参数有多个值(例如:checkbox),该方法只能获取到第一个提交的值
>String getParameterValues(String name):根据请求参数的名字,返回请求参数对应的字符串数组
>Enumeration getParameterNames():返回参数名对应的Enumeration对象,类似于ServletConfig(或ServletContext)的getInitParameterNames()方法
>Map getParameterMap():返回请求参数的键值对: key:参数名,value:参数值,String数组类型
@Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { System.out.println("请求来了。。。"); String user = servletRequest.getParameter("username"); System.out.println(user); String interesting = servletRequest.getParameter("interesting"); System.out.println("__"+interesting); String[] param = servletRequest.getParameterValues("interesting"); /* atguigu __111*/ for (String interes:param ) { System.out.println("<>"+interes); } /* <>111 <>222*/ Enumeration<String> names = servletRequest.getParameterNames(); while (names.hasMoreElements()){ String name = names.nextElement(); String value = servletRequest.getParameter(name); System.out.println("- _ -"+name +" "+value); } /* - _ -username atguigu - _ -password 123 - _ -interesting 111*/ Map<String,String[]> map = servletRequest.getParameterMap(); for (Map.Entry<String,String[]> m:map.entrySet() ) { System.out.println(" _ " + m.getKey()+ ":" + Arrays.asList( m.getValue())); } /* _ username:[atguigu] _ password:[123] _ interesting:[111, 222]*/ HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest; String requestURI = httpServletRequest.getRequestURI(); System.out.println(requestURI); String method = httpServletRequest.getMethod(); System.out.println(method); String queryString = httpServletRequest.getQueryString(); System.out.println(queryString); String servletPath = httpServletRequest.getServletPath(); System.out.println(servletPath); /* /loginServlet POST null /loginServlet*/
/loginServlet
GET
username=atguigu&password=123&interesting=111&interesting=222
/loginServlet
}
获取请求方式:
HttpServletRequest:是ServletRequest的子接口,针对于HTTP请求所定义,里面包含了大量获取HTTP请求相关的方法
2.Servlet-ServletResponse
1)getWriter():返回PrintWriter对象,调用该对象的print()方法,将把print()中的参数直接打印到客户的浏览器上
PrintWriter printWriter = servletResponse.getWriter();
printWriter.print("HelloWorld...");
2)设置响应的内容类型
servletResponse.setContentType("application/msword");
3)void sendRedirect(String location):请求的重定向(此方法为HttpServletResponse中定义)