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

国内最专业的设计网站建设网站内容保护

国内最专业的设计网站建设,网站内容保护,网络营销策划书1500字,域名app大全免费下载spring MVC相当于Servlet mvc解释:模型,视图,控制器 **使用该思想的作用:**减少耦合性,提高可维护性 Spring MVC前端控制器 方式1 1.在web.xml中配置前端控制器方式2 ​ 要是用前端控制器,必须在web.xml中配置DidpatcherServlet类 !--前端控制器-- servlet!--前端控制器-- servletservlet-namedispatcherServlet/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!--指定加载的文件,不加的话默认在webapp里面找--init-paramparam-namecontextConfigLocation/param-name!--里面的文件就是spring的xml配置文件--param-valueclasspath:applicationContext.xml/param-value/init-param!--启动时tomcat初始化--load-on-startup1/load-on-startup /servletservlet-mappingservlet-namedispatcherServlet/servlet-nameurl-pattern//url-pattern/servlet-mapping spring中的xml文件的基本配置 !--ioc注解解析器--context:component-scan base-packagecn.wolfcode/!--mvc注解解析器--mvc:annotation-driven/ Java文件中的处理器书写,使用Controller和RequestMapping注解 ControllerRequestMapping(/HelloController) public class HelloController {// 提供方法处理请求在浏览器地址栏输入如下 localhost/hello就会执行下面的方法RequestMapping(/hello)public ModelAndView save() {ModelAndView mv new ModelAndView();// 往作用域或者模型中存入数据mv.addObject(msg, Hello Spring MVC);// 找视图mv.setViewName(WEB-INF/views/hello.jsp);return mv;注意事项: RequestMapping(“/hello”)可以加在方法上,也可以加在类上面 加在类上面的作用:与方法里面进行联用来区分同名的不同的方法 mvc配置联用 !--ioc注解解析器-- context:component-scan base-packagecn.wolfcode/ !--mvc注解解析器-- mvc:annotation-driven/ !--使用tomcat内置的拦截器访问静态资源-- mvc:default-servlet-handler/**注意:**上述配置会在 Spring MVC 上下文中创建存入一个 DefaultServletHttpRequestHandler 的 bean它会对进入 DispatcherServlet 的请求进行筛查若不是映射的请求就将该请求交由容器默认的 Servlet 处理。 web.xml拦截规则 *. :要求处理器的地址以.do,静态资源不会进入到前端控制器中,所以可以访问静态资源 / :对处理地址没有要求,静态资源会被前端控制器进行拦截,里面找不到对应的处理器.解决办法:在spring配置文件中配置mvc:default-servlet-handler/,使用tomcat内置的处理器,jsp不会被拦截 /* :对处理地址没有要求,会拦截所有资源(html/jsp),要访问静态资源,配置**mvc:default-servlet-hander**之后可以访问,jsp可以访问但是不会渲染 处理响应的两种方式 1.返回MoudelAndView Controller RequestMapping(/HelloConctroller) public class HelloConctroller {/*** 使用ModelAndView处理响应* return*/RequestMapping(/hello)public ModelAndView save() {ModelAndView mv new ModelAndView();//向作用域中或者模型中存入数据,并进行共享mv.addObject(msg, hello);//寻找视图mv.setViewName(WEB-INF/hello.jsp);return mv;}2.返回String 注意:传了个model接口作为参数进行使用 Controller public class StringController {/** 使用model处理响应* */RequestMapping(/getrq1)public String rq1(Model model) {model.addAttribute(msg, 123456);/* return WEB-INF/hello.jsp;*///使用配置文件消除视图的前缀和后缀用于代替上方的放回的String类型的地址//默认是转发return hello;}消除视图前缀和后缀 作用:消除视图路径重复.在spring.xml中进行配置,只需要在java文件中写文件名 !--配置视图解析器,消除前缀以及后缀-- bean classorg.springframework.web.servlet.view.InternalResourceViewResolver!--视图前缀--property nameprefix value/WEB-INF//!--视图后缀--property namesuffix value.jsp/ /beanController public class StringController {/** 使用model处理响应* */RequestMapping(/getrq1)public String rq1(Model model) {model.addAttribute(msg, 123456);//使用配置文件消除视图的前缀和后缀用于代替上方的放回的String类型的地址//默认是转发return hello;}请求转发和重定向 1.请求转发 在ModelAndView/Model的返回值里面添加forward前缀,转发后地址不变,可以进行数据共享 Controller public class ResponseConctroller {RequestMapping(/responseController)public String responseController(Model model){model.addAttribute(msg,请求转发前缀forward);/*使用请求转发的forward前缀,进行页面的跳转和数据的共享*/return forward:WEB-INF/hello.jsp;}2.重定向 在ModelAndView/Model的返回值里面添加redirect前缀,转发后地址改变,不能进行数据共享 Controller public class ResponseConctroller {RequestMapping(/responseController)public String responseController(Model model){model.addAttribute(msg,请求转发前缀forward);/*使用重定向的redirect前缀,进行页面的跳转,但是不会对数据进行共享,只能访问WEB-INF外的数据*/return redirect:index.jsp;}注意:返回值添加了forward和redirect前缀之后不能和消除视图进行联用 3.路径问题 在请求转发或者重定向的时候,路径: ​ 加/: 使用绝对路径进行寻找,从项目的根目录找 ​ 不加/: 使用相对路径寻找,在该路径的同级目录寻找 该模块的总结 1.spring默认使用转发的方式相当于在跳转的视图前面加上 forward 2.spring重定向是在条状的页面之前添加redirect 3.强调:重定向不能直接访问到WEB-INF下的资源 4.使用model()其实就是向request作用域中设定数据, /modeAndView.addObjiect() 也是一样 5.如果使用重定向后,一定要从作用域中取值,可以使用req.getSession().setAttr(),和之前所学的servlet中作用域的知识联用 6.在转发或者冲定向的时候跳转的页面加上 / 和不加 / 的区别 ​ 加 / :从根目录开始寻找----绝对路径 ​ 不加 /: 从同级目录开始寻找--------相对路径 处理简单类型请求参数 注意: ​ ModelAndView返回值为null的时候,返回的是空白页面 ​ String返回值为null的时候,就会报空指针异常 ​ 底层会帮自动进行类型的转化 ​ 接收的参数类型一定要保持一定 1.请求名和形参名相同 ​ 可以接收到传进来的值 Controller public class ParaTypeController {/*** 接收一个账号和一个密码*///http://localhost:8080/paraTypeController?name%E7%81%B0%E7%81%B0password123456RequestMapping(/paraTypeController)public ModelAndView paraTypeController(String name,Integer password){System.out.println(name);System.out.println(password);return null;}2.请求名和形参名不同 ​ 会造成接收的参数值为null ​ 使用**RequestParam(“请求名”)注**解保证接收参数名和形参名相同 /*** 接收一个账号和一个密码,请求参数和形参不同*/ //http://localhost:8080/paraTypeController2?username灰灰password123456RequestMapping(/paraTypeController2) //使用RequestParam解决参数名不一致问题 public ModelAndView paraTypeController2(RequestParam(username)String name, Integer password){System.out.println(name);System.out.println(password);return null; }3.出现了中文乱码 浏览器发送中文的参数值,服务端接收到后出现乱码 ​ 3.1:在tomcat7以下的版本使用GET方式传递中文参数值会出现该问题,在pom.xml中的tomcat插件添加编码设置 ​ **3.2:**post方式出现乱码,和tomcat版本没有关系,解决办法,web.xml进行配置 ​ 使用表单的方式进行post请求的提交 %--解决中文乱码--% form methodpost action/paraTypeController2input typetext nameusername/input typepassword namepassword/input typesubmit /form复合类型请求参数 1.接收数组类型参数 ​ 接收数组类型的参数,用于每个参数的名字相同的情况(复选框),若里面的参数不能进行匹配,值就是null /*** 接收多个同名的参数使用Long类型的数组进行接收* 复合类型参数---数组类型*///http://localhost:8080/idsController?ids1ids2ids3RequestMapping(/idsController)public ModelAndView idsController(Long[] ids){System.out.println(ids);return null;}2.接收自定义类型参数 ​ 接收的参数名和自定义类型的属性一 一对应,使用包装类型,若传进来的类型和属性的类型不匹配就找不到,报400 /*** 自定义类型参数的接收* 使用自定义方式接收和请求的方式没有关系*///http://localhost:8080/userController?usernamehuihuipassword123456RequestMapping(/userController)public ModelAndView userController(User user){System.out.println(user);return null;}打印结果如下: 3.处理日期格式参数 ​ 接收的参数需要指定格式,底层不会自动将日期类型的参数进行转换,使用**DateTimeFormat(pattern “yyyy-MM-dd”)注解**,这个注解可以贴在自定义类型的属性上面 // 增加下面这个字段并贴注解 DateTimeFormat(patternyyyy-MM-dd) private Date date;注意:传进来的日期不能超出范围,否则报400错误 /*** 处理日期类型的参数,将传进来的日期进行转换,需要指定格式*/ //http://localhost:8080/dataController?date2012-25-3 RequestMapping(/dataController) public ModelAndView dataController(DateTimeFormat(pattern yyyy-MM-dd)Date date){System.out.println(date);return null; }使用ModeAttribute注解 ​ **作用:**用于回显数据 ​ 使用ModeAttribute注解是把数据存到request作用域,代替了手动设置参数值作用域中的 ​ 使用String的返回值类型更加简洁 /*** 用于回显数据,使用的返回类型使用String* 使用User自定义参数进行接收---接受的参数展示在页面上* 使用ModelAttribute注解将数据存放到request作用域,同时可以修改在共享作用域的名字* 默认使用的请求转发作用域,无法使用重定向共享数据**/ //http://localhost:8080/AttributeController?usernamehuihuipassword123456 RequestMapping(/AttributeController) public String AttributeController(ModelAttribute(u) User user){System.out.println(user);return hello; }文件上传 注意及步骤: ​ 1.使用的post请求:有文件大小限制 ​ 2.指定文件上传的大小,在web.xml中的中进行指定 ​ 3.必须在applicationContext.xml文件中配置StandardServletMultipartResolver解析器,同时解析器必须加上id“multipartResolver”,否则报400错误 ​ 4.使用的part类型进行接收文件,该Part是javax中的类 ​ 5.若文件没有进行上传,会报400错误 拦截器 步骤: 1.编写拦截器,实现的是HandlerInterceptor接口,并重写preHandle方法 ​ 若返回的的true,会进行拦截,之后会放行这个方法 ​ 若返回的false,会拦截这个方法,并不会放行(不会执行这个方法) 2.在applicationContext.xml中配置拦截器 /* 和/**的区别 ​ /* 只会拦截/a /b 这种路径的方法,不会拦截/a/b这种方法 ​ /** 会拦截根目录中所有的方法 mvc:interceptors!-- 配置拦截器 --mvc:interceptor!-- 拦截的路径 --mvc:mapping path/**/!-- 被排除的路径mvc:exclude-mapping path排除的路径/ --!-- 拦截器类 --bean classcn.wolfcode.web.interceptor.MyInterceptor//mvc:interceptor /mvc:interceptors拦截器和过滤器的区别 1.过滤器是在web.xml中进行配置, 拦截器是在applicationContext.xml中配置mvc 2.过滤器解决的如字符编码,日志记录,权限验证,拦截器解决业务流程等 执行分析流程 1.用户发请求到前端控制器DispatcherServlet(用于分发请求) 2.DispatcherServlet收到请求调用HandlerMapping(处理映射器) 3.HandlerMapping找到具体的处理器,生成处理器对象,和处理器拦截器,在返会给DispatcherServlet 4.DispatcherServlet 调用HandlerAdapter 5.HandlerAdapter通过适配调用具体的处理器的某个方法controller/hander 6.controller执行后返回ModelAndViwe对象给HandlerAdapter 7.HandlerAdapter在返回给DispatcherServlet 8.DispatcherServlet将ModleAndView传给视图解析器(viewReslover) 9.viewReslover解析后返回具体VIew(视图) 10.DispatcherServlet根据View进行渲染视图 11.DispatcherServlet将视图响应给用户 spatcherServlet收到请求调用HandlerMapping(处理映射器) 3.HandlerMapping找到具体的处理器,生成处理器对象,和处理器拦截器,在返会给DispatcherServlet 4.DispatcherServlet 调用HandlerAdapter 5.HandlerAdapter通过适配调用具体的处理器的某个方法controller/hander 6.controller执行后返回ModelAndViwe对象给HandlerAdapter 7.HandlerAdapter在返回给DispatcherServlet 8.DispatcherServlet将ModleAndView传给视图解析器(viewReslover) 9.viewReslover解析后返回具体VIew(视图) 10.DispatcherServlet根据View进行渲染视图 11.DispatcherServlet将视图响应给用户
http://www.hkea.cn/news/14301585/

相关文章:

  • 网站建设文献英文wordpress设置首页标题描述
  • 上海最好的网站设计公司荆州网站建设费用
  • 做网站用盗版PS建设学校网站
  • 做淘宝客导购网站wdcp网站迁移
  • 如何用域名做网站访问做网站域名起什么作用
  • 提交网站给百度wordpress 律所
  • 网站建设所要花费的资金建筑咨询公司是做什么的
  • 快站淘客中转页wordpress小程序开发文档
  • 做窗帘店的网站东莞市新冠最新消息
  • 花钱做网站青岛网络seo公司
  • 江苏建新建设集团有限公司网站wordpress code插件
  • 广州 互联网公司 网站首页上海债务优化公司
  • 东莞网页制作与网站设计网站开发要先买服务器吗
  • 免费响应式网站建设青岛十大营销策划公司
  • 长沙网站推广系统微信商城在哪儿打开
  • 网站建设流程 报读文库住房和城乡建设局职责范围
  • 武昌做网站公司企业网站维护工作
  • 个人网站域名快速备案百度搜索 网站介绍
  • 建设银行的官方网站公告seo关键词优化软件官网
  • 外贸自建站的推广方式做网站的上市公司有哪些
  • 威海建设招聘信息网站官网建设多少钱
  • 营销型网站模板免费下载做写字楼租赁用什么网站好
  • 企业网站包含的内容北京市企业信用信息查询网
  • 不花钱可以做网站吗建e网室内设计效果图门厅
  • 做网站的流程前端做什么搭建一个网址
  • wordpress免费建站个人如何做微商城网站
  • 自己做网站 怎么赚钱数字资产交易网站建设
  • 住房城乡建设部网站首页南高齿网站是谁做的
  • 海南省建设与执业资格注册中心网站wordpress 没有中文
  • wordpress自定义网站长春生活信息网