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

如何设计优秀的公司网站app开发公司一般多少人

如何设计优秀的公司网站,app开发公司一般多少人,flash静态网站,乐山做美食推荐的网站Spring与Web环境的集成 1.ApplicationContext应用上下文的获取方式 分析 之前获取应用上下文对象每次都是从容器中获取,编写时都需要new ClasspathXmlApplicationContext(Spring配置文件),这样的弊端就是配置加载多次应用上下文就创建多次。 在Web项目…

Spring与Web环境的集成

1.ApplicationContext应用上下文的获取方式

分析

之前获取应用上下文对象每次都是从容器中获取,编写时都需要new ClasspathXmlApplicationContext(Spring配置文件),这样的弊端就是配置加载多次应用上下文就创建多次。

在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加
载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext
中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。

2.Spring提供的获取应用上下文的工具
Spring提供了一个监听器ContextLoaderListener就是对上述功能的封装,该监
听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端工
WebApplicationContextUtils供使用者获得应用上下文对象。

实现

1.在web.xml中导入ContextLoaderListener监听器(导入Spring-web坐标)

2.使用WebApplicationContextUtils获得应用上下文对象ApplicationContext

        <1>导入Spring集成web的坐标

    <dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>5.0.5.RELEASE</version></dependency>

        <2>配置ContextLoaderListener监听器

<!--全局参数 全局参数主要是为了解耦。-->
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--Spring的监听器-->
<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

        <3> 通过工具获取应用上下文对象

        将app存到servletConxt域中

         优化的目的为了解耦,减小代码之间的耦合。

public void contextInitialized(ServletContextEvent servletContextEvent) {/* ServletContext servletContext = servletContextEvent.getServletContext();ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");servletContext.setAttribute("app",app);System.out.println("spring容器创建完毕");*///优化后/* ServletContext servletContext = servletContextEvent.getServletContext();//读取web.xml中全局参数//getInitParameter返回包含指定上下文范围初始化参数值的 String,如果参数不存在,则返回 nullString contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");ApplicationContext app = new ClassPathXmlApplicationContext(contextConfigLocation);//将Spring的应用上下文对象存储到ServletContext域中servletContext.setAttribute("app",app);System.out.println("spring 容器创建完毕");*/ServletContext servletContext = servletContextEvent.getServletContext();String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");ApplicationContext app = new ClassPathXmlApplicationContext(contextConfigLocation);servletContext.setAttribute("app",app);}

        然后取出使用

  @Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {ServletContext servletContext = req.getServletContext();/*ApplicationContext app = (ApplicationContext) servletContext.getAttribute("app");*//*ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);*/ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);UserService userService = (UserService) app.getBean("userService");userService.save();}

SpringMvc简介

MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分

M:Model,模型层,指工程中的JavaBean,作用是处理数据

JavaBean分为两类:

  • 一类称为实体类Bean:专门存储业务数据的,如 Student、User 等

  • 一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。

V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据

C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器

MVC的工作流程:用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器

SpringMvc的开发步骤

1.导入SpringMvc相关坐标

2.配置SpringMvc核心控制器DispathcerServlet

3.创建Controller类和视图页面

4.使用注解配置Controller类中业务方法的映射地址

5.配置SpringMvc核心文件spring-mvc.xml

6.客户端发起请求测试

        (1)导入Spring和SpringMvc的坐标

<!--    spring坐标--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.5.RELEASE</version><scope>compile</scope></dependency>
<!--    springmvc坐标--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.5.RELEASE</version></dependency>

     导入jsp和servlet坐标

<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.2.1</version><scope>provided</scope></dependency>

        (2)在web.xml配置SpringMvc的核心控制器

<servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

        (3)创建Controller和业务方法


public class UserController {public String save(){System.out.println("Controller running ...");return "success";}
}

        创建试图页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body><h1>success</h1>
</body>
</html>

        (4)配置注解

@Controller
@RequestMapping("/userController")
public class UserController {@RequestMapping("/quick")public String save(){System.out.println("Controller running ...");return "success";}
}

        (5)创建spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!--controller组件扫描--><!-- <context:component-scan base-package="com.lin.controller"/>--><context:component-scan base-package="com.lin"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan><!--配置内部资源解释器 我们可以通过属性注入的方式修改视图的的前后缀--><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/jsp/"></property><property name="suffix" value=".jsp"></property></bean></beans>

springmvc流程图示

 SpringMvc的组件解析

1.SpringMvc的执行流程

 执行流程的描述

1.用户发送请求至前端控制器DispatcherServlet。
2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3. 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果 有则生成)一并返回给DispatcherServlet。
4. DispatcherServlet调用HandlerAdapter处理器适配器。
5.HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6. Controller执行完成返回ModelAndView。
7 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9.ViewReslover解析后返回具体View。
10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。DispatcherServlet响应用户。

主要的组件解析

1. 前端控制器:DispatcherServlet
用户请求到达前端控制器,它就相当于 MVC 模式中的 C,DispatcherServlet 是整个流程控制的中心,由
它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之间的耦合性。
2. 处理器映射器:HandlerMapping
HandlerMapping 负责根据用户请求找到 Handler 即处理器,SpringMVC 提供了不同的映射器实现不同的
映射方式,例如:配置文件方式,实现接口方式,注解方式等。
3. 处理器适配器:HandlerAdapter
通过 HandlerAdapter 对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理
器进行执行。
4. 处理器:Handler
它就是我们开发中要编写的具体业务控制器。由 DispatcherServlet 把用户请求转发到 Handler。由
Handler 对具体的用户请求进行处理。
5. 视图解析器:View Resolver
View Resolver 负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名,即
具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。
6. 视图:View
SpringMVC 框架提供了很多的 View 视图类型的支持,包括:jstlView、freemarkerView、pdfView等。最
常用的视图就是 jsp。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程
序员根据业务需求开发具体的页面

注解解析

@RequestMapping
作用:用于建立请求 URL 和处理请求方法之间的对应关系
位置:
 类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录
 方法上,请求 URL 的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径
属性:
 value:用于指定请求的URL。它和path属性的作用是一样的
 method:用于指定请求的方式
 params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样
例如:
 params = {"accountName"},表示请求参数必须有accountName
 params = {"moeny!100"},表示请求参数中money不能是100
http://www.yayakq.cn/news/231013/

相关文章:

  • 信誉好的永州网站建设wordpress admin空白
  • 品牌网站建设开发价格北京服务设计
  • 游戏前端转网站开发容桂做网站
  • asp网站发布ftp奢侈品回收正规店
  • 推广网上国网的好处安徽360优化
  • 自建网站视频教程建网站需多少钱
  • p2p网站建设报价2p排名广告联盟点击广告能赚多少
  • 广西网站制作wordpress 用户api
  • 网站宣传策划方案网页制作模板及素材
  • 做网站付款方式国外云服务器哪个好
  • 网站建设 7 24上海企业网站建设公司
  • 网站建设维护费用固镇网站建设哪家好?
  • 招聘网站哪个好seo优化工程师
  • 聊城wap网站建设建网站需要什么技术
  • 网站如何做线上推广怎么搭建wap网站
  • 做脚本的网站芜湖注册公司流程和费用
  • 极速在线网站怎么做盗号网站
  • 建设工程消防监督管理规定网站网站服务器一个多少钱
  • 网站建设的知名品牌wordpress 超卡
  • 怎么创建网站文件夹安卓手机搭建网页
  • 电商设计网站哪个好用wordpress编辑文章如何全屏
  • wordpress模板建站做网站基本
  • 宜宾建设招标网站在线技能培训平台
  • 如何将网站和域名绑定域名十大免费网站免费下载软件
  • 开发一个交易网站多少钱人们常用的网页设计工具是
  • 做网站要写代码吗百度推广入口页面
  • 做资源下载网站用什么工具餐饮公司注册流程及费用
  • 备案 网站起名广告设计速成班多少钱
  • 东莞做网站哪里好建设信用卡在线海淘网站返现
  • 江阴公司网站建设wordpress侧边栏添加分类