servlet HTTP获取请求数据

  <body>
    This is my HTML page. <br>
        <h3>get </h3>
    <form  action="/day1/requestdemo2" method="GET">
        用户名:<input type"text" name="name"/><br/>
        密码:<input type="password" name="password"/><br/>
        <input type="submit" value="提交">
  
    </form>
    <h3>Post </h3>
    <form  action="/day1/requestdemo2" method="POST">
        用户名:<input type"text" name="name"/><br/>
        密码:<input type="password" name="password"/><br/>
        <input type="submit" value="提交">
  
    </form>
  </body>

 

 

不推荐的办法:

public class requestdemo2 extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

System.out.println("get:");
String value=request.getQueryString();
System.out.println(value);
    }


    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        System.out.println("post:");
InputStream in=  request.getInputStream();
byte[] buf=new byte[1024];
int len=0;
while((len=in.read())!=-1){
    String str= new String(buf,0,len);
    System.out.println(str);
}

    }

 

 

推荐方式:

doget(),dopost()通用,获取数据方式

    String name=    request.getParameter("name");
    String password=    request.getParameter("password");
        System.out.println(name+":"+password);
        
        System.out.println("================================================");
        Enumeration<String > enums=request.getParameterNames();
        while(enums.hasMoreElements()){
            String paraname=enums.nextElement();
            String paravalue=request.getParameter(paraname);
            System.out.println(paraname+"="+paravalue);
        }

 

 

传递的请求参数如何获取              

                           GET方式: 参数放在URI后面

                           POST方式: 参数放在实体内容中

 

                          获取GET方式参数:

                                            request.getQueryString();

                          获取POST方式参数:

                                            request.getInputStream();

 

                          问题:但是以上两种不通用,而且获取到的参数还需要进一步地解析。

                          所以可以使用统一方便的获取参数的方式:

                                  

                                  核心的API:

                                   request.getParameter("参数名");  根据参数名获取参数值(注意,只能获取一个值的参数)

                                   request.getParameterValue("参数名“);根据参数名获取参数值(可以获取多个值的参数)

 

                                   request.getParameterNames();   获取所有参数名称列表  

 

posted @ 2017-06-15 11:26  yimian  阅读(5014)  评论(0编辑  收藏  举报
访问人数:AmazingCounters.com