servlet之ServletRequest与ServletResponse (三)

时间:2021-03-18 18:08:33

·servlet的service()方法用于应答请求:每次请求都会调用service()方法

public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException 

ServletRequest :封装了请求信息,可以获取任何的请求信息
ServletResponse :封装了相应信息,如果想给用户什么相应,可以具体使用该接口方法实现。

·ServletRequest(可以获取任何的请求信息)

  1)获取请求参数

  String getParameter()  //获取一个,函数的参数就是input里面name的值

  String[] getParameterValues //获取一组,checkbox

  Enumeration getParameterNames() //获取所有的name值

  Map getParameterMap() //获得键值对

@Override
public void service(ServletRequest Request, ServletResponse Response) throws ServletException, IOException {
//根据请求参数的名字,返回参数值。若有多个值(如checkbox),该方法只返回第一提交的值
String name1 = Request.getParameter("user");
System.out.println(name1);
String name2 = Request.getParameter("1");
System.out.println(name2);
String[] name3 = Request.getParameterValues("1");
for(String x: name3){
System.out.println(x);
} Enumeration<String> name4 = Request.getParameterNames();
while(name4.hasMoreElements()){
String name = name4.nextElement();
String val = Request.getParameter(name);
System.out.println(name+" :"+val);
}
System.out.println("service"); }

  2)利用HttpServletRequest获取更多值:HttpServletRequest是ServletRequest的子接口,需要强转

上代码

HttpServletRequest re = (HttpServletRequest)Request;
String uri = re.getRequestURI();
System.out.println(uri);

  总结:getRequestURI():请求uri

     getQueryString():若是GET请求方式,获取?后面的信息

        getServletPath():获取servlet的映射路径·

·ServletResponse (想给用户什么相应,可使用该接口方法实现)

  PrintWriter getWriter()

PrintWriter out =  Response.getWriter();
out.println("objk"); //在浏览器上打印objk