Servlet的service()方法用于应答请求:每次请求都会调用service()方法
public void service(ServletRequest request, ServletResponse response)
ServletRequest:封装了请求信息,可以从中获取到任何的请求信息。
ServletResponse:封装了相应信息,如果想给用户什么相应,具体可以使用该接口的方法实现。
这两个接口的实现类都是服务器给与实现的,并在服务器调用service方法时传入。
ServletRequest
1.获取请求参数:
>String getParameter(String name): 根据请求的参数名词,返回参数值
String user = request.getParameter("user");
String pass = request.getParameter("pass");
System.out.println(user + "," + pass);
若请求参数有多个值(例如checkbox)只能获取第一个提交的值
>String[] getParameterValues(String name):根据请求参数的名字,返回请求参数对应的字符串数组。
String[] interestings = request.getParameterValues("interesting");
for(String interest: interestings){
System.out.println("->" + interest);
}
>Enumeration getParameterNames():返回参数名对应的Enumeration对象
Enumeration<String> names = request.getParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String val = request.getParameter(name);
System.out.println("~~" + name + ":" +val);
}
>Map getParameterMap():返回请求参数的键值对:key: 参数名,value: 参数值
Map<String,String[]> map = request.getParameterMap();
for(Map.Entry<String, String[]> entry: map.entrySet()){
System.out.println("**" + entry.getKey() + ":" + Arrays.asList(entry.getValue()));
}
HttpServletRequest:是SerlvetRequest的子接口,针对于HTTP请求所定义,里边包含了大量获取HTTP请求相关的方法
获取请求的URI:
HttpServletRequest httpServletRequest = (HttpServletRequest) request; //强制类型转换
String requestURI = httpServletRequest.getRequestURI();
System.out.println(requestURI);
获取请求方式:
String method = httpServletRequest.getMethod();
System.out.println(method);
String servletPath = httpServletRequest.getServletPath();
System.out.println(servletPath);