关于SSM框架的搭建。

这个项目是我为自己和朋友写的一个进行日记管理的web程序,使用了ssm框架(SpringMVC+Spring+Mybatis),未使用maven,使用的数据库为MySQL,开发工具使用的是MyEclipse10,实现的功能较为简单。有兴趣的大佬可以看一下我在github上的源码
源码地址:github
或者百度云:提取码:0img
本站下载:谢谢大家
小白我在这里就只写我的SSM框架的搭建了。

  1. 导包
    小白这里用的JDK是1.7的版本
    所用到的JAR包(这些包可以从maven上下载,也可以在我上传的)
    在这里插入图片描述

  2. 设置配置文件。
    在这里插入图片描述
    beans.xml是Spring的配置文件。
    dbconfig.properties是连接数据库的配置文件。
    log4j.propertise是日志记录。
    mybatis-config是集合了各个mybatis的文件。
    springmvc.xml是配置springMVC的文件。

  3. 各个配置文件的内容(根据自己的实际情况进行修改。
    beans.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:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">

	<!-- 扫包 -->
	<context:component-scan base-package="dog.diary" />

	<!-- 导入外部的properties文件 -->
	<context:property-placeholder location="classpath:dbconfig.properties" />

	<!-- 配置dbcp数据库连接池 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		<!-- 数据连接信息 -->
		<property name="url" value="${url}"></property>
		<property name="driverClassName" value="${driver}"></property>
		<property name="username" value="${user}"></property>
		<property name="password" value="${password}"></property>
	</bean>

	<!-- 配置SqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- 指定mybatis的配置文件位置 -->
		<property name="configLocation" value="classpath:mybatis-config.xml"></property>
		<!-- 数据源 -->
		<property name="dataSource" ref="dataSource"></property>
		<!-- 配置别名 的 包 -->
		<property name="typeAliasesPackage" value="dog.diary.entity"></property>
		<!-- 自动扫描mapping.xml文件 -->  
        <property name="mapperLocations" value="classpath:dog/diary/entity/*.xml"></property>  
	</bean>
	<!-- 批量扫描mapper接口 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="dog.diary.dao.mapper"></property>
		<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
	</bean>

	<!-- 配置声明式事务管理 -->
	<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>

	<!-- 采用注解的方式管理事务 -->
	<tx:annotation-driven transaction-manager="txManager" />

</beans>

dbconfig.properties:
在这里插入图片描述
log4j.properties:
在这里插入图片描述
mybatis.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>

	
</configuration>

springmvc.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:p="http://www.springframework.org/schema/p" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:task="http://www.springframework.org/schema/task"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-4.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd 
        http://www.springframework.org/schema/task 
        http://www.springframework.org/schema/task/spring-task-4.2.xsd">   
        
        <!-- 处理器 -->
        <!-- 扫包 -->
        <context:component-scan base-package="dog.diary.controller" />
        
        <!-- 映射器、适配器 -->
        <mvc:annotation-driven></mvc:annotation-driven>
        
        <!-- 配置 视图解析器 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
        		<!-- 前缀 -->
        		<property name="prefix" value="/WEB-INF/jsp/"/>
        		<!-- 后缀 -->
        		<property name="suffix" value=".jsp"/>
        </bean>
        
</beans>
  1. web.xml文件的修改。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	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_2_5.xsd">
  <display-name></display-name>	
  
  <session-config>
  	<session-timeout>10</session-timeout>
  </session-config>
  
  <!-- spring的监听器 -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:beans.xml</param-value>
	</context-param>
  
  <!-- springmvc 的 post编码 过滤器 -->
  <filter>
  		<filter-name>characterEncoding</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>characterEncoding</filter-name>
  		<url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <!-- 配置 springmvc 的前端控制器 -->
  	<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.xml</param-value>
  		</init-param>
  	</servlet>
  	<servlet-mapping>
  		<servlet-name>springmvc</servlet-name>
  		<url-pattern>*.do</url-pattern>
  	</servlet-mapping>
  
  <!-- 前端Iframe对应页面 -->
  <servlet>
  	<servlet-name>left</servlet-name>
  	<jsp-file>/WEB-INF/jsp/home/left.jsp</jsp-file>
  </servlet>
  <servlet-mapping>
  	<servlet-name>left</servlet-name>
	<url-pattern>/left</url-pattern>
  </servlet-mapping>
  <servlet>
  	<servlet-name>add_diary</servlet-name>
	<jsp-file>/WEB-INF/jsp/home/right/diary_add.jsp</jsp-file>
  </servlet>
  <servlet-mapping>
  	<servlet-name>add_diary</servlet-name>
  	<url-pattern>/add_diary</url-pattern>
  </servlet-mapping>
  
  <welcome-file-list>
    <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file>
  </welcome-file-list>
</web-app>

  1. 分包的结构
    在这里插入图片描述

  2. 简单的使用:(这里用的是我自己上传的这个项目中的功能来举例的)
    登录功能:
    登录页面:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


<!DOCTYPE html>
<html>

<head>
	<link rel="Shortcut Icon" href="<%=basePath %>image/dogdog.ico" type="image/x-icon" />
	<meta charset="utf-8">
	<title>
		登录
	</title>
	
	<link rel="stylesheet" type="text/css" href="<%=basePath %>css/curriculum_vitae.css">
	<script type="text/javascript" src="<%=basePath %>js/jquery-2.2.3.js"></script>
</head>

<!-- 这里准备增加登录页面的背景图片,现已通过外联css的方式完成 -->
<body style="text-align:center;">
	
	<!-- 整个登录框的位置 -->	
	<div style="margin-top: 200px;margin-left: 35%; height: 270px;width: 400px;background-color: #abacb5;border-radius:10px;">
		<div style="margin-left: 115px;padding-top:15px;">
			<p style="margin-left: 20px;">欢迎来到日志中心</p>
			
			<input type="text" id="name"  placeholder="请输入账号">
			<br/>
			<input style="margin-top: 20px;" id="password" type="password" placeholder="请输入密码">
			<br/>
			<input type="button" name="登录" οnclick="login()" style="margin-top: 20px;width: 100px;margin-left: 35px;" value="登录" >
			<br/>
			<input type="button" name="注册" οnclick="adduser()" style="margin-top: 20px;width: 100px;margin-left: 35px;" value="注册" >
		</div>
	</div>
</body>
<c:if test="${mess == 0}">
	<script type="text/javascript">
		alert("账号密码不能为空。");
	</script>	
</c:if>
<c:if test="${mess == 2}">
	<script type="text/javascript">
		alert("账号已存在。");
	</script>	
</c:if>
<c:if test="${mess == 1}">
	<script type="text/javascript">
		alert("账号添加成功。");
	</script>	
</c:if>
<c:if test="${bal == 0}">
	<script type="text/javascript">
		alert("资金添加失败。");
	</script>	
</c:if>

<script type="text/javascript">
	function adduser(){
		window.location.href="adduser.do";
	}

	function login(){
		$.ajax({
			async:"false",
			url:"login.do",
			type:"POST",
			contentType:"application/json;charset=utf-8",
			data:JSON.stringify({"username":$("#name").val(),"password":$("#password").val()}),
			dataType:"json",
			success:function(data){
					alert("登录成功");
					window.location.href="index.do";
			},
			error:function(){
				alert("账号密码错误");
			}
		});
	}
</script>
</html>

请求到controller层

@Resource(name="loginService")
	private LoginServiceInte lsi;
	private HttpSession session;
	@Resource(name="diaryService")
	private DiaryServiceInte dsi;

@RequestMapping(value="/login")
	public @ResponseBody User login(@RequestBody User user,HttpServletRequest req){
		session = req.getSession();
		
		user  = lsi.login(user,session);
		if(user != null){
			session.setAttribute("user", user);
		}
		
		return user;
	}
	
	@RequestMapping(value="/index")
	public String index(Model model){
		
		if(session == null){
			return "login";
		}
		
		GetDate gd = new GetDate();
		String date = gd.getDate();
		model.addAttribute("date",date);
		
		User user = null;
		try {
			user = (User) session.getAttribute("user");
		} catch (Exception e) {
			e.printStackTrace();
			return "login";
		}
		String name = user.getUsername();
		
		model.addAttribute("name", name);
//		判断今天的日志是否已经写了
		boolean bool = false;
		if(dsi.diary_yesorno(date,user.getId())){
			bool = true;
		}
		model.addAttribute("bool", bool);
		return "home";
	}

请求进入service,再进入dao。
service:

@Service("loginService")
public class LoginServiceImpl implements LoginServiceInte{

	@Resource(name="logindao")
	private LoginDaoInte ldi;
	
	public User login(User user, HttpSession session) {
		user = ldi.login(user);
		return user;
	}
	
}

dao层:

@Repository("logindao")
public class LoginDaoImpl implements LoginDaoInte{
	
	@Resource(name="sqlSessionFactory")
	private SqlSessionFactory sqlSessionFactory;
	
	public User login(User user) {
		SqlSession sqlSession = sqlSessionFactory.openSession();
		
		LoginDaoInte loginDaoInte = sqlSession.getMapper(LoginDaoInte.class);
		
		
		return loginDaoInte.login(user);
		
	}

}

数据库对应的xml文件,在entity下

<?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="dog.diary.dao.mapper.LoginDaoInte">
	
	<select id="login" parameterType="user" resultType="User">
			select * from user where username = #{username} and password = #{password}
	</select
</mapper>
  1. 讲解:
    从登录页面发出请求。ajax的url是login.do。由于在web.xml中配置了springmvc的前端控制器。因此在controller中收到的请求为"login"。这里我使用了注解,依靠注解来找到对应的处理方法。

由于本人是第一次写博客,不足的地方很多,同时因个人的工作和开发没太大的关系,在代码的编写方面也有很多不足。欢迎各位大佬的意见、批评和建议,也欢迎各位的讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值