9_JavaWEB_ServletRequest

10.如何在Servlet中获取请求信息

  • Servlet的service()方法用于应答请求:因为每次请求都会调用service()方法。
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException
(1) ServletRequest:封装了请求信息。可以从中获取到任何的请求信息
(2) ServletResponse:封装了相应信息,如果想给用户什么响应,具体可以                   使用该接口的方法实现。
(3) 这两个接口的实现类都是服务器给予实现的,并且在服务器调用service方法时传入.
  • ServletRequest:
    请求响应流程
1. 获取请求参数
>String getParameter(String name) 
 根据请求参数的名字,返回参数值。若请求参数有多个值,如多选checkbox,该方法只能获取到第一个提交的值。
>Map<String[]> getParameterMap() 
 返回请求参数的键值对:key 参数名,value 参数值 String 数组类型
>Enumeration<String> getParameterNames() 
 返回参数对应的Enumeration对象。类似于ServletConfig(或ServletContext)的getInitParameterNames()方法        
>String[]getParameterValues(String name) 
  根据请求参数的名字,返回请求参数对应的字符串数组。
2. 获取请求的URI
    HttpServletRequest servletRequest =(HttpServletRequest)request;
    String URI = servletRequest.getRequestURI();
    System.out.println(URI);
3. 获取请求方式:      
    String method = servletRequest.getMethod();
    System.out.println(method);
4. 获取请求的字符串(若是一个GET请求),即问号后的字符串
    String queryString = servletRequest.getQueryString();
    System.out.println(queryString);
5. 获取请求的Servlet请求的映射路径
    String servletPath = servletRequest.getServletPath();
    System.out.println(servletPath); // /loginServlet
6. 和attribute相关的方法
注:HttpServletRequest:是ServletRequest的子接口。针对于HTTP请求所定义。里面包含了大量获取HTTP请求相关的方法。     
    <form action="loginServlet" method="get">
        user:<input type="text" name="user"/>
        password:<input type="text" name="password"/>   
        <br><br>
        Interesting:
        <input type="checkbox" name="interesting" value="reading"/>Reading
        <input type="checkbox" name="interesting" value="game"/>Game
        <input type="checkbox" name="interesting" value="party"/>Party
        <input type="checkbox" name="interesting" value="shopping"/>Shopping
        <input type="checkbox" name="interesting" value="sport"/>Sport
        <input type="checkbox" name="interesting" value="TV"/>TV
        <input type="submit" value="Submit"/>
    </form>
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.shi.webapp.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/loginServlet</url-pattern>
    </servlet-mapping>
    public void service(ServletRequest request, ServletResponse arg1) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("请求来了");
        String user = request.getParameter("user");
        String password = request.getParameter("password");
        System.out.println("user:"+user+",password:"+password);

        String interesting = request.getParameter("interesting");
        System.out.println("--->"+interesting);

        String []interestings = request.getParameterValues("interesting");
        for (String inter:interestings) {
            System.out.println("....."+inter);

        }

        Enumeration<String> enumer = request.getParameterNames();
        while (enumer.hasMoreElements()) {
            String name = enumer.nextElement();
            System.out.println("`````"+name);
        }

        Map<String, String[]> map = request.getParameterMap();
        for (Map.Entry<String, String[]> entry: map.entrySet()) {
            System.out.println("**"+entry.getKey()+":"+Arrays.asList(entry.getValue()));
        }

        HttpServletRequest servletRequest = (HttpServletRequest)request;
        String URI = servletRequest.getRequestURI();
        System.out.println(URI);

        String method = servletRequest.getMethod();
        System.out.println(method);

        String queryString = servletRequest.getQueryString();
        System.out.println(queryString);

        String servletPath = servletRequest.getServletPath();
        System.out.println(servletPath); // /loginServlet
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值