当前位置: 首页 > news >正文

长泰建设局网站深圳最穷的三个区

长泰建设局网站,深圳最穷的三个区,免费制作个人网页,网站备案 新增文章目录 SpringMVC 获得请求数据获得请求参数获得基本类型参数获得POJO类型参数获得数组类型参数获得集合类型参数请求数据乱码问题参数绑定注解requestParam获得Restful风格的参数获得Restful风格的参数自定义类型转换器获得Servlet相关API获得请求头RequestHeaderCookieValu… 文章目录 SpringMVC 获得请求数据获得请求参数获得基本类型参数获得POJO类型参数获得数组类型参数获得集合类型参数请求数据乱码问题参数绑定注解requestParam获得Restful风格的参数获得Restful风格的参数自定义类型转换器获得Servlet相关API获得请求头RequestHeaderCookieValue 文件上传文件上传客户端三要素文件上传原理 单文件上传步骤 SpringMVC 获得请求数据 获得请求参数 客户端请求参数的格式是namevaluenamevalue… … 服务器端要获得请求的参数有时还需要进行数据的封装SpringMVC可以接收如下类型的参数  基本类型参数  POJO类型参数  数组类型参数  集合类型参数 获得基本类型参数 Controller中的业务方法的参数名称要与请求参数的name一致参数值会自动映射匹配。 http://localhost:8080/itheima_springmvc1/quick9?usernamezhangsanage12RequestMapping(/quick9)ResponseBodypublic void quickMethod9(String username,int age) throws IOException {System.out.println(username);System.out.println(age);}获得POJO类型参数 Controller中的业务方法的POJO参数的属性名与请求参数的name一致参数值会自动映射匹配。 http://localhost:8080/itheima_springmvc1/quick9?usernamezhangsanage1public class User {private String username;private int age;getter/setter…}RequestMapping(/quick10)ResponseBodypublic void quickMethod10(User user) throws IOException {System.out.println(user);}获得数组类型参数 Controller中的业务方法数组名称与请求参数的name一致参数值会自动映射匹配。 http://localhost:8080/itheima_springmvc1/quick11?strs111strs222strs333RequestMapping(/quick11)ResponseBodypublic void quickMethod11(String[] strs) throws IOException {System.out.println(Arrays.asList(strs));} 获得集合类型参数 获得集合参数时要将集合参数包装到一个POJO中才可以。 form action${pageContext.request.contextPath}/quick12 methodpostinput typetext nameuserList[0].usernamebrinput typetext nameuserList[0].agebrinput typetext nameuserList[1].usernamebrinput typetext nameuserList[1].agebrinput typesubmit value提交br/formRequestMapping(/quick12)ResponseBodypublic void quickMethod12(Vo vo) throws IOException {System.out.println(vo.getUserList());}当使用ajax提交时可以指定contentType为json形式那么在方法参数位置使用RequestBody可以直接接收集合数据而无需使用POJO进行包装。 script//模拟数据 var userList new Array();userList.push({username: zhangsan,age: 20});userList.push({username: lisi,age: 20});$.ajax({type: POST,url: /itheima_springmvc1/quick13,data: JSON.stringify(userList),contentType : application/json;charsetutf-8});/script当使用ajax提交时可以指定contentType为json形式那么在方法参数位置使用RequestBody可以直接接收集合数据而无需使用POJO进行包装。 RequestMapping(/quick13)ResponseBodypublic void quickMethod13(RequestBody ListUser userList) throws IOException {System.out.println(userList);}注意通过谷歌开发者工具抓包发现没有加载到jquery文件原因是SpringMVC的前端控制器 DispatcherServlet的url-pattern配置的是/,代表对所有的资源都进行过滤操作我们可以通过以下两种 方式指定放行静态资源 • 在spring-mvc.xml配置文件中指定放行的资源 mvc:resources mapping“/js/**” location“/js/”/ • 使用mvc:default-servlet-handler/标签 请求数据乱码问题 当post请求时数据会出现乱码我们可以设置一个过滤器来进行编码的过滤。 filterfilter-nameCharacterEncodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param/filterfilter-mappingfilter-nameCharacterEncodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping参数绑定注解requestParam 当请求的参数名称与Controller的业务方法参数名称不一致时就需要通过RequestParam注解显示的绑定. form action${pageContext.request.contextPath}/quick14 methodpostinput typetext namenamebrinput typesubmit value提交br/formRequestMapping(/quick14)ResponseBodypublic void quickMethod14(RequestParam(name) String username) throws IOException {System.out.println(username);} 注解RequestParam还有如下参数可以使用  value与请求参数名称  required此在指定的请求参数是否必须包括默认是true提交时如果没有此参数则报错  defaultValue当没有指定请求参数时则使用指定的默认值赋值 获得Restful风格的参数 Restful是一种软件架构风格、设计风格而不是标准只是提供了一组设计原则和约束条件。主要用于客户端和服务器交互类的软件基于这个风格设计的软件可以更简洁更有层次更易于实现缓存机制等。 Restful风格的请求是使用“url请求方式”表示一次请求目的的HTTP 协议里面四个表示操作方式的动词如下  GET用于获取资源  POST用于新建资源  PUT用于更新资源  DELETE用于删除资源 例如  /user/1 GET 得到id 1 的 user  /user/1 DELETE 删除 id 1 的user  /user/1 PUT 更新id 1 的user  /user POST 新增user 获得Restful风格的参数 上述url地址/user/1中的1就是要获得的请求参数在SpringMVC中可以使用占位符进行参数绑定。地址/user/1可以写成/user/{id}占位符{id}对应的就是1的值。在业务方法中我们可以使用PathVariable注解进行占位符的匹配获取工作。 http://localhost:8080/itheima_springmvc1/quick19/zhangsanRequestMapping(/quick19/{name})ResponseBodypublic void quickMethod19(PathVariable(value name,required true) String name){System.out.println(name);}自定义类型转换器 • SpringMVC默认已经提供了一些常用的类型转换器例如客户端提交的字符串转换成int型进行参数设置。 • 但是不是所有的数据类型都提供了转换器没有提供的就需要自定义转换器例如日期类型的数据就需要自定义转换器。 自定义类型转换器的开发步骤 ① 定义转换器类实现Converter接口 ② 在配置文件中声明转换器 ③ 在annotation-driven中引用转换器 ①定义转换器类实现Converter接口 public class DateConverter implements ConverterString,Date{Overridepublic Date convert(String source) {SimpleDateFormat format new SimpleDateFormat(yyyy-MM-dd);try {Date date format.parse(source);return date;} catch (ParseException e) {e.printStackTrace();}return null;}}②在配置文件中声明转换器 bean idconverterService classorg.springframework.context.support.ConversionServiceFactoryBeanproperty nameconverterslistbean classcom.itheima.converter.DateConverter//list/property/bean③在中引用转换器 mvc:annotation-driven conversion-serviceconverterService/获得Servlet相关API SpringMVC支持使用原始ServletAPI对象作为控制器方法的参数进行注入常用的对象如下  HttpServletRequest  HttpServletResponse  HttpSession RequestMapping(/quick16) ResponseBody public void quickMethod16(HttpServletRequest request,HttpServletResponse response, HttpSession session){ System.out.println(request); System.out.println(response); System.out.println(session); }获得请求头 RequestHeader 使用RequestHeader可以获得请求头信息相当于web阶段学习的request.getHeader(name) RequestHeader注解的属性如下  value请求头的名称  required是否必须携带此请求头 RequestMapping(/quick17)ResponseBodypublic void quickMethod17(RequestHeader(value User-Agent,required false) String headerValue){System.out.println(headerValue);}CookieValue 使用CookieValue可以获得指定Cookie的值 CookieValue注解的属性如下  value指定cookie的名称  required是否必须携带此cookie RequestMapping(/quick18)ResponseBodypublic void quickMethod18( CookieValue(value JSESSIONID,required false) String jsessionid){System.out.println(jsessionid);}文件上传 文件上传客户端三要素  表单项type“file”  表单的提交方式是post  表单的enctype属性是多部分表单形式及enctype“multipart/form-data” form action${pageContext.request.contextPath}/quick20 methodpost enctypemultipart/form-data 名称input typetext namenamebr 文件input typefile namefilebr input typesubmit value提交br/form文件上传原理  当form表单修改为多部分表单时request.getParameter()将失效。  enctype“application/x-www-form-urlencoded”时form表单的正文内容格式是keyvaluekeyvaluekeyvalue  当form表单的enctype取值为Mutilpart/form-data时请求正文内容就变成多部分形式 单文件上传步骤 ① 导入fileupload和io坐标 ② 配置文件上传解析器 ③ 编写文件上传代码 ①导入fileupload和io坐标 dependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion1.3.3/version/dependencydependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.11.0/version/dependency②配置文件上传解析器 bean idmultipartResolver classorg.springframework.web.multipart.commons.CommonsMultipartResolver!--上传文件总大小--property namemaxUploadSize value5242800/!--上传单个文件的大小--property namemaxUploadSizePerFile value5242800/!--上传文件的编码类型--property namedefaultEncoding valueUTF-8//bean③编写文件上传代码 RequestMapping(/quick20)ResponseBodypublic void quickMethod20(String name,MultipartFile uploadFile) throws IOException {//获得文件名称 String originalFilename uploadFile.getOriginalFilename();//保存文件 uploadFile.transferTo(new File(C:\\upload\\originalFilename));}多文件上传只需要将页面修改为多个文件上传项将方法参数MultipartFile类型修改为MultipartFile[]即可 h1多文件上传测试/h1form action${pageContext.request.contextPath}/quick21 methodpost enctypemultipart/form-data 名称input typetext namenamebr 文件1input typefile nameuploadFilesbr 文件2input typefile nameuploadFilesbr 文件3input typefile nameuploadFilesbrinput typesubmit value提交br/formRequestMapping(/quick21)ResponseBodypublic void quickMethod21(String name,MultipartFile[] uploadFiles) throws IOException {for (MultipartFile uploadFile : uploadFiles){String originalFilename uploadFile.getOriginalFilename();uploadFile.transferTo(new File(C:\\upload\\originalFilename));}}
http://www.pierceye.com/news/850407/

相关文章:

  • 如何设置网站服务器做标签的网站
  • 网站建设高端培训学校做网站交易平台
  • 公司网站建设收费优化网站排名解析推广
  • 昆明快速建站模板汽车网站建设多少钱
  • 网站注销主体注销广州联享网站建设公司怎么样
  • 中山seo建站新手建站教程报价单
  • 台州制作网站软件陈坤做直播在哪个网站
  • 北湖区网站建设公司企业主题wordpress 含演示数据
  • 网站建设简历自我评价做招聘信息的网站有哪些内容
  • 怎么和其它网站做友情链接网络营销师证怎么考
  • 百度推广要自己做网站吗做的视频传到哪个网站好
  • 个人建设门户网站 如何备案网站推广服务报价表
  • 广州企业网站建设哪家服务好西安家政公司网站建设
  • 住房与城乡建设部网站 黑龙江wordpress 采集系统
  • 阜阳网站建设云平台玉溪建设局门户网站
  • 网站建设什么原因最主要怎么制作网站首页
  • 网站建设深圳赶集网网页设计工程师工资
  • 哪家企业网站建设好闵行区网站制作
  • 重庆行业网站建设陕西省建设监理协会查询官方网站
  • 手机网站 尺寸网站规划的认识
  • 永川网站制作联系电话wordpress 参数 传递
  • 西宁市网站建设高端网站开发人员要求
  • 前端做商城网站需要多久yum wordpress
  • 便宜网站建设成都免费建网站视频教程
  • 班级网站自助建设功能没有充值入口的传奇
  • 杭州网站seo免费网站建设
  • 好看的网站设计网站开发龙岗网站建设
  • 物流如何做网站wordpress qq互联插件
  • 权威发布李建济南做seo排名
  • 六安网站建设 220广州安尔捷做的网站好吗