SSM MAVEN搭建实例

1:创建一个Maven项目

2:修改web.xml文件

<?xml version="1.0" encoding="UTF-8"?>  
   
<web-app  
        version="3.0"  
        xmlns="http://java.sun.com/xml/ns/javaee"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  
   
</web-app>

3:修改导航器.setting  ...core.xml 

4:修改构建路径,把JDK置顶 保存

5:修改 pom.xml

<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.syp</groupId>
	<artifactId>ssm_demo1</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>ssm_demo1 Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<junit.version>4.11</junit.version>
		<spring.version>4.3.10.RELEASE</spring.version>
		<mybatis.version>3.4.4</mybatis.version>
		<mybatis.spring.version>1.3.1</mybatis.spring.version>
		<commons-dbcp.version>1.4</commons-dbcp.version>
		<jstl.version>1.2</jstl.version>
		<log4j.version>1.2.17</log4j.version>
		<fastjson.version>1.2.35</fastjson.version>
		<slf4j.version>1.7.25</slf4j.version>
		<jackson.version>2.7.4</jackson.version>
		<commons-fileupload.version>1.3.3</commons-fileupload.version>
		<commons-io.version>2.5</commons-io.version>
		<commons-codec.version>1.10</commons-codec.version>
		<aspectjweaver.version>1.8.10</aspectjweaver.version>
	</properties>

	<dependencies>
		<!-- servlet -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.1.3-b06</version>
		</dependency>

		<!-- kaptcha -->
		<dependency>
			<groupId>com.github.penggle</groupId>
			<artifactId>kaptcha</artifactId>
			<version>2.3.2</version>
		</dependency>



		<!-- C3p0 -->
		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.1.2</version>
		</dependency>

		<!-- Junit测试 -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>


		<!-- spring包 core、web、oxm、tx、jdbc、webmvc、aop、context、test -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<!-- mybatis核心包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>${mybatis.version}</version>
		</dependency>
		<!-- mybatis/spring包 -->
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis-spring</artifactId>
			<version>${mybatis.spring.version}</version>
		</dependency>

		<!-- 导入Mysql数据库链接jar包 -->
		<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
		</dependency>


		<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>${commons-dbcp.version}</version>
		</dependency>
		<!-- JSTL标签类 -->
		<dependency>
			<groupId>jstl</groupId>
			<artifactId>jstl</artifactId>
			<version>${jstl.version}</version>
		</dependency>
		<!-- 日志文件管理包 -->
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>

		<!-- 格式化对象,方便输出日志 -->
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>${fastjson.version}</version>
		</dependency>


		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
		</dependency>

		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${slf4j.version}</version>
		</dependency>
		<!-- json和bean之间相互转换 -->
		
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>${jackson.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<!-- 上传组件包 -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>${commons-fileupload.version}</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>${commons-io.version}</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>${commons-codec.version}</version>
		</dependency>


		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${aspectjweaver.version}</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>ssm_demo1</finalName>
	</build>
</project>

 

 6:添加tomcat库

7:编写 db.properties文件

jdbc.driverclass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_demo1?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=root

c3p0.pool.size.max=10
c3p0.pool.size.min=2
c3p0.pool.size.ini=3
c3p0.pool.size.increment=2

8:编写 applicationContext.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"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
        http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-4.3.xsd
       http://www.springframework.org/schema/aop
       http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
	

	<!-- 分散配置 -->
	<context:property-placeholder location="classpath:db.properties" />

	<!-- 数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
		<property name="driverClass" value="${jdbc.driverclass}" />
		<property name="jdbcUrl" value="${jdbc.url}"></property>
		<property name="user" value="${jdbc.username}" />
		<property name="password" value="${jdbc.password}" />

		<property name="maxPoolSize" value="${c3p0.pool.size.max}" />
		<property name="minPoolSize" value="${c3p0.pool.size.min}" />
		<property name="initialPoolSize" value="${c3p0.pool.size.ini}" />
		<property name="acquireIncrement" value="${c3p0.pool.size.increment}" />
	</bean>

	<!-- 事务管理器,依赖于数据源 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	<!-- 开启事务注解 -->
	<tx:annotation-driven transaction-manager="transactionManager" />

	<!-- 配置MyBatis工厂SqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource"></property>
		<property name="configLocation" value="classpath:mybatis-config.xml"></property>
	</bean>

	<!-- 配置mapper扫描器 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="com.itheima.dao"></property>
	</bean>

	<!-- 扫描Service -->
	<context:component-scan base-package="com.itheima.service"></context:component-scan>

	<!-- 验证码 -->
	<bean id="defaultKaptcha" class="com.google.code.kaptcha.impl.DefaultKaptcha">
		<property name="config">
			<bean class="com.google.code.kaptcha.util.Config">
				<constructor-arg>
					<props>
						<!-- 验证码宽度 -->
						<prop key="kaptcha.image.width">90</prop>
						<!-- 验证码高度 -->
						<prop key="kaptcha.image.height">50</prop>
						<!-- 生成验证码内容范围 -->
						<prop key="kaptcha.textproducer.char.string">0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ</prop>
						<!-- 验证码个数 -->
						<prop key="kaptcha.textproducer.char.length">4</prop>
						<!-- 是否有边框 -->
						<prop key="kaptcha.border">no</prop>
						<!-- 边框颜色 -->
						<prop key="kaptcha.border.color">255,182,193</prop>
						<!-- 边框厚度 -->
						<prop key="kaptcha.border.thickness">1</prop>
						<!-- 验证码字体颜色 -->
						<prop key="kaptcha.textproducer.font.color">pink</prop>
						<!-- 验证码字体大小 -->
						<prop key="kaptcha.textproducer.font.size">30</prop>
						<!-- 验证码所属字体样式 -->
						<prop key="kaptcha.textproducer.font.names">楷体</prop>
						<!-- 干扰线颜色 -->
						<prop key="kaptcha.noise.color">black</prop>
						<!-- 验证码文本字符间距 -->
						<prop key="kaptcha.textproducer.char.space">3</prop>
						<!-- 图片样式 :阴影 -->
						<prop key="kaptcha.obscurificator.impl">com.google.code.kaptcha.impl.ShadowGimpy</prop>
					</props>
				</constructor-arg>
			</bean>
		</property>
	</bean>


</beans> 

9:编写 mybatis-config.xml文件

<?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>

	<typeAliases>
		<package name="com.itheima.po" />
	</typeAliases>


</configuration>

10:编写 springmvc-config.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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
   http://www.springframework.org/schema/mvc 
   http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-4.3.xsd">
	
	<!-- 使用默认servlet配置 -->
	<mvc:default-servlet-handler/>

	<!-- 配置包扫描器, 扫描@Controller注解的类 -->
	<context:component-scan base-package="com.itheima.controller" />

	<!-- 加载注释驱动 -->
	<mvc:annotation-driven />


	<!-- 配置视图解析器 -->
	<bean id="viewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/" />
		<property name="suffix" value=".jsp" />
	</bean>








</beans>

11:修改web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

	<!-- 配置加载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>

	<!-- 编码过滤器 -->
	<filter>
		<filter-name>characterEncodingFilter</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>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	<!-- 配置Spring MVC前端核心控制器 -->
	<servlet>
		<servlet-name>springmvc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc-config.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springmvc</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>



</web-app>

 

12: 在com.itheima.po下编写 User类

package com.itheima.po;
/**
 * @author 作者 苏益平:
 * @version 创建时间:2018年11月4日 下午7:33:10
 * 类说明
*/
public class User {
	private Integer user_id;	//ID
	private String user_code;	//账号
	private String user_name;	//名称
	private String user_password;//密码
	private Integer user_state;	//状态
	public Integer getUser_id() {
		return user_id;
	}
	public void setUser_id(Integer user_id) {
		this.user_id = user_id;
	}
	public String getUser_code() {
		return user_code;
	}
	public void setUser_code(String user_code) {
		this.user_code = user_code;
	}
	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;
	}
	public Integer getUser_state() {
		return user_state;
	}
	public void setUser_state(Integer user_state) {
		this.user_state = user_state;
	}
	
	
}

13 : 在 com.itheima.dao下创建 UserDao

package com.itheima.dao;

import org.apache.ibatis.annotations.Param;

import com.itheima.po.User;

/**
 * @author 作者 苏益平:
 * @version 创建时间:2018年11月4日 下午7:37:07
 * 类说明
*/
public interface UserDao {
	public User findUser(@Param("usercode")String usercode,@Param("password")String password);
}

14:在com.itheima.dao下创建映射文件 UserDao.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.itheima.dao.UserDao">
	<select id="findUser" parameterType="String" resultType="user">	
		select * from sys_user where user_code=#{usercode} and user_password = #{password} and user_state=1
	</select>
</mapper>

15:在com.itheima.service 下创建 UserService接口

package com.itheima.service;

import com.itheima.po.User;

/**
 * @author 作者 苏益平:
 * @version 创建时间:2018年11月4日 下午7:44:28
 * 类说明
*/
public interface UserService {
	public User findUser(String usercode,String password);
	
}

16: 在com.itheima.service.impl下创建实现类 UserServiceImpl

 

package com.itheima.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.itheima.dao.UserDao;
import com.itheima.po.User;
import com.itheima.service.UserService;

/**
 * @author 作者 苏益平:
 * @version 创建时间:2018年11月4日 下午7:46:35
 * 类说明
*/
@Service("userService")
@Transactional
public class UserServiceImpl implements UserService {
	@Autowired
	private UserDao userDao;
	@Override
	public User findUser(String usercode, String password) {
		User user=this.userDao.findUser(usercode, password);
		return user;
	}
	
}

 17:在com.itheima.controller下创建 UserControlelr

package com.itheima.controller;

import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import com.itheima.po.User;
import com.itheima.service.UserService;

/**
 * @author 作者 苏益平:
 * @version 创建时间:2018年11月4日 下午7:52:07
 * 类说明
*/
@Controller
public class UserController {
	@Autowired
	private UserService userService;
	
	@RequestMapping(value="/login.action" ,method=RequestMethod.GET)
	public String login(String usercode,String password,Model model,HttpSession session){
		User user=userService.findUser(usercode, password);
		if(user != null){
			//将用户对象添加到session
			session.setAttribute("USER_SESSION", user);
			
			return "main";
		}
		
		return "login";
		
	}
}

18:修改index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String loginURL = request.getContextPath() + "/index";
	response.sendRedirect(loginURL);
%>

19:在WEB-INF/jsp  下创建 login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登录</title>

<script type="text/javascript">
	//判断字符是否为空的方法
	function isEmpty(obj) {
		if (typeof obj == "undefined" || obj == null || obj == "") {
			return true;
		} else {
			return false;
		}
	}
	function check() {
		var userCode = document.getElementById("userCode").value;
		var userPassword = document.getElementById("userPassword").value; 
		var verifyCode=document.getElementById("verifyCode").value;

		 if ( isEmpty(userCode) || isEmpty(userPassword)) {
			alert("账号或密码不能为空!");
			return false;
		} else  if(isEmpty(verifyCode)){
			alert("请输入验证码");
			return false;
		} else{
			return true;
		}
	}
	function changeVerifyCode() {
        var time=new Date().getTime();
        document.getElementById("kaptchaImage").src="kaptcha?d="+time;//为了不让验证码缓存,为了安全起见,需要次次都刷新
    }

</script>
</head>
<body>
	<h3>欢迎使用,请登录</h3>
	<hr>

	<form action="${pageContext.request.contextPath}/login" method="post"
		onsubmit="return check();">
		<table>
			<tr>
				<td>用户名:<input type="text" name="userCode" id="userCode"></td>

			</tr>
			<tr>
				<td>密码:<input type="password" id="userPassword"
					name="userPassword"></td>
			</tr>

			<tr>
				<td>验 证 码:<input type="text" name="verifyCode" id="verifyCode"
					placeholder="请输入验证码" /> <img src="kaptcha"id="kaptchaImage"
					title="看不清,点击换一张" onclick="changeVerifyCode()">
				</td>
			</tr>

			<tr>
				<td><input type="submit" value="登录"  > <input
					type="reset" value="重置"></td>
			</tr>
		</table>
	</form>

</body>
</html>

20 创建 main.jsp 

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>主页面</title>
</head>
<body>
	欢迎来到主页面
</body>
</html>

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值