前言
任何的web程序的开发无外乎以下几个步骤
- 前端页面发送请求
- 经过web.xml一系列过滤或操作后交由后端处理
- 后端接收请求,根据请求内容操作数据库
- 处理结束后,将结果返回给前台
以下简要的说明一下ssm开发时的相关知识点
一、web.xml
web.xml文件是web服务启动后首先要经过的文件,在这里面要进行spring配置文件和springmvc配置文件的加载,以及其他的过滤器等装置的配置。
- 加载spring监听器,监听器的作用是将spring配置文件中的Bean注册到spring容器中
<!--配置spring 程序启动时会启动spring监听器将spring配置文件中的内容加载(Bean加载到容器)-->
<!--spring监听器-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
- 加载springmvc的配置文件
<!--配置springmvc 加载springmvc的配置文件,用与Servlet请求的分配和映射处理-->
<!--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:springmvc.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
二、spring的配置文件
- 组件扫描,将Bean注册到容器中(有不想注册的类可用context:exclude-filter进行标记)
<!--组件扫描 扫描service和mapper-->
<context:component-scan base-package="com.jiansheng">
<!--排除controller的扫描-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
</context:component-scan>
- 进行数据库相关的配置以及Session工厂的创建,这个时候
<!--加载propeties文件-->
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>
<!--配置数据源信息-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!--配置sessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!--加载mybatis核心文件-->
<property name="configLocation" value="classpath:sqlMapCondig.xml"></property>
</bean>
<!--扫描mapper所在的包 为mapper创建实现类-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.jiansheng.mapper"></property>
</bean>
三、springmvc的配置文件
- 扫描Controller层的内容
<!--组件扫描 主要扫描controller 并注册Bean-->
<context:component-scan base-package="com.jiansheng.controller"></context:component-scan>
<!--配置mvc注解驱动-->
<mvc:annotation-driven></mvc:annotation-driven>
<!--内部资源视图解析器-->
<bean id="resourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
<!--开放静态资源访问权限-->
<mvc:default-servlet-handler></mvc:default-servlet-handler>
四、Controller → Service → Dao → Bean
然后根据不同的分层结构,负责各自的逻辑
- Controller:分配处理前台的请求,调用对应的Service
- Service:使用Dao层对象处理对应的业务逻辑和其他的非数据库相关逻辑
- Dao:实际操作数据库的SQL所在
Jiansheng