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

建设外贸产品展示网站深圳盐田建设交易中心网站

建设外贸产品展示网站,深圳盐田建设交易中心网站,wordpress mip提交,wordpress主题收费变免费1、什么是SpringMVC? SpringMVC是一个基于Java的实现了MVC设计模式的“请求驱动型”的轻量级WEB框架,通过把model,view,controller 分离,将web层进行职责的解耦,把复杂的web应用分成逻辑清晰的几个部分&am…

1、什么是SpringMVC?

SpringMVC是一个基于Java的实现了MVC设计模式的“请求驱动型”的轻量级WEB框架,通过把model,view,controller 分离,将web层进行职责的解耦,把复杂的web应用分成逻辑清晰的几个部分,简化开发,减少出错,方便开发人员之间的配合。

2、SpringMVC的处理流程?

  1. 用户发送请求给前端控制器DispatcherServlet
  2. DispatcherServlet收到请求后,调用处理器映射器HandlerMapping,获取请求Handler
  3. 处理器映射器根据请求url找到具体的处理器Handler,生成处理器对象以及处理器拦截器(如果有就生成),然后一并返回给DispatcherServlet
  4. DispatcherServlet调用处理器适配器HandlerAdapter,请求执行Handler
  5. 处理器适配器HandlerAdapter 经过适配,调用具体处理器来处理业务逻辑
  6. Handler执行完成之后,返回ModelAndView
  7. HandlerAdapter将handler执行结果的ModelAndView返回给DispatcherServlet
  8. DispatcherServlet将ModelAndView传给视图解析器ViewResolver进行解析
  9. ViewResolver解析后将解析结果返回给DispatcherServlet
  10. DispatcherServlet调用视图View组件将数据进行渲染,并将渲染结果(静态视图)返回给DispatcherServlet
  11. DispatcherServlet响应用户的请求。

  •  DispatcherServlet:前端控制器,实现的是转发的功能,相当于一个转发器,减少了其他组件之间的耦合度
  • HandlerMapping:处理器映射器,根据请求的URL来查找处理器Handler
  • Handler:处理器,程序员开发的,执行业务逻辑
  • ViewResolver:视图解析器,用于视图的解析,根据视图逻辑名将ModelAndView解析成真正的视图(view)
  • view:视图接口,他的实现类型支持不同的视图类型,用于渲染视图。

3、springMVC 的优点:

清晰的角色分配,将复杂的web层进行解耦,降低了开发难度,更加灵活也更加容易拓展

支持各种视图技术,而不仅仅是局限于JSP

可以与spring框架很好的集成

支持各种请求资源的映射策略

4、springMVC怎么样设置重定向和转发的?

转发:直接返回转发的路径,如转发给xxx.jsp  

重定向:在返回值前加上“redirect:”

转发@RequestMapping("/add")
public String addBook(String name, String author, double price){System.out.println("---book add");return "/tips.jsp";
}@RequestMapping("/add")
public ModelAndView addBook(String name, String author, double price){System.out.println("---book add");ModelAndView modelAndView = new ModelAndView("/tips.jsp");return modelAndView;
}
重定向@RequestMapping("/add")
public String addBook(String name, String author, double price){System.out.println("---book add");return "redirect:/tips.jsp";
}@RequestMapping("/add")
public ModelAndView addBook(String name, String author, double price){System.out.println("---book add");ModelAndView modelAndView = new ModelAndView("redirect:/tips.jsp");return modelAndView;
}

5、springMVC常用的注解有哪些?

@RequestMapping: 用于处理请求url映射的注解,可以用于类或者方法上,用于类上,表示类中所有请求的响应请求方法都是以该地址作为父路径

@RequestBody:注解实现接收http请求的json数据,将json转为Java对象

@ResponseBody:注解实现controller方法返回对象转化为json对象,响应给客户。

@RequestMapping("/update")
@ResponseBody
public List<Book> update() {System.out.println("---book update");List<Book> books = new ArrayList<Book>();books.add(new Book(1,"Java","老张",2.22));books.add(new Book(2,"C++","老李",3.22));return books;
}@RequestMapping("/update")
public void update(@RequestBody Book book){System.out.println("---book update");System.out.println(book);
}

6、 SpringMVC中的控制器注解一般用哪一个?有没有别的可以替代?

一般用@Controller注解,也可以使用@RestController注解,@RestController注解相当于@Controller+@ResponseBody ,表示为表现层,一般不用其他注解代替。

7、springMVC 和 structs2 的区别有哪些、

  1. 入口:springMVC入口是一个servlet(前端控制器,dispatchServlet),structs2的入口是一个filter过滤器
  2. 开发方式:springMVC基于方法开发,一个url对应一个方法,请求参数传递到方法的形参,structs2是基于类开发,传递参数通过类的属性
  3. Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。
     

8、SpringMVC中的拦截器

SpringMVC中的拦截器就类似于servlet-api中的过滤器,可以对控制器的请求进行拦截,实现相关的预处理和后处理。拦截器在SpringMVC配置文件里面进行配置,不会拦截SpringMVC放行的资源(jsp、HTML、css等)

8.1 创建拦截器,实现HandlerInterceptor接口,重写预处理和后处理方法

public class MyInterceptor1 implements HandlerInterceptor {//预处理方法public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("--------------预处理");Enumeration<String> keys = request.getParameterNames();while (keys.hasMoreElements()){String key = keys.nextElement();if("bookId".equals(key)){return true;}}response.setStatus(400);return false;}//后处理方法public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {modelAndView.addObject("tips","这是通过拦截器的后处理添加的数据");System.out.println("--------------后处理");}
}

8.2 配置拦截器

<mvc:interceptors><mvc:interceptor><mvc:mapping path="/book/query"/><mvc:mapping path="/book/add"/><mvc:mapping path="/student/**"/><mvc:exclude-mapping path="/student/add"/><bean class="com.qfedu.utils.MyInterceptor1"/></mvc:interceptor>
</mvc:interceptors>

8.3 拦截器链,将多个拦截器按照一定的顺序构成一个执行链。 

10、SpringMVC的异常处理?

在系统运行过程中,可能由于运行环境,用户操作,资源不足等各方面导致系统出现异常,我们通常不希望将这些异常呈现给用户,因此可以在服务器进行特点的处理,当异常发生时,呈现给用户一个统一的,可读的异常提示界面。

10.1 HTTP状态异常统一处理方式

首先创建一个用于提示异常的界面 404.jsp ,然后在web.xml中进行配置

<error-page><error-code>404</error-code><location>/404.jsp</location>
</error-page>

10.2  Java代码异常的统一处理方式

还是先创建异常处理界面 err.jsp

然后在web.xml中进行配置,可以定义异常类型

<error-page><exception-type>java.lang.NumberFormatException</exception-type><location>/err.jsp</location>
</error-page>

 或者定义异常处理类进行统一处理,@ExceptionHandler注解

@ControllerAdvice
public class MyExceptionHandler {@ExceptionHandler(NullPointerException.class)public String nullHandler(){return "/err1.jsp";}@ExceptionHandler(NumberFormatException.class)public String formatHandler(){return "/err2.jsp";}
}

11 SpringMVC的控制器是不是单例模式?如果是,有什么问题,怎么解决?

是单例模式,在多线程访问的时候,有线程安全问题,解决方案是在控制器中避免写可变状态变量,如果需要使用这些可变状态,可以使用ThredLocall机制进行解决,为每个线程单独生成一份变量副本,独立操作。。

12 如果在拦截请求中,想拦截get方式提交的方法,怎么配置?

可以在@RequestMapping注解里面加上method=RequestMethod.GET。

13 控制器如何接收前端传入的数据?

13.1 接收请求行的传值 ----- @RequestParam注解

/*接收请求行数据*/
@RequestMapping("/add")
public void addBook(@RequestParam("name") String a,@RequestParam("author") String b,@RequestParam("price") double c){System.out.println("---book add");System.out.println(a);System.out.println(b);System.out.println(c);
}

 13.2 接收请求头的传值  ---- @RequestHeader

@RequestMapping("/list")
public void listBooks(@RequestHeader("token") String token){System.out.println("---book list");
}

13.3 接收请求体  ---- @RequestBody

@RequestMapping("/update")
public void update(@RequestBody Book book){System.out.println("---book update");System.out.println(book);
}

http://www.yayakq.cn/news/728246/

相关文章:

  • 网站的引导页怎么做的网站模板 php
  • 网站建设深圳公司哪家好无锡网站制作哪家值得信赖
  • 如何做相亲网站北京网上申请营业执照
  • 手机app软件安装下载无锡网站排名优化
  • 彩票类网站怎么做推广医院网站源码下载
  • 烟台网站排名优化公司哪家好wordpress站点是什么
  • 网站制作字体保定网站建设求职简历
  • 南宁企业网站建设技术公司南京移动网站建设效果好
  • app 网站可以做的免费推广教育网网站建设规范
  • 郑州seo网站排名分销网站制作条件
  • 做网站用什么开发工具阳江网红酒店无边泳池
  • 怎么网上接网站开发单自己做北京燕华工程建设有限公司网站
  • 自己做网站挣钱不网站建设案例多少钱
  • 上海高级网站建设电子商务网站建设模块
  • 室内平面图在线制作网站建设网站怎么赚钱的
  • 哪个网站找到做箱包厂外发的dedecms模板自适应
  • 长沙网站制作app开发公司小程序加盟代理优势
  • 深圳做网站的公司哪个好vps做网站用什么系统
  • 网站如何做绿标网络优化工程师是干嘛的
  • 台州椒江做网站下载wordpress建站程序
  • 旅游网站怎么做的如何修改网站图片
  • 宿迁宿城区屠园乡网站建设厦门seo报价
  • 做的好的公司网站a链接下载wordpress
  • 如何查询网站备案进度公司企业网站制作
  • 威海教育行业网站建设公司网络维护服务方案
  • 黄山做网站wordpress书籍
  • iis 创建网站网站系统环境的搭建
  • 温州市建设质量监督站网站随身wifi网站设置
  • 建设网站与服务器wordpress删除缓存会删掉文件吗
  • 国外做动运服装的网站深圳做h5网站制作