基于SpringMVC+Spring+Hibernate+Maven+Bootstrap的简单Demo
发布日期:2021-07-30 03:26:25 浏览次数:3 分类:技术文章

本文共 18522 字,大约阅读时间需要 61 分钟。

趁着周末自己复习搭建了一个SpringMVC小demo。有很多不正之处还请指教。有什么问题可以私信或者下方留言。有关Ioc可以参考,有关AOP可以参考

项目用到的技术:

开发环境IDE eclipse Neon
服务器Tomcat8.0
JDK 1.8 (正在学习1.8所以还没有使用到新的语法)
数据库 Mysql5.5
Maven 3.3.9
分页框架 pager taglib
后台框架 Spring4.2.4 SpringMVC4.2.4 Hibernate4.3.10
前端框架 Bootstrap3.3.10
日志采用了 log4j
测试框架 Spring-test + junit4

完整项目可以到 下面贴出项目源码。

项目结构:

这里写图片描述
Web.xml:

org.springframework.web.context.ContextLoaderListener
contextConfigLocation
classpath*:bean.xml
SpringMVC
org.springframework.web.servlet.DispatcherServlet
1
SpringMVC
/
openSessionInViewerFilter
org.springframework.orm.hibernate4.support.OpenSessionInViewFilter
openSessionInViewerFilter
/*
org.springframework.web.context.request.RequestContextListener
PageFilter
com.ctc.Common.PageFilter
PageFilter
/*

SpringMVC-servlet.xml:

error

bean.xml :

com.ctc.Model
org.hibernate.dialect.MySQLDialect
true
update
false

pom.xml:

4.0.0
com.ctc
SpringMVC
war
0.0.1-SNAPSHOT
SpringMVC Maven Webapp
http://maven.apache.org
junit
junit
3.8.1
test
mysql
mysql-connector-java
5.1.22
org.springframework
spring-webmvc
4.2.4.RELEASE
org.hibernate
hibernate-core
4.3.10.Final
jstl
jstl
1.2
org.springframework
spring-test
4.2.4.RELEASE
log4j
log4j
1.2.14
org.springframework
spring-tx
4.2.4.RELEASE
commons-dbcp
commons-dbcp
1.4
org.springframework
spring-orm
4.2.4.RELEASE
org.aspectj
aspectjrt
1.7.2
org.aspectj
aspectjweaver
1.7.2
jsptags
pager-taglib
2.0
SpringMVC
org.apache.maven.plugins
maven-compiler-plugin
3.1
1.8
1.8

UserController.java:

package com.ctc.Controller;import java.util.List;import javax.annotation.Resource;import javax.servlet.http.HttpSession;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RequestParam;import com.ctc.Model.User;import com.ctc.Service.UserService;/** *  * @author Tency *  * Date 2016/11 */@Controllerpublic class UserController {
@Resource UserService userServiceImpl; @RequestMapping(value="/login",method=RequestMethod.GET) public String login() { return "login"; } @RequestMapping(value="/login",method=RequestMethod.POST) public String login(@RequestParam("userName") String userName, @RequestParam("passWord") String passWord, HttpSession session,Model model) { List
list=userServiceImpl.checkLogin(userName, passWord); boolean flag=list.isEmpty(); session.setAttribute("flag", flag); return !list.isEmpty()?"redirect:/userManage":"redirect:/login"; } @RequestMapping(value="/addUser",method=RequestMethod.GET) public String userAdd() { return "userAdd"; } @RequestMapping(value="/addUser",method=RequestMethod.POST) public String userAdd(@ModelAttribute("user") User user) { userServiceImpl.addUser(user); return "redirect:/login"; } @RequestMapping(value="/userManage",method=RequestMethod.GET) public String userManage(Model model) { model.addAttribute("pagers", userServiceImpl.userList()); return "userManage"; } @RequestMapping(value="/userShow/{id}",method=RequestMethod.GET) public String userShow(@PathVariable int id,Model model) { User user=userServiceImpl.showUser(id); model.addAttribute(user); return "userShow"; } @RequestMapping(value="/userUpdate/{id}" ,method=RequestMethod.GET) public String userUpdate(@PathVariable int id,Model model) { User user=userServiceImpl.showUser(id); model.addAttribute(user); return "userUpdate"; } @RequestMapping(value="/userUpdate", method=RequestMethod.POST) public String userUpdate(@ModelAttribute("user") User user,Model model) { userServiceImpl.updateUser(user); return "redirect:/userUpdate/"+user.getId(); } @RequestMapping(value="/userDelete/{id}", method=RequestMethod.GET) public String userDelete(@PathVariable int id) { userServiceImpl.deleteUser(id); return "redirect:/userManage"; }}

UserDaoImpl:

package com.ctc.DaoImpl;import java.util.ArrayList;import java.util.Collections;import java.util.List;import javax.annotation.Resource;import org.hibernate.Query;import org.springframework.orm.hibernate4.HibernateTemplate;import org.springframework.stereotype.Repository;import com.ctc.Dao.UserDao;import com.ctc.Model.Pager;import com.ctc.Model.PageConstants;import com.ctc.Model.User;/** *  * @author Tency *  * Date 2016/11 */@Repository("userDaoImpl")public class UserDaoImpl implements UserDao {
@Resource HibernateTemplate hibernateTemplate; @Override public List
retrieve(String userName, String passWord) { // TODO Auto-generated method stub List
list=new ArrayList<>(); list=(List
) hibernateTemplate.find("from User as u where u.userName='"+userName+"' and u.passWord='"+passWord+"'"); if(list.size()>0 && list!=null) return list; return Collections.emptyList(); } @Override public void add(User user) { hibernateTemplate.save(user); } @Override public Pager
retrieveAll() { // TODO Auto-generated method stub int size = PageConstants.getSize(); int offset = PageConstants.getOffset(); Query query = this.hibernateTemplate.getSessionFactory().getCurrentSession().createQuery("from User"); query.setFirstResult(offset).setMaxResults(size); List
datas = query.list(); Pager
pager = new Pager
(); pager.setDatas(datas); pager.setOffset(offset); pager.setSize(size); long total = (Long)this.hibernateTemplate.getSessionFactory().getCurrentSession() .createQuery("select count(*) from User") .uniqueResult(); pager.setTotal(total); return pager; } @Override public User load(int id) { // TODO Auto-generated method stub return hibernateTemplate.load(User.class, id); } @Override public void update(User user) { // TODO Auto-generated method stub hibernateTemplate.update(user); } @Override public void delete(int id) { // TODO Auto-generated method stub User user=this.load(id); hibernateTemplate.delete(user); }}

User.java:

package com.ctc.Model;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.Id;import javax.persistence.Table;/** *  * @author Tency *  * Date 2016/11 */@Entity@Table(name="user")public class User {
private int id; private String userName; private String passWord; @Id @GeneratedValue public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } @Override public String toString() { return "User [id=" + id + ", userName=" + userName + ", passWord=" + passWord + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + id; result = prime * result + ((passWord == null) ? 0 : passWord.hashCode()); result = prime * result + ((userName == null) ? 0 : userName.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; User other = (User) obj; if (id != other.id) return false; if (passWord == null) { if (other.passWord != null) return false; } else if (!passWord.equals(other.passWord)) return false; if (userName == null) { if (other.userName != null) return false; } else if (!userName.equals(other.userName)) return false; return true; }}

UserServiceImpl.java:

package com.ctc.ServiceImpl;

import java.util.List;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Service;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import com.ctc.Dao.UserDao;

import com.ctc.Model.Pager;
import com.ctc.Model.User;
import com.ctc.Service.UserService;

/**

*
* @author Tency
*
* Date 2016/11
*/
@Service(“userServiceImpl”)
public class UserServiceImpl implements UserService {

@ResourceUserDao userDaoImpl;HttpSession session;HttpServletRequest request;@Overridepublic List
checkLogin(String userName, String passWord) { // TODO Auto-generated method stub List
list= userDaoImpl.retrieve(userName, passWord); request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); session=request.getSession(); if(!list.isEmpty()) { session.setAttribute("userName", list.get(0).getUserName()); } return list;}@Overridepublic void addUser(User user) { // TODO Auto-generated method stub this.userDaoImpl.add(user);}@Overridepublic User showUser(int id) { // TODO Auto-generated method stub return userDaoImpl.load(id);}@Overridepublic void updateUser(User user) { // TODO Auto-generated method stub this.userDaoImpl.update(user); request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(); session=request.getSession(); session.setAttribute("userName", user.getUserName());}@Overridepublic void deleteUser(int id) { // TODO Auto-generated method stub this.userDaoImpl.delete(id);}@Overridepublic Pager
userList() { // TODO Auto-generated method stub return userDaoImpl.retrieveAll();}

}

PageFilter.java:

package com.ctc.Common;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import com.ctc.Model.PageConstants;/** *  * @author Tency *  * Date 2016/11 */public class PageFilter implements Filter {
@Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { int offset = 0; try { offset = Integer.parseInt(req.getParameter("pager.offset")); } catch (NumberFormatException e) { } try { PageConstants.setOffset(offset); PageConstants.setSize(5); chain.doFilter(req, res); }finally { PageConstants.removeOffset(); PageConstants.removeSize(); } } @Override public void init(FilterConfig arg0) throws ServletException { } @Override public void destroy() { }}

login.jsp:

<%--  author Tency  Date 2016/11--%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
UserManage Login

UserManage Login


New to Here?
Create an account.

userManage.jsp

<%--  author Tency  Date 2016/11--%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
UserManage

SpringMVC UserManage
Welcome ${ sessionScope.userName}
Login Out
Please
Sign in


There is no data in DB . Please Create an account.

userId userName passWord operation
${user.id} ${user.userName} ${user.passWord} Detail Update Delete

userAdd.jsp:

<%--  author Tency  Date 2016/11--%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    <%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
User Add

Add User


userUpdate.jsp:

<%--  author Tency  Date 2016/11--%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>
Update User

Update User


Return

pager.jsp

<%--  author Tency  Date 2016/11--%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

下面附上项目运行效果图:

这里写图片描述

这里写图片描述
这里写图片描述
这里写图片描述

转载地址:https://blog.csdn.net/u010890358/article/details/53463543 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Hibenate错误汇总:java.lang.NoClassDefFoundError:
下一篇:ifndef/define/endif作用和用法

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月20日 12时30分22秒