SSM整合笔记
SSM整合筆記
1,創建maven項目
創建maven項目過程省略
ps:如果創建完maven項目之后項目報錯,可能是沒有配置Tomcat
2,在pom.xml里面導入相應的jar的依賴
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.junge</groupId><artifactId>SSM1</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>SSM1 Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><!-- 導入springmvc --><!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.0.0.RELEASE</version></dependency><!-- spring-jdbc --><!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>5.0.0.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>5.0.0.RELEASE</version></dependency><!-- mybatis --><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.4.3</version></dependency><!-- 連接池commons-dbcp --><!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><!-- 數據庫驅動 mysql --><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.25</version></dependency><!-- mybatis-spring --><!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.3.2</version></dependency><!-- jstl --><!-- https://mvnrepository.com/artifact/jstl/jstl --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!-- js --><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.9.4</version></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.0</version></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.9.0</version></dependency><!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version></dependency><!-- log4j --><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!-- 文件上傳 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3</version></dependency><!-- 引入PageHelper分頁插件 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.1.2</version></dependency></dependencies><build><finalName>SSM1</finalName></build> </project>3,構建基本目錄
A:包目錄
根據mvc分層思想,創建包目錄
- action action表示控制層,用于接收請求,并返回數據或轉發頁面
- service ??service表示業務邏輯層,用于處理事務
- action接收請求后,會調用service層的函數做事務處理,代碼邏輯的實現就寫在service層
- dao dao表示持久層,用來寫sql
- service層需要用到數據庫數據時,會調用dao層的sql接口
- view view包下寫實體類,就是有 set/get 函數的類。封裝dao層取出來的數據為一個對象
B:后臺頁面目錄
在src\main\webapp\WEB-INF下創建一個目錄
(該目錄的名字隨意取,該目錄下存放頁面文件
WEB-INF目錄是不可見的,所以其下的文件是安全的
一般來講存放的是需要登錄后才可以訪問的后臺管理頁面)
?
C:靜態資源目錄
在src\main\webapp下創建一個目錄
該目錄的名字隨意取,該目錄下存放前端樣式文件
D:默認首頁
在src\main\webapp下創建一個 index.jsp 文件
4,文件配置
A:數據庫
在src\main\resources目錄下創建數據庫連接配置文件 db.properties(new一個file)
填寫配置內容
oracle、mysql、sql server,3者的寫法均不同變量名可以隨意取,但是要注意,不能和系統內置的變量名起沖突等號右邊的內容,不要加雙引號或單引號
Mysql的配置
jdbc.driver= com.mysql.jdbc.Driver;//數據庫驅動 jdbc.url =jdbc:mysql://localhost:3306/blog?characterEncoding=utf-8 //數據庫地址(一般寫ip地址) jdbc.username = root //數據庫用戶名
jdbc.password =root //數據庫密碼 jdbc.driver= com.mysql.jdbc.Driver jdbc.url =jdbc:mysql://localhost:3306/blog?characterEncoding=utf-8 jdbc.username = root jdbc.password =root
B:spring-mybatis
在src\main\resources目錄下創建spring-mybatis整合配置文件 spring-mybatis.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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:jdbc="http://www.springframework.org/schema/jdbc"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsdhttp://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-4.3.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd"><!-- 引入數據庫配置文件 --><!-- <util:properties id="config"></util:properties> --><context:property-placeholder location="classpath:db.properties"/><!-- 配置數據連接參數及連接池 --><bean id="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}"></property></bean> <!-- spring 集成mybaits 所以不用配置mybatis --> <!-- 配置SqlSessionFactoryBean --> <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 注入連接池 --><property name="dataSource" ref="dataSource"/><!-- 映射文件的位置 --><property name="mapperLocations" value="classpath:mapper/*.xml"/><!-- 分頁插件pageHelper --><property name="configLocation" value="classpath:mybatis-config.xml"></property> </bean><!-- 該bean負責調用sqlsession的getMaper函數 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><property name="basePackage" value="com.junge.dao*"/><!-- --><!-- <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoryBean"></property> --> </bean> <!-- 開啟事務注解驅動 --> <tx:annotation-driven/> <!-- 事務管理 --> <bean id="dataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource"></property> </bean></beans>
?
?
C:spring-mvc
在src\main\resources目錄下創建spring-mvc整合配置文件 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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:jdbc="http://www.springframework.org/schema/jdbc"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsdhttp://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd"><!-- 啟用注解驅動 --><mvc:annotation-driven></mvc:annotation-driven><!-- 處理靜態資源 --><mvc:default-servlet-handler /><!-- 開啟組件掃描 --><context:component-scanbase-package="com.junge.*" /><!-- 配置視圖解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/page/" /><property name="suffix" value=".jsp" /></bean><!-- 攔截器 --><mvc:interceptors><!-- 多個攔截器順序執行登錄認證攔截器 --><mvc:interceptor><mvc:mapping path="/**" /><bean class="com.junge.interceptor.Interceptor" /></mvc:interceptor></mvc:interceptors> <!--全局異常處理 只要你實現了HandelExceptionResolver接口 , 這個類就是一個全局異常處理類 --><bean class="com.junge.exception.JExceptionResolver"></bean><!-- 文件上傳 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><!-- 設置默認編碼 --><property name="defaultEncoding" value="utf-8"></property><!-- 上傳文件總的大小最大為5M --><property name="maxUploadSize" value="5242440"></property></bean> </beans>
D:web.xml
? 找到src\main\webapp\WEB-INF目錄下的web.xml
----------------------------------------------------------------
詳細解釋
----------------------------------------------------------------
--------------------------------------------------------------------------------------
源代碼
--------------------------------------------------------------------------------------
?
<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><!-- 字符過濾,防止post請求亂碼 --><filter><filter-name>SpringCharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>SpringCharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- spring mvc 請求響應 --><!-- The front controller of this Spring Web application, responsible for handling all application requests --><servlet><servlet-name>springDispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-*.xml</param-value><!-- 這么寫會自動找到之前寫的 spring-mybaits文件和spring-mvc文件 --></init-param><load-on-startup>1</load-on-startup></servlet><!-- Map all requests to the DispatcherServlet for handling --><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>*.json</url-pattern></servlet-mapping><!-- 表示后臺控制層接受。action和json結尾的請求 本項目中利用action請求轉發頁面 json請求轉發json數據 --><servlet-mapping><servlet-name>springDispatcherServlet</servlet-name><url-pattern>*.action</url-pattern></servlet-mapping><!-- 配置靜態資源文件路徑 --><servlet-mapping><servlet-name>default</servlet-name><!-- 表示static目錄下的文件都是靜態文件 --><url-pattern>/static/*</url-pattern><!-- 不配置的話,框架會認為這些文件的路徑都是請求,導致無法訪問 --></servlet-mapping><!-- 配置錯誤頁面 --><error-page><error-code>403</error-code><location>/WEB-INF/page/portal/403.jsp</location></error-page><error-page><error-code>404</error-code><location>/WEB-INF/page/portal/404.jsp</location></error-page><error-page><error-code>500</error-code><location>/WEB-INF/page/portal/500.jsp</location></error-page> </web-app>E:mybatis-config.xml
用來分頁的配置文件(pagehelper)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><!-- 引入分頁插件 --><plugins><plugin interceptor="com.github.pagehelper.PageInterceptor"><!-- 分頁參數合理化 --><property name="reasonable" value="true"/></plugin></plugins> </configuration>?
5,訪問測試
A:準備數據庫數據
創建一個user表(oracle數據庫里面user是關鍵字)
表數據
?
B:實體類(view)
在之前創建好的view包中創建User實體類
package com.ssm.view;public class User {private int user_id;private String user_name;private String user_password;public int getUser_id() {return user_id;}public void setUser_id(int user_id) {this.user_id = user_id;}public String getUser_name() {return user_name;}public void setUser_name(String user_name) {this.user_name = user_name;}public String getUser_password() {return user_password;}public void setUser_password(String user_password) {this.user_password = user_password;}}?
?
?
C:dao層(接口)
在之前創建好的dao包中創建UserDao接口 并寫登錄的方法
package com.ssm.dao;import org.apache.ibatis.annotations.Param;import com.ssm.view.User;public interface UserDao {/*** 登錄操作* @param user_name 用戶名* @param user_password 密碼* @return*/public User login(@Param("user_name")String user_name,@Param("user_password")String user_password); }?
在src/main/resources/路徑下創建mapper文件夾? 用來放mybatis dao的配置文件
創建xml文件? 名稱為UserDaomapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN""http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"><mapper namespace="com.ssm.dao.UserDao"><!-- 對應的dao包的類 --><!-- 建立sql查詢結果字段與實體屬性的映射關系 --><resultMap id="UserMap" type="com.ssm.view.User"><!-- 對應的實體類的路徑 --><result column="user_id" property="user_id" /><result column="user_name" property="user_name" /><result column="user_password" property="user_password" /></resultMap><select id="login" resultMap="UserMap">SELECT*FROMuserWHEREuser_name=#{user_name} and user_password=#{user_password}</select></mapper>?
?
?
?
D:service層
在之前創建好的service包中創建UserService類? ?寫登錄的方法
package com.ssm.service;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import com.ssm.dao.UserDao; import com.ssm.view.User;@Service("userService") public class UserService {@Autowiredprivate UserDao userDao;/*** 登錄操作* @param user_name* @param user_password* @return*/public User login(String user_name,String user_password) {return userDao.login(user_name, user_password);} }
?
?
?
E:準備頁面(登錄)
之前創建的index頁面
<%@ page language="java" contentType="text/html; charset=UTF-8" isELIgnored="false"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登錄頁面</title> </head> <body><form action="#" method="post">賬號:<input type="text" id="user_name" name="user_name"><br>密碼:<input type="password" id="user_password" name="user_password"><br><input type="submit" value="login"></form> </body> </html>
在創建登錄成功后的頁面
<%@ page language="java" contentType="text/html; charset=UTF-8" isELIgnored="false"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登錄成功</title> </head> <body>hello </body> </html>
?
?
F:控制層(action/controller)
在之前創建好的action包里創建一個UserAction類
G:訪問(省略)
?
轉載于:https://www.cnblogs.com/jungejava/p/9160357.html
總結
- 上一篇: 微信浏览器禁止下载的处理方法-跳转浏览器
- 下一篇: JMeter插件模拟发送UDP请求:UD