`

Servlet httprequest wrapper -> $_REQUEST + $_FILE

阅读更多

servlet(3.0不知道是否还是如此),request.getParameter和request.getParameterValues很恶心,就像request.getParameterMap一样,事先你得知道是参数个数是多个还是一个——checkbox,or input。

 

Freemarker的servlet包里有俩关于request的wrapper,分别是request的attribute和parameter,结果有几行——

 

 for (Enumeration enumeration = request.getParameterNames(); enumeration.hasMoreElements();) {

keys.add(enumeration.nextElement());

 }

 

***

 

  public Object next() {

return request.getParameter((String)iter.next()); 

  }

 

——完全就把request.getParameterValues不考虑进去么,php的$_REQUEST用了一个约定,input name="ll[]" type="checkbox" => $_REQUEST['ll] = array('choosed1', 'choosed2'),

 

java里,你也可以搞这么一下,parameterNames中以'[]'结尾的都是数组,同理,上传方面,用一个扩展自HttpServletRequestWrapper的重写下getParameterMap和getParameterNames,这样,freemarker的那个HttpRequestParametersHashModel的组织结构

 

就变成这样的了

 

params          = hashmodel 

           ._files  = hashmodel

 

单独拿出来自己在逻辑控制层写代码也像Spring的ModelMap一样了,如此以来,什么url route,参数绑定,都好弄了

分享到:
评论

相关推荐

    短信验证码注册登录用php语言可PHP - cURL、HTTP_Request2、 pecl_http.php文件.zip

    $request->setBody(json_encode(['phone' => '1234567890', 'key' => 'your_api_key'])); $response = $request->send(); echo $response->getBody(); ``` 3. **PHP - pecl_http** `pecl_http` 是PHP的一个扩展,...

    php 模拟get/post封装类

    ->open('http://127.0.0.1/HttpRequest/r.php') ->get(); */ //第二种GET /* $http = new HttpRequest($config); $res = $http->open('http://127.0.0.1/HttpRequest/r.php') ->get(); */ //POST 同上 $...

    Laravel开发-laravel-http-request-service

    $filePath = $request->file('image')->store('uploads', 'public'); ``` 4. **路由参数**:在控制器方法中,路由参数可以直接作为方法的参数,它们将由Laravel自动从HttpRequest中提取。例如,路由定义为`Route:...

    jdk10 jdk-10.0.2_windows-x64_bin 网盘下载

    - 打开“控制面板” -> “系统和安全” -> “系统” -> “高级系统设置”。 - 在“高级”选项卡中点击“环境变量”按钮。 - 在“系统变量”区域,新建或编辑`JAVA_HOME`变量,将其值设置为JDK的安装路径。 - 编辑`...

    HttpRequest下载图片的Demo

    request->setMethod(cocos2d::network::HttpRequest::Method::GET); request->setTag("DownloadImage"); request->setResponseCallback([=](cocos2d::network::HttpClient*, cocos2d::network::HttpResponse*) { //...

    HTTP客户端工具库ws-http.zip

    $httpResponse = $httpRequest->get("https://api.github.com"); $watcher = \Ws\Http\Watcher::create($httpResponse); $watcher  ->assertStatusCode(200)  ->assertHeadersExist(array(  "X-GitHub-...

    HttpRequest-Reptile-master.rar

    对于IDEA2017,可以通过File -> Project Structure -> Modules -> Dependencies来添加依赖。 接下来,我们来看如何使用HttpRequest库进行网络请求。以下是一个简单的示例: ```java import ...

    HttpRequest--java读取http post请求

    java读取接口代码,形如:http://127.0.0.1:8088/hlapp/train/validationCardInfo?a=X&b=X 这样的接口可以用该方法。

    HTTPRequest-lib-master.rar

    在描述中提到"HTTPRequest-lib-master IDEA2017测试通过",这暗示了该库已经成功地在集成开发环境(Integrated Development Environment, IDE) IDEA 2017版本下进行了测试,确保了在该版本IDE中的兼容性和功能完整性...

    J2EE -- 字符编码问题

    -- 其他servlet配置 --> <servlet> <servlet-name>action</servlet-name> <!-- ... --> </servlet> <!-- 其他servlet-mapping配置 --> <servlet-mapping> <servlet-name>action</servlet-name> <!-- ... -->...

    Unreal-Engine-http-requests:使用C ++蓝图编写的API客户端,可与我的其他存储库中的API配合使用

    Unreal-Engine-http-requests 用C ++编写的为UE4.20.3编写的API客户端它包含一个蓝图类,该蓝图类可以仅通过一个节点发出http请求。 该客户端与REST API和其他存储库中的服务器一起使用。

    http的请求处理PHP类

    foreach ($curl_array as $url => $ch) { $response = curl_multi_getcontent($ch); echo "Response from $url:\n$response\n"; curl_multi_remove_handle($mh, $ch); } curl_multi_close($mh); } } ``` 在...

    jdk9 jdk-9.0.4_windows-x64_bin 网盘下载

    HttpRequest request = HttpRequest.newBuilder() .uri(new URI("http://example.com")) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out....

    PyPI 官网下载 | awscrt-0.2.13-cp37-cp37m-macosx_10_9_x86_64.whl

    request = http.HttpRequest() request.method = http.HttpMethod.GET request.uri = "/" stream = await http.HttpClientConnection.create(uri, client_bootstrap) response = await stream.send_request...

    22-08-09-062_JsonTable(基本设置Jquery DataTables)

    -- 动态填充的数据 --> </tbody> </table> <script> $(document).ready(function () { // DataTables 初始化 $('#example').DataTable({ "processing": true, // 显示处理状态 "serverSide": true, // ...

    myclient_cpp

    request->setRequestType(cocos2d::network::HttpRequest::Type::GET); request->setTimeoutSec(10.0f); // 添加回调函数处理响应 request->setResponseCallback(CC_CALLBACK_2(MyScene::onHttpRequestCompleted, ...

    http-request:使用HTTP协议进行简单工作的库

    $ http = \ Garik \ HttpRequest :: get ( 'http://geocode-maps.yandex.ru/1.x/?format=json' , array ( 'geocode' => $ city ))-> acceptJson (); $ json = $ http -> ok () ? json_decode ( $ http -> body ())...

    php中http请求封装HttpClient精华中的经典代码

    $url = $this->buildUrl($this->baseUrl . $uri, $params); return $this->sendRequest('GET', $url); } public function post($uri, array $data = [], array $headers = []) { // 发送POST请求 return $...

    服务器下载文件

    String file_unique = request.getParameter("file_unique"); String date = file_unique.substring(0,7); path = date+"/"+file_unique; System.out.println("--下载路径--:"+path); System.out.println("----...

    HttpRequest+Document读取xml+HtmlParse+AsyncTask

    在Android开发中,HttpRequest、Document、HtmlParse以及AsyncTask是常用的技术组件,它们分别用于网络请求、XML解析、HTML解析和异步任务处理。这些技术的结合使用可以帮助开发者实现从远程服务器获取数据,解析XML...

Global site tag (gtag.js) - Google Analytics