日期:2014-05-17  浏览次数:20758 次

servlet中怎样接收jsp的form表单提交的内容
不用框架,不用request.getParameter()和getAtriatute()

------解决方案--------------------
getParameterNames(),getParameterMap(),getInputStream()
------解决方案--------------------
探讨
getParameterNames(),getParameterMap(),getInputStream()

------解决方案--------------------
Java code


package com.java91.lesson01;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class RequestTestServlet extends HttpServlet {
    
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        
        
        //读取表单参数
        
        request.setCharacterEncoding("utf-8");//使用什么编码读客户端发过来的二进制数据,需要与HTML编码保持一致。在TOMCAT中,如果是get方法传过来的数据,可能不起作用。
        
        String sno=request.getParameter("sno");//获取单个、指定参数的值
        System.out.println("-----request.getParameter('sno'):"+sno);
        
        String sname=request.getParameter("sname");//获取单个、指定参数的值
        System.out.println("-----request.getParameter('sname'):"+sname);
        
        String grade[]=request.getParameterValues("grade");//获取单个、指定参数的所有值。(一个参数可能有多个值的情况)
        System.out.println("-----request.getParameterValues('grade'):"+grade[0]+","+grade[1]);        
        
        Enumeration enume= request.getParameterNames();//返回一个枚举类型(Enumeration)的实例,值为表单的所有参数名
        
        Map map=request.getParameterMap();//返回一个Map实例,键-值成对的形式,键为参数名,值为参数值
        System.out.println("-----request.getParameterMap():"+map);    
        
        
        
        //其它信息
        
        String encoding=request.getCharacterEncoding();//    返回请求所用的字符编码。
        System.out.println("-----request.getCharacterEncoding(): "+encoding);            
        
        String protocol=request.getProtocol();//返回发送请求所使用的名字和版本号,如:HTTP/1.1
        System.out.println("-----request.getProtocol(): "+protocol);    
        
        String ip=request.getRemoteAddr();//返回客户端的IP地址
        System.out.println("-----request.getRemoteAddr(): "+ip);            

        String scheme =request.getScheme();//返回请求使用的方法的名字,如http,https,ftp等。
        System.out.println("-----request.getScheme(): "+scheme);            
        
        String serverName=request.getServerName();//返回服务器的名字
        System.out.println("-----request.getServerName(): "+serverName);        
        
        int port=request.getServerPort();//返回请求被接收的端口号。
        System.out.println("-----request.getServerPort(): "+port);
        
        String uri=request.getContextPath();//获取标示请求内容的URI的请求部分。
        System.out.println("-----request.getContextPath(): "+uri);
        
        String method=request.getMethod();//返回该请求的HTTP方法名字,如GET/POST
        System.out.println("-----request.getMethod(): "+method);        
        
        String pathInfo=request.getPathInfo();//返回发出请求的URL客户的相关额外路径信息
        System.out.println("-----request.getPathInfo(): "+pathInfo);        
        
        String queryString=request.getQueryString();//获取发出请求的URL的路径之后的查询串。