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

做视频教学网站如何做美丽说网站优化

做视频教学网站如何做,美丽说网站优化,市场策划网站,网站建设初验申请表1. Controller Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用Controller注解定义的控制器有如下特点: 不需要继承任何类, 也不需要实现任何接口可以处理多个请求可以使用Servlet的相关特性 spring自动扫描所有基于注解的类, 并将其注册为spring…1. Controller Controller注解用于表示一个类的实例是页面控制器(后面都将称为控制器). 使用Controller注解定义的控制器有如下特点: 不需要继承任何类, 也不需要实现任何接口可以处理多个请求可以使用Servlet的相关特性 spring自动扫描所有基于注解的类, 并将其注册为spring的bean, DispatcherServlet自动扫描注解为Controller的类, 查找其中使用了RequestMapping的方法, 这些方法是真正处理请求方法. !-- 扫描包路径com.lizj.controller下的所有类, 将带有注解的类注册到spring容器中 -- context:component-scan base-packagecom.lizj.controller /!-- 视图解释器 -- !-- 配置的视图解析器为InternalResourceViewResolver, 并为其添加了前缀prefix和后缀suffix属性 -- bean classorg.springframework.web.servlet.view.InternalResourceViewResolver!-- 前缀 --property nameprefix value/WEB-INF/jsp/ /!-- 后缀 --property namesuffix value.jsp / /bean 此示例中没有配置处理映射器和处理器适配器, spring将使用默认的处理映射器和处理器适配器来处理请求. 下面是使用Controller注解定义的控制器 /*** 基于注解的控制器*/ Controller public class HelloController {} 2. RequestMapping 2.1 RequestMapping注解 RequestMapping注解用来表示请求具体由哪个类的哪个方法来处理. 即RequestMapping既可以用来注解一个类, 也可以用来注解一个方法. 当用来注解一个类的时候, 所有方法都将映射为相对于类级的请求. /*** 基于注解的控制器*/ Controller public class HelloController {RequestMapping(/hello)public String sayHello(HttpServletRequest request) {model.addAttribute(message, Hello World);return helloworld;} } RequestMapping注解支持的属性 属性类型是否必要说明nameString否映射地址别名, 一般不设置valueString[]否指定请求的地址映射到方法上methodRequestMethod[]否请求的方法类型, 包括GET,POST,HEAD,OPTIONS,PUT,PATCH,DELETE,TRACEconsumesString[]否指定处理请求的提交内容类型(Content-Type),例如application/jsonproducesString[]否指定返回的内容类型, 返回的内容类型必须是request请求头(Accept)中包含的类型paramsString[]否指定request中必须包含某些参数值时, 此方法才处理此请求headerString[]否指定request中必须包含某些指定的header值, 此方法才处理此请求pathString[]否In a Servlet environment... 就是value属性的别名, value属性没有含义不确切, path含义更明确 常用的RequestMapping属性: value value属性用于将请求映射到方法上. value属性是RequestMapping的默认属性, 当只有唯一的属性时, 则可以省略属性名, 如下两个注解含义是一样的: RequestMapping(/user) RequestMapping(value/user) 多个请求地址映射到同一个方法 RequestMapping(value{/user, /customer}) method method属性指定此方法只处理哪些HTTP请求. 例如: // 此方法只处理POST请求. RequestMapping(value/user, methodRequestMethod.POST) // 此方法既支持POST请求, 又支持GET请求 RequestMapping(value/user, method{RequestMethod.POST,RequestMethod.GET}) 如果没有配置method属性, 则此方法可以处理任意的HTTP请求. 两个示例: 示例类: com.lizj.controller_01.HelloController01访问地址: http://127.0.0.1:8080/springmvc03/hello 示例类: com.lizj.controller_01.HelloController02访问地址: http://127.0.0.1:8080/springmvc03/hello/hello 2.2 支持的方法参数类型 每个请求处理方法都可以有多个参数, 参数类型可以为以下类型, 可根据需要添加方法声明参数. javax.servlet.ServletRequest 或 javax.servlet.http.HttpServletRequestjavax.servlet.ServletResponse 或 javax.servlet.http.HttpServletResponsejavax.servlet.http.HttpSessionorg.springframework.web.context.request.WebRequest 或 org.springframework.web.context.request.NativeWebRequesetjava.util.Localejava.io.InputStream 或 java.io.Reader 用于访问请求正文, 这两个对象与通过Servlet API拿到的InputSteam和Reader对象是一样的java.io.OutputSteam 或 java.io.Writer 用于生成响应正文, 这两个对象与通过Servlet API拿到的OutputSteam和Writer对象是一样的java.security.Principal 包装了当前被谁的用户信息org.springframework.http.HttpEntityT 其提供了对HTTP请求头和请求内容的存取org.springframework.web.servlet.mvc.support.RedirectAttributes 用以指定重定向下要使用到的属性集以及添加flash属性(暂存在服务端的属性它们会在下次重定向请求的范围中有效)org.springframework.validation.Errors 或 org.springframework.validation.BindingResult 验证结果对象用于存储前面的命令或表单对象的验证结果(紧接其前的第一个方法参数)org.springframework.web.bind.support.SessionStatus 用以标记当前的表单处理已结束org.springframework.web.util.UriComponentsBuilder 构造器对象, 用于构造当前请求URL相关的信息, 比如主机名、端口号、资源类型(scheme)、上下文路径、servlet映射中的相对部分(literal part)等PathVariable MatrixVariablejava.util.Map 或 org.springframework.io.Model 或 org.springframework.ui.ModelMap 用以增强默认暴露给视图层的模型(model)的功能带有RequestParam注解的参数, 其存放了Servlet请求中所指定的参数. 参数的值会被转换成方法参数所声明的类型带有RequestHeader注解的参数, 其存放了Servlet请求中所指定的HTTP请求头的值. 参数的值会被转换成方法参数所声明的类型带有RequestBody注解的参数, 提供了对HTTP请求体的存取. 参数的值通过HttpMessageConverter被转换成方法参数所声明的类型带有RequestPart注解的参数, 提供了对一个multipart/form-data请求块(request part)内容的存取命令或表单对象, 它们用于将请求参数直接绑定到bean字段(可能是通过setter方法)在参数列表中, Errors或BindingResult参数必须紧跟在其所绑定的验证对象后面. 这是因为, 在参数列表中允许有多于一个的模型对象, spring会为它们创建不同的BindingResult实例 所有方法参数中, 最重要的是org.springframework.ui.Model, 它是一个接口, 功能类似于java.util.Map, 用于存储模型数据. springmvc调用处理方法前, 会创建一个隐含的模型对象, 作为模型数据的存储容器. 如果处理方法的方法参数为Model, 那么springmvc会将模型的引用传递给此参数. 那么在方法内部就可以访问模型中的数据, 也可以向模型中添加新的属性数据. /** springmvc中controller中的方法参数, 支持大多数常用的数据类型, * 如: String, int.... */ // 需要注意的是, 此处请求参数名必须与方法参数名一致, 否则获取不到参数值, 后面RequestParam再做详细解释 RequestMapping(/get) public String getUser(String id, Model model) {User user null;for(int i0; iuserList.size(); i) {User u userList.get(i);if(u.getId().equals(id)) {user u;break ;}}if(user null) {user new User();user.setId(001);user.setName(张三);user.setAge(18);user.setSex(男);}// 向model中添加数据model.addAttribute(user, user);// 返回视图名称return user/oneuser; } 两个示例: 示例类: com.lizj.controller_02.UserController01访问地址: http://127.0.0.1:8080/springmvc003/user01/get 示例类: com.lizj.controller_02.UserController02访问地址: http://127.0.0.1:8080/springmvc003/user02/get?userId2 2.3 支持的方法返回类型 请求处理方法的返回类型如下: org.springframework.web.servlet.ModelAndVieworg.springframework.ui.Modeljava.util.MapK, Vorg.springframework.web.servlet.Viewjava.lang.StringHttpEntity? 或 ResponseEntity?java.util.concurrent.Callableorg.springframework.web.context.request.async.DeferredResult?void 如果控制器处理方法的返回值是ModelAndView类型, 其既包括模型数据, 又包括视图信息, 那么springmvc就可以使用包含的视图对模型数据进行渲染, 而且可以非常方便的访问模型数据. ModelAndview对象常用的添加模型数据和设置视图的方法如下: // 添加模型数据 addObject(String attributeName, Object attributeValue); // 设置视图 setViewName(String viewName); 示例类: com.lizj.controller_02.UserController03访问地址: http://127.0.0.1:8080/springmvc003/user03/get?userId3 3. RequestParam RequestParam注解用于将指定的请求参数赋值给方法的参数. RequestParam注解支持的属性 | 属性 | 类型 | 是否必要 | 说明 | | :-------- | :-------- | :-------- | :-------- | | name | String | 否 | 指定请求参数绑定的名称 | | value | String | 否 | name属性的别名 | | required | boolean | 否 | 指示参数是否必须绑定 | | default | String | 否 | 没有参数时使用的默认值 | 请求处理的方法的参数的类型为Java基本类型和String. RequestMapping(value/add, methodRequestMethod.POST) public String add(RequestParam(name) String name, RequestParam(author) String author) {} 当方法参数没有用RequestParam修饰时, 那么会默认绑定同名的参数. 示例类: com.lizj.controller_03.BookController访问地址: http://127.0.0.1:8080/springmvc003/book/books 4. PathVariable PathVariable注解可以方便的从URL中获取请求的参数. 它只支持一个类型为String的属性, 表示绑定的请求参数的名称, 省略则默认绑定同名的参数. RequestMapping(value/book/{bookId}) public ModelAndView get(PathVariable int bookId) 示例类: com.lizj.controller_04.BookController04访问地址: http://127.0.0.1:8080/springmvc003/book04/books 5. RequestHeader RequestHeader注解用于将请求的头信息区数据映射到请求处理方法的参数上. RequestHeader注解支持的属性 属性类型是否必要说明nameString否指定请求头绑定的名称valueString否name属性的别名requiredboolean否指示参数是否必须绑定defaultString否没有参数时使用的默认值 public void testRequestHeader(RequestHeader(User-Agent) String userAgent,RequestHeader(Accept) String[] accepts) {// ... } 示例类: com.lizj.controller_05.HeaderAndCookieController访问地址: http://localhost:8080/springmvc003/hac/show 关于http请求的header头信息 参考: http://www.cnblogs.com/printN/p/6534529.html 6. CookieValue CookieValue注解将Cookie数据映射到请求处理方法的参数上. CookieValue注解支持的属性 属性类型是否必要说明nameString否指定请求头绑定的名称valueString否name属性的别名requiredboolean否指示参数是否必须绑定defaultString否没有参数时使用的默认值 示例类: com.lizj.controller_05.HeaderAndCookieController访问地址: http://localhost:8080/springmvc003/hac/show 7. SessionAttributes SessionAttributes注解指定Model中哪些数据需要转存到session中. SessionAttributes注解支持的属性 属性类型是否必要说明namesString[]否Model中属性的名称, 储存在session中也会用此名称valuesString[]否names属性的别名typesClass?[]否根据指定参数的类型, 将模型中对应类型的参数存储到session中SessionAttributes注解只能声明在类上, 不能声明在方法上. 示例类: com.lizj.controller_06.LoginController访问地址: http://localhost:8080/springmvc003/login 8. ModelAttribute ModelAttribute注解用于将请求参数绑定到Model对象上.ModelAttribute只支持一个类型为String的属性value, 表示绑定的属性名称. 需要注意的是, ModelAttribute注解修饰的方法会在Controller的每个请求处理方法执行前被执行, 如果一个Controller映射了多个URL要注意这一问题. 示例类: com.lizj.controller_06.PageController访问地址: http://127.0.0.1:8080/springmvc003/mac/testPage 可结合示例, 阅读下面几种情况的介绍. ModelAttribute注解修饰的方法有返回值 示例: ModelAttribute(paramName) public String getParam(RequestParam(param) String param) {return param; } 此方法将先于其他请求处理方法执行, 并且将请求参数param的值, 以paramName为名称, 指定为model的一个属性, 此时model并没有显示的定义出来. 示例: ModelAttribute // 这次没有使用ModelAttribute注解的value属性 public User getUserById(String userId) {return userService.getUserById(userId); } 示例中没有显示的使用RuquestParam注解, 而是使用了默认绑定同名参数. 本示例中, 方法的返回值类型为User, 且没有使用ModelAttribute注解的value属性. 此时, value的默认名称为方法返回值类型(首字母小写), 即模型中的属性名为方法返回值类型(首字母小写). 也可以显示的定义value属性. ModelAttribute注解修饰的方法有返回值, 返回值类型为void 示例: ModelAttribute public void getUserById(String userId, Model model) {model.addAttribute(user, userService.getUserById(userId)); } 这种写法的前提是在请求处理方法中加入了一个Model参数. ModelAttribute和RequestMapping修饰同一个方法 示例: RequestMapping(/show) ModelAttribute(username) public String show(String userId) {User user userService.getUserById(userId);return user.getName(); } 示例中, ModelAttribute和RequestMapping共同修饰了show方法. 此时方法的返回值不再是视图名称, 而是Model的属性值, Model属性的名称由ModelAttribute的value设置, 即username; 而RequestMapping的value值/show除了是请求映射之外, 还将作为视图名称, 即此请求处理方法将跳转至名称为show的页面. ModelAttribute修饰一个请求处理方法的参数 示例: ModelAttribute public User getUserById(String userId) {return userService.getUserById(userId); }RequestMapping(/show) public String show(ModelAttribute User user) {return mac/test05; } 示例中, ModelAttribute修饰的getUserById()方法仍旧在Model中添加user属性, 其值为一个User对象. 而在show方法中, 参数也被ModelAttribute修饰, 表示参数user的值就是Model中的属性值. 9. RequestBody 和 ResponseBody 9.1 RequestBody springmvc提供了处理JSON格式请求和响应的功能, 可以方便的使服务端的请求处理方法和客户端JSON格式消息进行交互, 这时就用到了RequestBody注解. RequestBody注解用于读取request请求的body部分的数据, 解析后, 把相应的数据绑定到请求处理方法的参数上. 前台页面使用GET或POST请求提交数据时, 数据编码格式会由请求头的ContentType来指定, 可分为以下几种情况: application/x-www-form-urlencoded, 此时可以使用RequestParam, ModelAttribute来处理参数, 也可以使用RequestBody.multipart/form-data, 此时不能使用RequestBody处理.application/json或application/xml, 只能使用RequestBody处理.9.2 ResponseBody ResponseBody注解用于将Controller的请求处理方法返回的数据对象, 转换为指定格式后, 写入到response对象的的body数据区. 一般地, 返回的数据不是某个具体的视图页面, 而是某种格式的数据(json, xml等). 9.3 示例 示例类: springmvc004项目中, com.lizj.controller_08.BookController08访问地址: http://127.0.0.1:8080/springmvc004/book08/books 简单说明: 9.3.1 springmvc-servlet.xml springmvc-servlet.xml配置文件中, 添加加了两项配置: !-- 自动注册RequestMappingHandlerMapping和RequestMappingHandlerAdapter -- mvc:annotation-driven /!-- DispatcherServlet会拦截所有请求, 会将静态文件(如js文件)的请求看成路径, 就会找不到对应的静态文件 -- !-- 此配置将使用默认的servlet响应静态文件, 避免出现上述情况 -- mvc:default-servlet-handler/ springmvc4.x默认使用的HandlerMapping和HandlerAdapter为: org.springframework.web.servlet.HandlerMappingorg.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,\org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMappingorg.springframework.web.servlet.HandlerAdapterorg.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,\org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,\org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter 详情见: spring-webmvc-4.2.3.RELEASE.jar org.springframework.web.servlet包下的DispatcherServlet.properties文件. 9.3.2 pom.xml 引用Jackson !-- jackson -- dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion2.6.2/version /dependency dependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion2.6.2/version /dependency Jackson用来实现json对象与Java对象之间的转换. 示例下载: https://files.cnblogs.com/files/lzj0616/springmvc%E5%B8%B8%E7%94%A8%E6%B3%A8%E8%A7%A3%E7%A4%BA%E4%BE%8B.rar
http://www.pierceye.com/news/273393/

相关文章:

  • 网站商城系统建设厦门建站方案
  • 新郑郑州网站建设温州网站定制公司哪家好
  • 系统网站建设公司wordpress 命令行高亮
  • 怎样做招聘网站怎么在拼多多卖东西
  • 网站建设与网站管理网站怎么显示百度名片
  • 技术支持 盈岚网站建设典当行网站策划
  • 如何找到网站的模板页面中国优秀网站设计
  • 金融公司 网站开发简易个人博客网站源码
  • 小企业网站建设哪找网站制作软件dw
  • 百度收录提交网站后多久收录重庆个人房源网
  • 深圳网站建设制作公司排名网站设计怎么收费
  • 免费培训学校网站源码成免费crm破解版
  • w网站建设湖北建设厅举报网站
  • 营销型网站分为哪几种乐山网站建设公司
  • 淘宝网站建设类别好看的网站后台界面
  • 海口网站建设工作中企动力全球邮企业邮箱
  • 青岛网站制作排名绵阳做网站优化
  • 扬州市建设工程造价管理站网站开发建设网站
  • 广州网站设计公司济南兴田德润o评价潍坊响应式网站建设要多久
  • 网站模板如何优化平阳县建设局网站
  • 厦门外贸网站找谁可以做app的网站
  • 本地电脑静态网站建设游戏代理平台免费
  • 网站建设公司的成本有哪些内容wordpress admin空白
  • 高端网站建设如何收费济南行业网站建设
  • 昆明网站制作专业麦当劳订餐网站 是谁做的
  • 网站代备案公司名称网页游戏怎么搭建
  • 教师在哪些网站可以做兼职做平面的公司网站
  • php网站后台程序做游戏ppt下载网站有哪些
  • 柳州正规网站制作公司佛山企业名录黄页
  • 企业网站做备案网站换域名 百度收录