精华内容
下载资源
问答
  • 首先CXF实现的webservice获取HttpServletRequest方法,注入jdk中WebServiceContext就可以直接获取 import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import ...

    java发布webservice常用的CXF和axis2,业务上需要获取客户端请求头信息

    首先CXF实现的webservice获取HttpServletRequest方法,注入jdk中WebServiceContext就可以直接获取

    
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import javax.annotation.Resource;
    import javax.jws.WebService;
    import javax.servlet.http.HttpServletRequest;
    import javax.xml.ws.BindingType;
    import javax.xml.ws.WebServiceContext;
    import javax.xml.ws.handler.MessageContext;
    import javax.xml.ws.soap.SOAPBinding;
    import java.util.Enumeration;
    
    @Component
    @BindingType(SOAPBinding.SOAP12HTTP_BINDING)
    @WebService(serviceName="MessagePackService", //对外发布的服务名
            targetNamespace="http://webservice.xxxxxxxxxxxxxxx.com/", //指定你想要的名称空间,通常使用使用包名反转
            endpointInterface="com.xxxxxxxxxxxxxxxx.webservice.MessagePackService")
    @Slf4j
    public class MessagePackServiceImpl implements MessagePackService {
    
    
        // 获取HttpServletRequest
        @Resource
        private WebServiceContext webServiceContext;
    
    
        @Override
        public String sayHello(String userName) {
    
            HttpServletRequest request = (HttpServletRequest) webServiceContext.getMessageContext().get(MessageContext.SERVLET_REQUEST);
            Enumeration<String> headerNames = request.getHeaderNames();
            System.out.println(headerNames);
            System.out.println(userName);
            return userName;
        }
    }
    

    axis2实现的webservice获取HttpServletRequest方法,需要引入axis2的MessageContext

    
    import org.springframework.stereotype.Service;
    
    import javax.servlet.http.HttpServletRequest;
    import  org.apache.axis2.context.MessageContext;
    import org.apache.axis2.transport.http.HTTPConstants;
    
    import java.util.Enumeration;
    
    @Service
    public class MessagePackageImpl implements IMessagePackage {
    
    
    
    	@Override
    	public String test(String  collectionEntity) {
    
    		MessageContext mc = MessageContext.getCurrentMessageContext();
    		HttpServletRequest request = (HttpServletRequest)mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
    
    		Enumeration<String> headerNames = request.getHeaderNames();
    		System.out.println(headerNames);
    		return collectionEntity.toString();
    	}
    }
    

     

    展开全文
  • HttpServletRequest 常用方法 常用方法 返回值 方法名 描述 Cookies getCookies() 返回包含客户端随此请求一起发送的所有 Cookie 对象的数组。 long getDateHeader(String name) 以表示 Date 对象的 long ...

    `

    HttpServletRequest 常用方法

    HttpServletRequest继承了ServletRequest,补充了大量的get方法。所以这里把ServletRequest和HttpServletRequset的Api写在一起了

    ServletRequest Api

    返回值 方法名 描述
    Object getAttribute(String name) Object 形式返回指定属性的值,如果不存在给定名称的属性,则返回 null
    Enumeration getAttributeNames() 返回包含此请求可用属性的名称的 Enumeration。如果该请求没有可用的属性,则此方法返回一个空的 Enumeration
    String getCharacterEncoding() 返回此请求正文中使用的字符编码的名称。如果该请求未指定字符编码,则此方法返回 null
    void setCharacterEncoding(String env) 重写此请求正文中使用的字符编码的名称。必须在使用 getReader() 读取请求参数或读取输入之前调用此方法。否则,此方法没有任何效果。
    int getContentLength() 返回请求正文的长度(以字节为单位),并使输入流可以使用它,如果长度未知,则返回 -1。对于 HTTP servlet,返回的值与 CGI 变量 CONTENT_LENGTH 的值相同。
    String getContentType() 返回请求正文的 MIME 类型,如果该类型未知,则返回 null。对于 HTTP servlet,返回的值与 CGI 变量 CONTENT_TYPE 的值相同。
    ServletInputStream getInputStream() 使用 ServletInputStream 以二进制数据形式获取请求正文。可调用此方法或getReader读取正文,而不是两种方法都调用。
    String getParameter(String name) String 形式返回请求参数的值,如果该参数不存在,则返回 null。请求参数是与请求一起发送的额外信息。对于 HTTP servlet,参数包含在查询字符串或发送的表单数据中。
    Enumeration getParameterNames() 返回包含此请求中所包含参数的名称的 String 对象的 Enumeration。如果该请求没有参数,则此方法返回一个空的 Enumeration
    String[] getParameterValues(String name) 返回包含给定请求参数拥有的所有值的 String 对象数组,如果该参数不存在,则返回 null
    Map<K, V> getParameterMap() 返回此请求的参数的 java.util.Map。请求参数是与请求一起发送的额外信息。对于 HTTP servlet,参数包含在查询字符串或发送的表单数据中。
    String getProtocol() protocol/majorVersion.minorVersion 的形式(例如 HTTP/1.1)返回请求使用的协议的名称和版本。对于 HTTP servlet,返回的值与 CGI 变量 SERVER_PROTOCOL 的值相同。
    String getScheme() 返回用于发出此请求的方案的名称,例如 httphttpsftp。不同方案具有不同的构造 URL 的规则,这一点已在 RFC 1738 中注明。
    String getServerName() 返回请求被发送到的服务器的主机名。它是 Host 头值 “:”(如果有)之前的那部分的值,或者解析的服务器名称或服务器 IP 地址。
    int getServerPort() 返回请求被发送到的端口号。它是 Host 头值 “:”(如果有)之后的那部分的值,或者接受客户端连接的服务器端口。
    BufferedReader getReader() 使用 BufferedReader 以字符数据形式获取请求正文。读取器根据正文上使用的字符编码转换字符数据。可调用此方法或 getInputStream读取正文,而不是两种方法都调用。
    String getRemoteAddr() 返回发送请求的客户端或最后一个代理的 Internet Protocol (IP) 地址。对于 HTTP servlet,返回的值与 CGI 变量 REMOTE_ADDR 的值相同。
    String getRemoteHost() 返回发送请求的客户端或最后一个代理的完全限定名称。如果引擎无法或没有选择解析主机名(为了提高性能),则此方法返回以点分隔的字符串形式的 IP 地址。对于 HTTP servlet,返回的值与 CGI 变量 REMOTE_HOST 的值相同。
    void setAttribute(String name, Object o) 存储此请求中的属性。在请求之间重置属性。此方法常常与 RequestDispatcher 一起使用。
    void removeAttribute(String name) 从此请求中移除属性。此方法不是普遍需要的,因为属性只在处理请求期间保留。
    Locale getLocale() 基于 Accept-Language 头,返回客户端将用来接受内容的首选 Locale。如果客户端请求没有提供 Accept-Language 头,则此方法返回服务器的默认语言环境。
    Enumeration getLocales() 返回 Locale 对象的 Enumeration,这些对象以首选语言环境开头,按递减顺序排列,指示基于 Accept-Language 头客户端可接受的语言环境。如果客户端请求没有提供 Accept-Language 头,则此方法返回包含一个 LocaleEnumeration,即服务器的默认语言环境。
    boolean isSecure() 返回一个 boolean 值,指示此请求是否是使用安全通道(比如 HTTPS)发出的。
    RequestDispatcher getRequestDispatcher(String path) 返回一个 RequestDispatcher对象,它充当位于给定路径上的资源的包装器。可以使用 RequestDispatcher 对象将请求转发给资源,或者在响应中包含资源。资源可以是动态的,也可以是静态的。
    String getRealPath(String path) 从 Java Servlet API 的版本 2.1 起,请改用 ServletContext#getRealPath
    int getRemotePort() 返回发送请求的客户端或最后一个代理的 Internet Protocol (IP) 源端口。
    String getLocalName() 返回接收请求的 Internet Protocol (IP) 接口的主机名。
    String getLocalAddr() 返回接收请求的接口的 Internet Protocol (IP) 地址。
    int getLocalPort() 返回接收请求的接口的 Internet Protocol (IP) 端口号。

    HttpServletRequest

    返回值 方法名 描述
    Cookies getCookies() 返回包含客户端随此请求一起发送的所有 Cookie 对象的数组。
    long getDateHeader(String name) 以表示 Date 对象的 long 值的形式返回指定请求头的值。
    String getHeader(String name) String 的形式返回指定请求头的值。
    Enumeration getHeaders(String name) String 对象的 Enumeration 的形式返回指定请求头的所有值。
    Enumeration getHeaderNames() 返回此请求包含的所有头名称的枚举。如果该请求没有头,则此方法返回一个空枚举。
    int getIntHeader(String name) int 的形式返回指定请求头的值。
    String getMethod() 返回用于发出此请求的 HTTP 方法的名称,例如 GET、POST 或 PUT。返回的值与 CGI 变量 REQUEST_METHOD 的值相同。
    String getPathInfo() 返回与客户端发出此请求时发送的 URL 相关联的额外路径信息。额外路径信息位于 servlet 路径之后但在查询字符串之前,并且将以 “/” 字符开头。
    String getPathTranslated() 返回在 servlet 名称之后但在查询字符串之前的额外路径信息,并将它转换为实际路径。返回的值与 CGI 变量 PATH_TRANSLATED 的值相同。
    String getContextPath() 返回请求 URI 指示请求上下文的那一部分。请求 URI 中首先出现的总是上下文路径。路径以 “/” 字符开头但不以 “/” 字符结束。对于默认(根)上下文中的 servlet,此方法返回 “”。容器不会解码此字符串。
    String getQueryString() 返回包含在请求 URL 中路径后面的查询字符串。如果 URL 没有查询字符串,则此方法返回 null。返回的值与 CGI 变量 QUERY_STRING 的值相同。
    String getRequestedSessionId() 返回客户端指定的会话 ID。此值可能不同于此请求的当前有效会话的 ID。如果客户端没有指定会话 ID,则此方法返回 null
    String getRequestURL() 重新构造客户端用于发出请求的 URL。返回的 URL 包含一个协议、服务器名称、端口号、服务器路径,但是不包含查询字符串参数。
    String getServletPath() 返回此请求调用 servlet 的 URL 部分。此路径以 “/” 字符开头,包括 servlet 名称或到 servlet 的路径,但不包括任何额外路径信息或查询字符串。返回的值与 CGI 变量 SCRIPT_NAME 的值相同。
    HttpSession getSession(boolean create) 返回与此请求关联的当前 HttpSession,如果没有当前会话并且 create 为 true,则返回一个新会话。
    HttpSession getSession() 返回与此请求关联的当前会话,如果该请求没有会话,则创建一个会话。
    boolean isRequestedSessionIdValid() 检查请求的会话 ID 是否仍然有效。
    boolean isRequestedSessionIdFromCookie() 检查请求的会话 ID 是否是作为 cookie 进入的。
    boolean isRequestedSessionIdFromURL() 检查请求的会话 ID 是否是作为请求 URL 的一部分进入的。
    展开全文
  • HttpServletRequest的getParameter方法

    万次阅读 多人点赞 2017-09-25 13:05:21
    HttpServletRequest的getParameter方法:tomcat或者其他的Servlet容器在调用程序员的Servlet之前已经帮我们做了很多事情了,比如解析HttpRequestLine(HTTP请求行)和解析HttpHeader(HTTP请求头)等等,但事实上在...

    HttpServletRequest的getParameter方法:

    tomcat或者其他的Servlet容器在调用程序员的Servlet之前已经帮我们做了很多事情了,比如解析HttpRequestLine(HTTP请求行)和解析HttpHeader(HTTP请求头)等等,但事实上在Servlet之前,服务器只解析到Header就停了,剩下的请求体留在request.getInputStream的流里,所以,如果你想在Servlet里面获得请求体里的内容,直接去读request.getInputStream()就好了。 但事情可能还没那么简单,我们知道,当我们在前端提交一个表单的时候,假设表单的内容为:name=baolin&password=mima,我们是可以直接在Servlet里调用request.getParameter("name");来获取到name的值的,大家有没有想过,如果form表单用的是POST方法提交,那么毫无疑问参数是在请求体里的,前面说过,如果想获取请求体里的内容,是可以在request流里直接读的,那么问题来了:

    • 因为流是不能往回读的,如果我在之前先用request.getInputStream()读取完了请求体,这时候我再来用request.getParameter("name");获取name的值,得到的是真实值还是个空呢?或者我先调用了request.getParameter();再来request.getInputStream();尝试获取请求体内容,可以得到吗?
    • 第二个问题,如果我在请求行里的URI部分这么写: /testServlet?name=baolin,接着又在请求体里附加name=baobao,然后post提交,这时候在后台Servlet调用request.getParameter("name");获取的是baolin还是baobao呢?
    • 第三个问题,如果我写了两个一样的参数,我应该怎样获取这两个参数呢?

    答案:

    1. (该问题的前提是参数在请求体里,并且Content-Type是application/x-www-form-urlencoded)因为流是不能往回读的,所以如果程序员自己通过request获取的InputStream读完了请求体,那么再来调用request.getParameter试图获取参数得到的是null,反之亦然。
    2. request.getParameter()方法的解析顺序为:URI -> 请求体,所以如果在URI获取到了需要的参数,那就不会再去请求体解析了

    【很明显这句是有问题的,Tomcat解析Parameter的逻辑应该是:parameter的name和value是一对多的关系,tomcat会先解析URI里的queryString,然后判断如果是post请求&&content-type="aplication/x-www-form-urlencoded"不管之前有没有获取到需要的参数都会去解析body,也就是说如果不是post请求而是delete或者其它请求或者content-type不是"aplication/x-www-form-urlencoded"则不会去读取body,这种情况getInputSteam读取body会得到数据】2017-10-24勘误

    1. 可以用request.getParameterValues(“name”)方法来获取所有name

    多平台统一消息系统,一个接口推送所有平台,解决多个消息平台消息推送问题(包括企业微信、钉钉、邮箱等平台)

    展开全文
  • HttpServletRequest详解

    万次阅读 多人点赞 2019-05-16 09:41:37
    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 获得客户机信息: ...

    HttpServletRequest 详解

    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
    获得客户机信息:

    getRequestURL() 返回客户端发出请求时的完整URL。
    getRequestURI() 返回请求行中的参数部分。
    getQueryString () 方法返回请求行中的参数部分(参数名+值)
    getRemoteHost() 返回发出请求的客户机的完整主机名。
    getRemoteAddr() 返回发出请求的客户机的IP地址。
    getPathInfo() 返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以"/"开头。
    getRemotePort() 返回客户机所使用的网络端口号。
    getLocalAddr() 返回WEB服务器的IP地址。
    getLocalName() 返回WEB服务器的主机名。

    举例:返回客户端发出请求时的完整URL

    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class Servlet extends HttpServlet {
    	@Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse resp)
    			throws ServletException, IOException {
    		// TODO Auto-generated method stub
    		doPost(request, resp);
    	}
    
    	@Override
    	protected void doPost(HttpServletRequest request, HttpServletResponse resp)
    			throws ServletException, IOException {
    		String requestUrl = request.getRequestURL().toString();// 得到请求的URL地址
    		resp.setCharacterEncoding("UTF-8");// 设置将字符以"UTF-8"编码输出到客户端浏览器
    		// 通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
    		resp.setHeader("content-type", "text/html;charset=UTF-8");
    		PrintWriter out = resp.getWriter();
    		out.write("请求的URL地址:" + requestUrl);
    	}
    }
    

    在这里插入图片描述
    获得客户机请求头

    方法
    getHeader(string name) 以 String 的形式返回指定请求头的值。如果该请求不包含指定名称的头,则此方法返回 null。如果有多个具有相同名称的头,则此方法返回请求中的第一个头。头名称是不区分大小写的。可以将此方法与任何请求头一起使用
    getHeaders(String name) 以 String 对象的 Enumeration 的形式返回指定请求头的所有值
    getHeaderNames() 返回此请求包含的所有头名称的枚举。如果该请求没有头,则此方法返回一个空枚举

    获得客户机请求参数

    getParameter(String name) 根据name获取请求参数(常用)
    getParameterValues(String name) 根据name获取请求参数列表(常用)
    getParameterMap() 返回的是一个Map类型的值,该返回值记录着前端(如jsp页面)所提交请求中的请求参数和请求参数值的映射关系。(编写框架时常用)

    请求转发:
    指一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理。
    1.通过ServletContext的getRequestDispatcher(String path)方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。
    例如:将请求转发的test.jsp页面

    RequestDispatcher reqDispatcher =this.getServletContext().getRequestDispatcher("/test.jsp");
    reqDispatcher.forward(request, response);
    

    2.通过request对象提供的getRequestDispatche(String path)方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。**
    例如:将请求转发的test.jsp页面

    request.getRequestDispatcher("/test.jsp").forward(request, response);
    

    request对象同时也是一个域对象(Map容器),开发人员通过request对象在实现转发时,把数据通过request对象带给其它web资源处理。

    String data="心若静,风奈何";
    
             * 将数据存放到request对象中,此时把request对象当作一个Map容器来使用
    
             */
            request.setAttribute("data", data);
            //客户端访问RequestDemo06这个Servlet后,RequestDemo06通知服务器将请求转发(forward)到test.jsp页面进行处理
            request.getRequestDispatcher("/test.jsp").forward(request, response);
    

    request对象作为一个域对象(Map容器)使用时,主要是通过以下的四个方法来操作
    *
    setAttribute(String name,Object o)方法,将数据作为request对象的一个属性存放到request对象中,例如:request.setAttribute(“data”, data);
    *
    getAttribute(String name)方法,获取request对象的name属性的属性值,例如:request.getAttribute(“data”)
    *
    removeAttribute(String name)方法,移除request对象的name属性,例如:request.removeAttribute(“data”)
    *
    getAttributeNames方法,获取request对象的所有属性名,返回的是一个,例如:Enumeration
    attrNames = request.getAttributeNames();

    展开全文
  • HttpServletRequest 常用方法讲解

    千次阅读 2017-02-24 14:22:21
    见:... Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象, 从客户端取数据找HttpServletRequest,向客户端发送数据找HttpServletRespon
  • HttpServletRequest和ServletRequest的区别以及HttpServletRequest对象方法的用法
  • HttpServletRequest

    千次阅读 2019-02-12 17:21:18
     HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 二、Request常用方法 2.1、...
  • HttpServletRequest对象常用方法

    千次阅读 2018-11-18 17:18:09
    HttpServletRequest对象常用方法 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。 ...
  • http://blog.csdn.net/xxj_jing/article/details/70754428 HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder  .getRequestAttributes())  
  • HttpServletRequest request方法详解

    千次阅读 2019-04-19 11:39:43
    // 第一次调用请求对象的getParameter、getParameterValues、getParameterMap、getParameterNames方法时 // Web容器将判断该请求是否包含post变量,如果包含它将读取请求的InputStream并解析这些变量,InputStream...
  • 1、HttpServletRequest常用方法 ServletRequest 接口:表示请求对象,封装了请求的数据和获取请求数据的方法HttpServletRequest 接口:ServletRequest 接口的子接口,封装了所有的请求数据和获取符合Http协议的...
  • Spring 获取HttpServletRequest常用方法

    千次阅读 2017-09-20 17:31:58
    import javax.servlet.http.HttpServletRequest;import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes;public class ...
  • HttpServletRequest对象方法的用法

    千次阅读 2021-06-09 14:38:37
    service(ServletRequest req, ServletResponse res)方法,并在这个方法中,将ServletRequest、ServletResponse这两个对象向下转型,得到我们非常熟悉的HttpServletRequest和HttpServletResponse两个对象,然后将...
  • HttpServletRequest接口中常用方法

    千次阅读 2018-11-02 14:51:29
    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,http请求头中的所有信息都封装在这个对象中,通过HttpServletRequest提供的方法可以获得客户端请求的所有信息。 例如,客户端请求的...
  • HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 常用到的几个方法: request....
  • httpservletrequest

    2015-01-27 13:51:08
    httpservletrequest 公共接口类HttpServletRequest继承自ServletRequest.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip...
  • 1.可以获取query String中的参数和form-data,其他的,如json字符串,无法获取。
  • 发送的头信息等都属于客户端发来的信息,service()方法中形参接收的是 HttpServletRequest 接口的 实例化对象,表示该对象主要应用在 HTTP 协议上,该对象是由 Tomcat 封装好传递过来。   HttpServletRequest 是 ...
  • HttpServletRequest常用的方法

    千次阅读 2017-05-25 16:10:32
    1、假设客户端地址是: http://user.cbice.com/cbice/BoardAction.do?operation=doSearch&index=index&boardIndex=boardIndex 通过request对象得到客户端url方法如下: 1、request.getRequestURL:...
  • HttpServletRequest获取URL的相关方法

    千次阅读 2017-10-31 15:06:52
    HttpServletRequest获取URL的相关方法主要有以下几个: String url = request.getRequestURL().toString(); String requestURI = request.getRequestURI(); String contextPath = request.getContextPath();
  • 获取HttpServletRequest几种方法

    万次阅读 2018-12-04 21:47:58
    HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); spring 直接办法 public ModelAndView userLandlord(Model model, ...
  • HttpServletRequest的属性和方法

    千次阅读 2018-03-20 00:44:16
    javax.servlet.http.HttpServletRequest接口:HttpServletRequest类主要处理:1.读取和写入HTTP头标2.取得和设置cookies3.取得路径信息4.标识HTTP会话方法:String getAuthType() 如果servlet由一个鉴定方案所保护,...
  • HttpServletRequest参数获取,HttpServletRequest详解

    万次阅读 多人点赞 2018-07-28 23:32:32
    --------------------------HttpServletRequest参数获取,HttpServletRequest详解------------------------...1 HttpServletRequest获取参数方法 可以使用HttpServletRequest获取客户端的请求参数,相关方法如下:...
  • 根据Servlet规范,如果同时满足下列条件,则请求体(Entity)中的表单数据,将被填充到request的parameter集合中(request.getParameter系列方法可以读取相关数据): 1 这是一个HTTP/HTTPS请求 2 请求方法是POST...
  • 通过httpServletRequest.getInputStream()获取InputStream之后,遇到Required request body is missing错误? 如果你回答“是”的话,那你就来对了。在本文中,我们就来讨论一下, 问题 1:为什么InputStream无法...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 261,858
精华内容 104,743
关键字:

httpservletrequest方法