以下是第二种SSM框架整合xml配置文件代码##
web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>UserManager</display-name>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<!-- mybatis配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mybatis.xml</param-value>
</context-param>
<!-- 配置spring监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 视图控制器 -->
<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>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<!-- 统一字符编码 -->
<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>
</web-app>
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:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
<!-- 配置用注解的方式实现处理器 -->
<context:component-scan base-package="com.user.*"></context:component-scan>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
<!-- 文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="utf-8"></property>
</bean>
<!-- 配置拦截器
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.movesys.interceptor.TimeInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
-->
</beans>
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:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.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-3.0.xsd">
<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql:///user" />
<property name="username" value="root" />
<property name="password" value="123456" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="0"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="20"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="20"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="1"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="60000"></property>
</bean>
<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描映射文件 -->
<property name="mapperLocations" value="classpath:com/user/dao/*.xml"></property>
</bean>
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.user.dao" />
<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"/>
<!-- 配置Spring国际化信息 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="messages/message"></property>
</bean>
<bean id="CookieLocaleResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver">
<property name="cookieMaxAge" value="604800"></property>
<property name="defaultLocale" value="zh_CN"></property>
<property name="cookieName" value="language"></property>
</bean>
</beans>
处理器的UserController.java代码如下:
package com.user.controllers;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.servlet.ModelAndView;
import com.user.bean.Page;
import com.user.bean.User;
import com.user.service.UserService;
/**
* 用户类控制器
* @author LIU
* @version 2.0 2017-10-30
*/
@Controller
public class UserController {
ModelAndView mav = null;
@Autowired
UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
/**
* 用户登陆
*TODO
*LIU
* @param request
* @param response
* @return ModelAndView
*下午2:50:51
*/
@RequestMapping("/login.action")
public ModelAndView login(HttpServletRequest request, HttpServletResponse response) {
// 获取账户名 和 密码object
String uname = (String)request.getParameter("uname");
String password = (String)request.getParameter("pwd");
// 将用户名和密码保存到user
User user = new User();
user.setUserId(uname);
user.setPassword(password);
// 判断登陆是否成功
if(userService.login(user)){
mav = new ModelAndView("showAll.action");
}else{
request.getSession().setAttribute("mess", "登陆失败!");
mav = new ModelAndView("redirect:login.jsp");
}
return mav;
}
/**
* 用户登陆
*TODO
*LIU
* @param request
* @param response
* @return ModelAndView
*下午2:50:51
*/
@RequestMapping("/login1.action")
@ResponseBody
public Object login1(HttpServletRequest request, HttpServletResponse response) {
// 将用户名和密码保存到user
User user = new User();
user.setUserId(request.getParameter("uname"));
user.setPassword(request.getParameter("pwd"));
String flag = "false";
// 判断登陆是否成功
if(userService.login(user)){
flag = "true";
}else{
flag = "false";
}
return flag;
}
/**
* 分页显示全部
*TODO
*LIU
* @param request
* @param response
* @return
*下午4:16:25
*/
@RequestMapping("showAll.action")
public ModelAndView showAll(HttpServletRequest request, HttpServletResponse response) {
// 初始化分页信息
Page p = new Page();
p.setCurrCount(3); // 每页显示记录数
p.setTotalCount(userService.searchAllCount()); // 表中的总记录数
if(p.getTotalCount() % p.getCurrCount() == 0){ // 设置表的总页数
p.setSumPage(p.getTotalCount() / p.getCurrCount());
}else{
p.setSumPage(p.getTotalCount() / p.getCurrCount());
}
if(request.getParameter("curr") == null){// 默认显示第一页
p.setCurrPage(1);
List<User> userList = userService.getUserByPage(p);
mav = new ModelAndView("showAll.jsp");
mav.addObject("userList", userList);
mav.addObject("page", p);
}else{// Ajax实现分页
p.setCurrPage(Integer.valueOf(request.getParameter("curr")));
List<User> userList = userService.getUserByPage(p);
mav = new ModelAndView("divShowAll.jsp");
mav.addObject("userList", userList);
mav.addObject("page", p);
}
return mav;
}
/**
* 查询用户信息
*TODO
*LIU
* @param request
* @param response
* @return
*下午4:25:20
*/
@RequestMapping("search.action")
public ModelAndView search(HttpServletRequest request, HttpServletResponse response){
mav = new ModelAndView("search.jsp");
String userId = request.getParameter("searchId");
User user = userService.searchUser(userId);
if(user != null){
mav = new ModelAndView("search.jsp");
mav.addObject("user", user);
}else{
mav = new ModelAndView("showAll.jsp");
}
return mav;
}
/**
* 修改用户信息
*TODO
*LIU
* @param request
* @param response
* @return
*下午4:25:20
*/
@RequestMapping("update.action")
public ModelAndView update(HttpServletRequest request, HttpServletResponse response){
User user = new User();
user.setUserId(request.getParameter("uname"));
user.setUserName(request.getParameter("realName"));
user.setPassword(request.getParameter("pwd"));
user.setSex(request.getParameter("sex"));
user.setAge(Integer.parseInt(request.getParameter("age")));
user.setIdcard(request.getParameter("cardID"));
user.setPhone(request.getParameter("phone"));
user.setAddress(request.getParameter("address"));
user.setEmail(request.getParameter("email"));
userService.updateUser(user, user.getUserId());
mav = new ModelAndView("showAll.jsp");
return mav;
}
/**
* 注册用户信息
*TODO
*LIU
* @param request
* @param response
* @return
*下午4:25:20
*/
@RequestMapping("register.action")
public ModelAndView register(HttpServletRequest request, HttpServletResponse response){
User user = new User();
user.setUserId(request.getParameter("uname"));
user.setUserName(request.getParameter("realName"));
user.setPassword(request.getParameter("pwd"));
user.setSex(request.getParameter("sex"));
user.setAge(Integer.parseInt(request.getParameter("age")));
user.setIdcard(request.getParameter("cardID"));
user.setPhone(request.getParameter("phone"));
user.setAddress(request.getParameter("address"));
user.setEmail(request.getParameter("email"));
int result = userService.addUser(user);
if(result > 0){
mav = new ModelAndView("login.jsp");
request.setAttribute("mess", "注册成功!");
}else{
request.getSession().setAttribute("mess", "注册失败!");
mav = new ModelAndView("redirect:register.jsp");
}
return mav;
}
/**
* 删除用户功能
*TODO
*LIU
* @param request
* @param response
* @return
*下午4:56:19
*/
@RequestMapping("update.action")
public ModelAndView delete(HttpServletRequest request, HttpServletResponse response) {
String userId = request.getParameter("deleteId");
int result = userService.deleteUser(userId);
PrintWriter out = null;
try {
out = response.getWriter();
if(result > 0){
out.print("<script type='text/javascript'>alert('删除成功!');window.location='showAll.jsp';</script>");
}else{
out.print("<script type='text/javascript'>alert('删除失败!');window.location='showAll.jsp';</script>");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mav;
}
/**
* 文件上传
*TODO
*LIU
* @param request
* @param response
* @return
*上午10:34:15
*/
@RequestMapping("uploadFile.action")
public ModelAndView uploadFile(@RequestParam("uploadfile") CommonsMultipartFile cmf, HttpServletRequest request) throws Exception{
// 接收普通的用户名的话,用参数request来接收
String uname = request.getParameter("uname");
String path = "F:\\upload\\" + cmf.getOriginalFilename();
File file = new File(path);
cmf.transferTo(file);
mav = new ModelAndView("uploadResult.jsp");
String mess = cmf.getOriginalFilename() + "上传成功了!";
mav.addObject("mess", mess);
mav.addObject("uname", uname);
return mav;
}
}
数据映射文件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.user.dao.UserDao">
<!-- 用户登陆 -->
<select id="login" parameterType="com.user.bean.User" resultType="int">
select count(userid)
from user
where userid=#{userId} and password=#{password}
</select>
<!-- 获取所有用户的总记录数 -->
<select id="getAllCounts" parameterType="com.user.bean.User" resultType="int">
select count(userid)
from user
where userid=#{userId}
</select>
<!-- 显示全部账单 -->
<select id="showAll" parameterType="com.user.bean.Page" resultType="com.user.bean.User">
select userid as userId,username as userName,password as password,sex as sex,age as age,idcard as idcard,phone as phone,address as address,email as email
from user order by userid
limit #{start},#{currCount}
</select>
</mapper>
项目目录结构:
感谢您的阅读,欢迎参观我的个人网站:小嗨词典【 https://www.happydict.cn】