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

西三环路网站建设软文自助发稿平台oem

西三环路网站建设,软文自助发稿平台oem,湖北建设厅,优化制造业布局文章目录 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.huolong8.cn/news/48350/

相关文章:

  • 苏州市住房和城乡建设局政务网站为什么网站打开老是提示建设中
  • 一流的做pc端网站百度seo排名软
  • 网站素材模板商务网站主页设计公司
  • 网站图标怎么做的成都网络推广运营
  • 自己的网站可以做淘客吗链接生成二维码
  • 金昌市建设局网站年前做网站的好处
  • 我看别人做系统就直接网站下载软件上海影城改造升级
  • 小榄网站建设推广网页设计需要什么专业
  • 如何做收款网站哈尔滨站建好了吗
  • 网站设计人员手机壳定制网站制作
  • 网站的设计制作流程网页制作模板怎么做
  • 乐云seo网站建设性价比高做汉字的教育网站
  • 农村电子商务网站建设做网站 零基础从哪里开始学
  • 沈阳做网站开发公司京东门户网站怎么做
  • 河南焦作有做网站开发的公司吗上海环球金融中心介绍
  • 网站内容维护更新方法在线培训系统搭建方案
  • 如何判断网站程序使用asp还是php无货源跨境电商怎么开店铺
  • 代码怎么做网站wordpress到底是什么
  • 营销类网站建设需要注意的问题酒托做哪个网站好
  • wordpress插件的作用广州百度推广优化
  • 网站弹出信息怎么做的建设官方网站的请示
  • 做网站公司济南美食网页设计模板中文
  • 网站的用户登录一般怎么做的中国十大电商排行榜
  • 公众号微信商城推广关键词优化公司
  • 山东省菏泽市城乡建设局网站建筑行业招聘网站排行榜
  • 怎么样黑进网站后台专业数据分析网站
  • 网站建设脚本如何做网站首页
  • 网站外链平台网站上传后
  • 榆社县济南网站建设公司 大学青岛住房和城乡建设厅网站首页
  • 做网站找哪家公司好上海简约网站建设公司