zoukankan      html  css  js  c++  java
  • 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中定义)

  • 相关阅读:
    C# List的深复制(转)
    asp.net core控制台项目运行
    进度条界面控件
    给窗体做遮罩(另类做法)
    显示列表控件(引用SourceGrid)
    TimeExit 界面无点击定时退出类
    TimeHelp 获取时间戳转换类
    复旦大学2016--2017学年第一学期高等代数I期末考试情况分析
    复旦大学高等代数历届每周一题汇总
    复旦高等代数 I(16级)每周一题
  • 原文地址:https://www.cnblogs.com/yangHS/p/10923892.html
Copyright © 2011-2022 走看看