From a1ad457b542defd4b0847f665f22f8a1621de35c Mon Sep 17 00:00:00 2001 From: lonecloud Date: Sun, 16 Apr 2017 16:08:25 +0800 Subject: [PATCH 01/12] build init Demo --- .../controller/DesignController.java | 22 ----- .../lonecloud/controller/ErrorController.java | 26 ------ .../lonecloud/controller/HelloController.java | 23 ----- .../lonecloud/controller/ModelController.java | 32 ------- .../lonecloud/controller/ParamController.java | 88 ------------------- .../lonecloud/controller/RestController.java | 43 --------- .../java/cn/lonecloud/entity/Address.java | 30 ------- src/main/java/cn/lonecloud/entity/User.java | 49 ----------- .../java/cn/lonecloud/view/HelloView.java | 27 ------ src/main/resources/I18n_en_US.properties | 2 - src/main/resources/I18n_zh_CN.properties | 2 - src/main/resources/SpringMvc.xml | 11 --- src/main/webapp/WEB-INF/jsp/hello.jsp | 29 ------ src/main/webapp/WEB-INF/jsp/list.jsp | 28 ------ src/main/webapp/WEB-INF/jsp/paramList.jsp | 12 --- src/main/webapp/WEB-INF/jsp/testError.jsp | 27 ------ src/main/webapp/WEB-INF/jsp/user.jsp | 28 ------ 17 files changed, 479 deletions(-) delete mode 100644 src/main/java/cn/lonecloud/controller/DesignController.java delete mode 100644 src/main/java/cn/lonecloud/controller/ErrorController.java delete mode 100644 src/main/java/cn/lonecloud/controller/HelloController.java delete mode 100644 src/main/java/cn/lonecloud/controller/ModelController.java delete mode 100644 src/main/java/cn/lonecloud/controller/ParamController.java delete mode 100644 src/main/java/cn/lonecloud/controller/RestController.java delete mode 100644 src/main/java/cn/lonecloud/entity/Address.java delete mode 100644 src/main/java/cn/lonecloud/entity/User.java delete mode 100644 src/main/java/cn/lonecloud/view/HelloView.java delete mode 100644 src/main/resources/I18n_en_US.properties delete mode 100644 src/main/resources/I18n_zh_CN.properties delete mode 100644 src/main/webapp/WEB-INF/jsp/hello.jsp delete mode 100644 src/main/webapp/WEB-INF/jsp/list.jsp delete mode 100644 src/main/webapp/WEB-INF/jsp/paramList.jsp delete mode 100644 src/main/webapp/WEB-INF/jsp/testError.jsp delete mode 100644 src/main/webapp/WEB-INF/jsp/user.jsp diff --git a/src/main/java/cn/lonecloud/controller/DesignController.java b/src/main/java/cn/lonecloud/controller/DesignController.java deleted file mode 100644 index 8e9905f..0000000 --- a/src/main/java/cn/lonecloud/controller/DesignController.java +++ /dev/null @@ -1,22 +0,0 @@ -package cn.lonecloud.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; - -/** - * Created by lonecloud on 17/4/16. - */ -@Controller -public class DesignController { - - @RequestMapping("/helloView") - public String helloView(){ - return "helloView"; - } - - @RequestMapping("/myTest") - public String myTest(){ - return "list"; - } - -} diff --git a/src/main/java/cn/lonecloud/controller/ErrorController.java b/src/main/java/cn/lonecloud/controller/ErrorController.java deleted file mode 100644 index b85263a..0000000 --- a/src/main/java/cn/lonecloud/controller/ErrorController.java +++ /dev/null @@ -1,26 +0,0 @@ -package cn.lonecloud.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.SessionAttributes; - -import cn.lonecloud.entity.User; -/** - * @SessionAttribute 中标明了一个名字为user 对象 - * @Title: ErrorController.java - * @Package cn.lonecloud.controller - * @Description: - * @author lonecloud - * @date 2017年4月12日 下午8:01:56 - */ -@SessionAttributes(value="user",types=String.class) -@Controller -public class ErrorController { - - @RequestMapping("/testError") - public String testError(@ModelAttribute("user")User user){ - System.out.println("user"+user); - return "testError"; - } -} diff --git a/src/main/java/cn/lonecloud/controller/HelloController.java b/src/main/java/cn/lonecloud/controller/HelloController.java deleted file mode 100644 index 3cda45e..0000000 --- a/src/main/java/cn/lonecloud/controller/HelloController.java +++ /dev/null @@ -1,23 +0,0 @@ -package cn.lonecloud.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.web.servlet.ModelAndView; -import org.springframework.web.servlet.mvc.Controller; -//@org.springframework.stereotype.Controller -public class HelloController implements Controller { - - @Override - public ModelAndView handleRequest(HttpServletRequest request, - HttpServletResponse response) throws Exception { - ModelAndView mv = new ModelAndView(); - // 添加模型数据 可以是任意的POJO对象 - mv.addObject("message", "Hello World!"); - //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面 - mv.setViewName("hello"); - return mv; - } - - -} diff --git a/src/main/java/cn/lonecloud/controller/ModelController.java b/src/main/java/cn/lonecloud/controller/ModelController.java deleted file mode 100644 index d9d3f1f..0000000 --- a/src/main/java/cn/lonecloud/controller/ModelController.java +++ /dev/null @@ -1,32 +0,0 @@ -package cn.lonecloud.controller; - -import java.util.Map; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.ModelAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; - -import cn.lonecloud.entity.User; - -@Controller -public class ModelController { - - @ModelAttribute - public void getUser( - @RequestParam(value = "id", required = false) String id, - Map map) { - System.out.println("getUser"); - if (id == null) { - //模拟查询数据库 - User user = new User("1", "lonecloud", "123456", 13); - map.put("user", user); - System.out.println(user); - } - } - - @RequestMapping("/changeUser") - public String changUser(User user) { - return "user"; - } -} diff --git a/src/main/java/cn/lonecloud/controller/ParamController.java b/src/main/java/cn/lonecloud/controller/ParamController.java deleted file mode 100644 index 96d75c8..0000000 --- a/src/main/java/cn/lonecloud/controller/ParamController.java +++ /dev/null @@ -1,88 +0,0 @@ -package cn.lonecloud.controller; - -import java.util.Arrays; -import java.util.Map; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.CookieValue; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.SessionAttributes; -import org.springframework.web.servlet.ModelAndView; - -import cn.lonecloud.entity.User; - -@Controller -@SessionAttributes(types={String.class},value="test") -public class ParamController { - - /** - * 获取参数 - * @Description: - * @param username - * @return - */ - @RequestMapping("/testParam") - public String testParam( - @RequestParam(value = "username", defaultValue = "haha", required = true) String username) { - System.out.println(username); - return "paramList"; - } - /** - * 获取头 - * @Description: - * @param accept - * @return - */ - @RequestMapping("/testHeader") - public String testHeader( - @RequestHeader(value="Accept-Language") String accept) { - System.out.println("Accept-Language:"+accept); - return "paramList"; - } - /** - * 获取cookies - * @Description: - * @param jSessionId - * @return - */ - @RequestMapping("/testCookies") - public String testCookies( - @CookieValue(value="JSESSIONID") String jSessionId) { - System.out.println("jSessionId:"+jSessionId); - return "paramList"; - } - - @RequestMapping("/testUser") - public String testUser(User user){ - System.out.println("用户"+user); - return "user"; - } - /** - * 设置参数ModelAndView - * @Description: - * @param user - * @return - */ - @RequestMapping("/testModel") - public ModelAndView testModel(User user){ - ModelAndView modelAndView=new ModelAndView(); - modelAndView.setViewName("user"); - modelAndView.addObject("test", "我是测试信息"); - System.out.println("用户"+user); - return modelAndView; - } - /** - * 页面设置参数 - * @Description: - * @param map - * @return - */ - @RequestMapping("/testMap") - public String testMap(Map map){ - map.put("test", Arrays.asList("1","csdcs","jcssd")); - return "user"; - } - -} diff --git a/src/main/java/cn/lonecloud/controller/RestController.java b/src/main/java/cn/lonecloud/controller/RestController.java deleted file mode 100644 index 2d3b6f5..0000000 --- a/src/main/java/cn/lonecloud/controller/RestController.java +++ /dev/null @@ -1,43 +0,0 @@ -package cn.lonecloud.controller; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -/** - * 对RestFul的支持 - * @Title: RestController.java - * @Package cn.lonecloud.controller - * @Description: - * @author lonecloud - * @date 2017年4月9日 上午10:47:47 - */ -@RequestMapping("/rest") -@Controller -public class RestController{ - - @RequestMapping(value="/testRest/{id}",method=RequestMethod.DELETE) - public String RestDelete(@PathVariable("id")String id){ - System.out.println("delete"+id); - return "list"; - } - @RequestMapping(value="/testRest/{id}",method=RequestMethod.GET) - public String RestGET(@PathVariable("id")String id){ - System.out.println("get"+id); - return "list"; - } - @RequestMapping(value="/testRest/{id}",method=RequestMethod.PUT) - public String RestPUT(@PathVariable("id")String id){ - System.out.println("put"+id); - return "list"; - } - @RequestMapping(value="/testRest/{id}",method=RequestMethod.POST) - public String RestPOST(@PathVariable("id")String id){ - System.out.println("post"+id); - return "list"; - } - @RequestMapping(value="/testRest/",method=RequestMethod.GET) - public String RestPOST(){ - return "list"; - } -} diff --git a/src/main/java/cn/lonecloud/entity/Address.java b/src/main/java/cn/lonecloud/entity/Address.java deleted file mode 100644 index 2bf7604..0000000 --- a/src/main/java/cn/lonecloud/entity/Address.java +++ /dev/null @@ -1,30 +0,0 @@ -package cn.lonecloud.entity; - -public class Address { - - private String contury; - - private String city; - - public String getContury() { - return contury; - } - - public void setContury(String contury) { - this.contury = contury; - } - - public String getCity() { - return city; - } - - public void setCity(String city) { - this.city = city; - } - - @Override - public String toString() { - return "Address [contury=" + contury + ", city=" + city + "]"; - } - -} diff --git a/src/main/java/cn/lonecloud/entity/User.java b/src/main/java/cn/lonecloud/entity/User.java deleted file mode 100644 index 610396d..0000000 --- a/src/main/java/cn/lonecloud/entity/User.java +++ /dev/null @@ -1,49 +0,0 @@ - package cn.lonecloud.entity; - -public class User { - - private String id; - private String username; - private String password; - private int age; - private Address address; - 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; - } - public int getAge() { - return age; - } - public void setAge(int age) { - this.age = age; - } - public Address getAddress() { - return address; - } - public void setAddress(Address address) { - this.address = address; - } - @Override - public String toString() { - return "User [id=" + id + ", username=" + username + ", password=" - + password + ", age=" + age + ", address=" + address + "]"; - } - public User(String id, String username, String password, int age) { - super(); - this.id = id; - this.username = username; - this.password = password; - this.age = age; - } - public User() { - } - -} diff --git a/src/main/java/cn/lonecloud/view/HelloView.java b/src/main/java/cn/lonecloud/view/HelloView.java deleted file mode 100644 index 2c93b03..0000000 --- a/src/main/java/cn/lonecloud/view/HelloView.java +++ /dev/null @@ -1,27 +0,0 @@ -package cn.lonecloud.view; - -import org.springframework.stereotype.Component; -import org.springframework.web.servlet.View; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.util.Map; -import java.util.Random; - -/** - * Created by lonecloud on 17/4/16. - * 自定义视图解析器 - * @Component 将这个加入视图IOC容器中 - */ -@Component -public class HelloView implements View { - @Override - public String getContentType() { - return "html/text"; - } - - @Override - public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { - response.getWriter().print("hello myself view"+new Random()); - } -} diff --git a/src/main/resources/I18n_en_US.properties b/src/main/resources/I18n_en_US.properties deleted file mode 100644 index 8e6e4ad..0000000 --- a/src/main/resources/I18n_en_US.properties +++ /dev/null @@ -1,2 +0,0 @@ -i18n.username=username -i18n.password=password \ No newline at end of file diff --git a/src/main/resources/I18n_zh_CN.properties b/src/main/resources/I18n_zh_CN.properties deleted file mode 100644 index 910bc92..0000000 --- a/src/main/resources/I18n_zh_CN.properties +++ /dev/null @@ -1,2 +0,0 @@ -i18n.username=\u7528\u6237\u540D -i18n.password=\u5BC6\u7801 \ No newline at end of file diff --git a/src/main/resources/SpringMvc.xml b/src/main/resources/SpringMvc.xml index d8c5e74..f235cd8 100644 --- a/src/main/resources/SpringMvc.xml +++ b/src/main/resources/SpringMvc.xml @@ -36,15 +36,4 @@ - - - - - - - - - - - diff --git a/src/main/webapp/WEB-INF/jsp/hello.jsp b/src/main/webapp/WEB-INF/jsp/hello.jsp deleted file mode 100644 index a9b5ee2..0000000 --- a/src/main/webapp/WEB-INF/jsp/hello.jsp +++ /dev/null @@ -1,29 +0,0 @@ -<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> -<% -String path = request.getContextPath(); -String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; -%> - - - - - - - My JSP 'hello.jsp' starting page - - - - - - - - - - - - This is my JSP page.
- ${message} - - diff --git a/src/main/webapp/WEB-INF/jsp/list.jsp b/src/main/webapp/WEB-INF/jsp/list.jsp deleted file mode 100644 index 3671c7c..0000000 --- a/src/main/webapp/WEB-INF/jsp/list.jsp +++ /dev/null @@ -1,28 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> - - - - -Insert title here - - - RESTFUL - GET -
- RESTFUL POST - -
-
- RESTFUL PUT - -
-
- RESTFUL delete - -
- - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/paramList.jsp b/src/main/webapp/WEB-INF/jsp/paramList.jsp deleted file mode 100644 index 3837296..0000000 --- a/src/main/webapp/WEB-INF/jsp/paramList.jsp +++ /dev/null @@ -1,12 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> - - - - -Insert title here - - - 测试参数 - - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/testError.jsp b/src/main/webapp/WEB-INF/jsp/testError.jsp deleted file mode 100644 index 3b1e8e7..0000000 --- a/src/main/webapp/WEB-INF/jsp/testError.jsp +++ /dev/null @@ -1,27 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> - - - - -Insert title here - - -

${test }

-
- 用户名:
- 密码:
- 年龄:
- address:
- -
-

修改用户

-
- 用户名:
- 密码:
- 年龄:
- address:
- -
- - \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/user.jsp b/src/main/webapp/WEB-INF/jsp/user.jsp deleted file mode 100644 index 0b7ca62..0000000 --- a/src/main/webapp/WEB-INF/jsp/user.jsp +++ /dev/null @@ -1,28 +0,0 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" - pageEncoding="UTF-8"%> -<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%> - - - - -Insert title here - - -

${test }

-
- 用户名:
- 密码:
- 年龄:
- address:
- -
-

修改用户

-
-
-
- 年龄:
- address:
- -
- - \ No newline at end of file From 11d3a47555e861e7f34939c927d9cdafd0c3ba6c Mon Sep 17 00:00:00 2001 From: lonecloud Date: Wed, 19 Apr 2017 16:01:49 +0800 Subject: [PATCH 02/12] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 15 ++++++ src/main/java/cn/lonecloud/base/BaseDao.java | 19 +++++++ .../controller/EmployeeController.java | 25 +++++++++ .../java/cn/lonecloud/dao/EmployeeDao.java | 11 ++++ .../lonecloud/dao/impl/EmployeeDaoImpl.java | 39 ++++++++++++++ .../java/cn/lonecloud/entity/Department.java | 42 +++++++++++++++ .../java/cn/lonecloud/entity/Employee.java | 52 +++++++++++++++++++ src/main/java/cn/lonecloud/util/DBUtils.java | 39 ++++++++++++++ src/main/resources/applicationContext.xml | 25 +++++++++ src/main/resources/jdbc.properties | 4 ++ src/main/test/cn/lonecloud/JDBCTest.java | 18 +++++++ src/main/webapp/WEB-INF/jsp/list.jsp | 34 ++++++++++++ src/main/webapp/WEB-INF/web.xml | 9 +++- 13 files changed, 331 insertions(+), 1 deletion(-) create mode 100644 src/main/java/cn/lonecloud/base/BaseDao.java create mode 100644 src/main/java/cn/lonecloud/controller/EmployeeController.java create mode 100644 src/main/java/cn/lonecloud/dao/EmployeeDao.java create mode 100644 src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java create mode 100644 src/main/java/cn/lonecloud/entity/Department.java create mode 100644 src/main/java/cn/lonecloud/entity/Employee.java create mode 100644 src/main/java/cn/lonecloud/util/DBUtils.java create mode 100644 src/main/resources/applicationContext.xml create mode 100644 src/main/resources/jdbc.properties create mode 100644 src/main/test/cn/lonecloud/JDBCTest.java create mode 100644 src/main/webapp/WEB-INF/jsp/list.jsp diff --git a/pom.xml b/pom.xml index 5793aba..0b39a40 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,21 @@ standard 1.1.2 + + mysql + mysql-connector-java + 5.1.40 + + + com.mchange + c3p0 + 0.9.5-pre10 + + + org.springframework + spring-jdbc + 4.3.5.RELEASE + SprinMvc diff --git a/src/main/java/cn/lonecloud/base/BaseDao.java b/src/main/java/cn/lonecloud/base/BaseDao.java new file mode 100644 index 0000000..389b90b --- /dev/null +++ b/src/main/java/cn/lonecloud/base/BaseDao.java @@ -0,0 +1,19 @@ +package cn.lonecloud.base; + +import java.util.List; + +/** + * Created by lonecloud on 17/4/17. + */ +public interface BaseDao { + + public void insert(E e); + + public void update(E e); + + public void delete(E e); + + public void deleteById(String id); + + public List query(Object... args); +} diff --git a/src/main/java/cn/lonecloud/controller/EmployeeController.java b/src/main/java/cn/lonecloud/controller/EmployeeController.java new file mode 100644 index 0000000..6b927e6 --- /dev/null +++ b/src/main/java/cn/lonecloud/controller/EmployeeController.java @@ -0,0 +1,25 @@ +package cn.lonecloud.controller; + +import cn.lonecloud.dao.EmployeeDao; +import cn.lonecloud.entity.Employee; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.annotation.Resource; + +/** + * Created by lonecloud on 17/4/16. + */ +@Controller +public class EmployeeController { + + @Resource + private EmployeeDao employeeDao; + + @RequestMapping("/list") + public String list(Model model){ + model.addAttribute("employee",employeeDao.query()); + return "list"; + } +} diff --git a/src/main/java/cn/lonecloud/dao/EmployeeDao.java b/src/main/java/cn/lonecloud/dao/EmployeeDao.java new file mode 100644 index 0000000..aeb8a64 --- /dev/null +++ b/src/main/java/cn/lonecloud/dao/EmployeeDao.java @@ -0,0 +1,11 @@ +package cn.lonecloud.dao; + +import cn.lonecloud.base.BaseDao; +import cn.lonecloud.entity.Employee; + +/** + * Created by lonecloud on 17/4/16. + */ +public interface EmployeeDao extends BaseDao{ + +} diff --git a/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java b/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java new file mode 100644 index 0000000..da70119 --- /dev/null +++ b/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java @@ -0,0 +1,39 @@ +package cn.lonecloud.dao.impl; + +import cn.lonecloud.dao.EmployeeDao; +import cn.lonecloud.entity.Employee; +import cn.lonecloud.util.DBUtils; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by lonecloud on 17/4/16. + */ +@Repository +public class EmployeeDaoImpl implements EmployeeDao { + @Override + public void insert(Employee employee) { + DBUtils.insertOrUpdate("insert into employee values(?,?,?,?)", employee); + } + + @Override + public void update(Employee employee) { + DBUtils.insertOrUpdate("update employee set name=?,age=? where id=?", employee.getId()); + } + + @Override + public void delete(Employee employee) { + DBUtils.delete("delete from employee where id = ?", employee.getId()); + } + + @Override + public void deleteById(String id) { + DBUtils.delete("delete from employee where id = ?", id); + } + + @Override + public List query(Object... args) { + return args.length != 0 ? DBUtils.query("select id,name,age from employee where id=?", Employee.class, args) : DBUtils.query("select id,name,age from employee", Employee.class); + } +} diff --git a/src/main/java/cn/lonecloud/entity/Department.java b/src/main/java/cn/lonecloud/entity/Department.java new file mode 100644 index 0000000..684f75f --- /dev/null +++ b/src/main/java/cn/lonecloud/entity/Department.java @@ -0,0 +1,42 @@ +package cn.lonecloud.entity; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; + +/** + * Created by lonecloud on 17/4/16. + * 部门 + */ +public class Department implements Serializable{ + + private String id; + + private String name; + + private Set employees=new HashSet<>(); + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Set getEmployees() { + return employees; + } + + public void setEmployees(Set employees) { + this.employees = employees; + } +} diff --git a/src/main/java/cn/lonecloud/entity/Employee.java b/src/main/java/cn/lonecloud/entity/Employee.java new file mode 100644 index 0000000..9d33c36 --- /dev/null +++ b/src/main/java/cn/lonecloud/entity/Employee.java @@ -0,0 +1,52 @@ +package cn.lonecloud.entity; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; + +/** + * Created by lonecloud on 17/4/16. + * 雇员 + */ +public class Employee implements Serializable{ + + private String id; + + private String name; + + private int age; + + private Department department; + + public Department getDepartment() { + return department; + } + + public void setDepartment(Department department) { + this.department = department; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } +} diff --git a/src/main/java/cn/lonecloud/util/DBUtils.java b/src/main/java/cn/lonecloud/util/DBUtils.java new file mode 100644 index 0000000..85e6e04 --- /dev/null +++ b/src/main/java/cn/lonecloud/util/DBUtils.java @@ -0,0 +1,39 @@ +package cn.lonecloud.util; + +import cn.lonecloud.entity.Employee; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; + +import javax.annotation.Resource; +import java.util.List; + +/** + * Created by lonecloud on 17/4/17. + * + */ +public class DBUtils { + private static JdbcTemplate jdbcTemplate; + + public JdbcTemplate getJdbcTemplate() { + return jdbcTemplate; + } + + public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { + DBUtils.jdbcTemplate = jdbcTemplate; + } + + public static Object insertOrUpdate(String sql, Object... objs) { + return jdbcTemplate.update(sql, objs); + } + + public static void delete(String sql, String id) { + jdbcTemplate.update(sql, id); + } + + public static List query(String sql, Class clazz, Object... args) { + RowMapper rowMapper=new BeanPropertyRowMapper(Employee.class); + return jdbcTemplate.query(sql,rowMapper); + } +} diff --git a/src/main/resources/applicationContext.xml b/src/main/resources/applicationContext.xml new file mode 100644 index 0000000..a68901c --- /dev/null +++ b/src/main/resources/applicationContext.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties new file mode 100644 index 0000000..ef4aff4 --- /dev/null +++ b/src/main/resources/jdbc.properties @@ -0,0 +1,4 @@ +jdbc.classname=com.mysql.jdbc.Driver +jdbc.username=root +jdbc.url=jdbc:mysql://localhost:3306/Demo +jdbc.password=123456 \ No newline at end of file diff --git a/src/main/test/cn/lonecloud/JDBCTest.java b/src/main/test/cn/lonecloud/JDBCTest.java new file mode 100644 index 0000000..e0b437b --- /dev/null +++ b/src/main/test/cn/lonecloud/JDBCTest.java @@ -0,0 +1,18 @@ +package cn.lonecloud; + +import org.junit.Test; +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.jdbc.core.JdbcTemplate; + +/** + * Created by lonecloud on 17/4/17. + */ +public class JDBCTest { + + @Test + public void test(){ + ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); + JdbcTemplate jdbcTemplate = context.getBean(JdbcTemplate.class); + System.out.println(jdbcTemplate); + } +} diff --git a/src/main/webapp/WEB-INF/jsp/list.jsp b/src/main/webapp/WEB-INF/jsp/list.jsp new file mode 100644 index 0000000..00212ee --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/list.jsp @@ -0,0 +1,34 @@ +<%-- + Created by IntelliJ IDEA. + User: lonecloud + Date: 17/4/17 + Time: 下午7:52 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + + Title + + + + + + + + + + + + + + + + + + + +
id名字年龄操作
${e.id}${e.name}${e.age}
+ + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index cff7531..b37454b 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -3,7 +3,14 @@ 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_2_5.xsd" version="2.5"> - + + + contextConfigLocation + classpath:applicationContext.xml + + + org.springframework.web.context.ContextLoaderListener + HiddenHttpMethodFilter From 40b60b8813a478c4a1c8b32ecb04faa93e36e42e Mon Sep 17 00:00:00 2001 From: lonecloud Date: Wed, 19 Apr 2017 16:18:59 +0800 Subject: [PATCH 03/12] edit --- .../controller/EmployeeController.java | 13 +++++++++-- src/main/webapp/WEB-INF/jsp/common/head.jsp | 10 +++++++++ src/main/webapp/WEB-INF/jsp/edit.jsp | 22 +++++++++++++++++++ src/main/webapp/WEB-INF/jsp/list.jsp | 4 ++-- 4 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/common/head.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/edit.jsp diff --git a/src/main/java/cn/lonecloud/controller/EmployeeController.java b/src/main/java/cn/lonecloud/controller/EmployeeController.java index 6b927e6..bbb6668 100644 --- a/src/main/java/cn/lonecloud/controller/EmployeeController.java +++ b/src/main/java/cn/lonecloud/controller/EmployeeController.java @@ -4,6 +4,7 @@ import cn.lonecloud.entity.Employee; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; @@ -18,8 +19,16 @@ public class EmployeeController { private EmployeeDao employeeDao; @RequestMapping("/list") - public String list(Model model){ - model.addAttribute("employee",employeeDao.query()); + public String list(Model model) { + model.addAttribute("employee", employeeDao.query()); return "list"; } + + @RequestMapping("edit/{id}") + public String edit(@PathVariable("id") String id, Model model) { + if (id != null) { + model.addAttribute(employeeDao.query(id)); + } + return "edit"; + } } diff --git a/src/main/webapp/WEB-INF/jsp/common/head.jsp b/src/main/webapp/WEB-INF/jsp/common/head.jsp new file mode 100644 index 0000000..88ba521 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/common/head.jsp @@ -0,0 +1,10 @@ +<%-- + Created by IntelliJ IDEA. + User: lonecloud + Date: 17/4/19 + Time: 下午4:08 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + diff --git a/src/main/webapp/WEB-INF/jsp/edit.jsp b/src/main/webapp/WEB-INF/jsp/edit.jsp new file mode 100644 index 0000000..eadcec2 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/edit.jsp @@ -0,0 +1,22 @@ +<%-- + Created by IntelliJ IDEA. + User: lonecloud + Date: 17/4/19 + Time: 下午4:07 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ include file="common/head.jsp" %> + + + + Title + + +
+ + + +
+ + diff --git a/src/main/webapp/WEB-INF/jsp/list.jsp b/src/main/webapp/WEB-INF/jsp/list.jsp index 00212ee..a388a60 100644 --- a/src/main/webapp/WEB-INF/jsp/list.jsp +++ b/src/main/webapp/WEB-INF/jsp/list.jsp @@ -6,7 +6,7 @@ To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> -<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ include file="common/head.jsp"%> Title @@ -25,7 +25,7 @@ ${e.id} ${e.name} ${e.age} - + From 2aba00850f4d56c06f5d26348ea6eab8f5b3c563 Mon Sep 17 00:00:00 2001 From: lonecloud Date: Thu, 20 Apr 2017 15:36:00 +0800 Subject: [PATCH 04/12] edit --- src/main/java/cn/lonecloud/base/BaseDao.java | 2 + .../controller/EmployeeController.java | 43 +- .../lonecloud/dao/impl/EmployeeDaoImpl.java | 5 + src/main/java/cn/lonecloud/util/DBUtils.java | 3 +- src/main/webapp/WEB-INF/jsp/edit.jsp | 10 +- src/main/webapp/WEB-INF/jsp/list.jsp | 29 +- src/main/webapp/asserts/js/jquery.js | 476 ++++++++++++++++++ 7 files changed, 559 insertions(+), 9 deletions(-) create mode 100644 src/main/webapp/asserts/js/jquery.js diff --git a/src/main/java/cn/lonecloud/base/BaseDao.java b/src/main/java/cn/lonecloud/base/BaseDao.java index 389b90b..70770a4 100644 --- a/src/main/java/cn/lonecloud/base/BaseDao.java +++ b/src/main/java/cn/lonecloud/base/BaseDao.java @@ -16,4 +16,6 @@ public interface BaseDao { public void deleteById(String id); public List query(Object... args); + + public E queryById(String id); } diff --git a/src/main/java/cn/lonecloud/controller/EmployeeController.java b/src/main/java/cn/lonecloud/controller/EmployeeController.java index bbb6668..394f962 100644 --- a/src/main/java/cn/lonecloud/controller/EmployeeController.java +++ b/src/main/java/cn/lonecloud/controller/EmployeeController.java @@ -2,19 +2,28 @@ import cn.lonecloud.dao.EmployeeDao; import cn.lonecloud.entity.Employee; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import javax.annotation.Resource; +import java.util.List; /** * Created by lonecloud on 17/4/16. */ @Controller +@RequestMapping("/emp") public class EmployeeController { + private Log logger= LogFactory.getLog(EmployeeController.class); + @Resource private EmployeeDao employeeDao; @@ -24,11 +33,41 @@ public String list(Model model) { return "list"; } - @RequestMapping("edit/{id}") + @RequestMapping("/edit/{id}") public String edit(@PathVariable("id") String id, Model model) { + if(logger.isDebugEnabled()){ + logger.debug(id); + } if (id != null) { - model.addAttribute(employeeDao.query(id)); + Employee employee = employeeDao.queryById(id); + model.addAttribute(employee); } return "edit"; } + @RequestMapping("/show/{id}") + public String show(@PathVariable("id") String id){ + return "list"; + } + + @RequestMapping(value = "/update/",method = RequestMethod.PUT) + public String update(Employee employee){ + employeeDao.update(employee); + return "list"; + } + + @RequestMapping(value = "/emp",method = RequestMethod.GET) + public String empShow(Model model){ + model.addAttribute("employee",employeeDao.query()); + return "list"; + } + @RequestMapping(value = "/emp",method = RequestMethod.PUT) + public String empUpdate(Employee employee){ + employeeDao.update(employee); + return "list"; + } + @RequestMapping(value = "/emp",method=RequestMethod.DELETE) + public String empDelete(@PathVariable("id") String id){ + employeeDao.deleteById(id); + return "list"; + } } diff --git a/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java b/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java index da70119..50ed65b 100644 --- a/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java +++ b/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java @@ -36,4 +36,9 @@ public void deleteById(String id) { public List query(Object... args) { return args.length != 0 ? DBUtils.query("select id,name,age from employee where id=?", Employee.class, args) : DBUtils.query("select id,name,age from employee", Employee.class); } + @Override + public Employee queryById(String id) { + List objects = DBUtils.query("select id,name,age from employee where id=?", Employee.class, id); + return objects!=null&&objects.size()!=0?(Employee)objects.get(0):null; + } } diff --git a/src/main/java/cn/lonecloud/util/DBUtils.java b/src/main/java/cn/lonecloud/util/DBUtils.java index 85e6e04..79b4f0f 100644 --- a/src/main/java/cn/lonecloud/util/DBUtils.java +++ b/src/main/java/cn/lonecloud/util/DBUtils.java @@ -33,7 +33,8 @@ public static void delete(String sql, String id) { } public static List query(String sql, Class clazz, Object... args) { + RowMapper rowMapper=new BeanPropertyRowMapper(Employee.class); - return jdbcTemplate.query(sql,rowMapper); + return args.length!=0?jdbcTemplate.query(sql,rowMapper,args):jdbcTemplate.query(sql,rowMapper); } } diff --git a/src/main/webapp/WEB-INF/jsp/edit.jsp b/src/main/webapp/WEB-INF/jsp/edit.jsp index eadcec2..31e2f57 100644 --- a/src/main/webapp/WEB-INF/jsp/edit.jsp +++ b/src/main/webapp/WEB-INF/jsp/edit.jsp @@ -13,10 +13,12 @@ Title -
- - - + + + id:
+ 名字:
+ 年龄:
+
diff --git a/src/main/webapp/WEB-INF/jsp/list.jsp b/src/main/webapp/WEB-INF/jsp/list.jsp index a388a60..c014a48 100644 --- a/src/main/webapp/WEB-INF/jsp/list.jsp +++ b/src/main/webapp/WEB-INF/jsp/list.jsp @@ -8,6 +8,8 @@ <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ include file="common/head.jsp"%> + +<%----%> Title @@ -22,13 +24,36 @@ - ${e.id} + ${e.id} ${e.name} ${e.age} - + 编辑 + + + diff --git a/src/main/webapp/asserts/js/jquery.js b/src/main/webapp/asserts/js/jquery.js new file mode 100644 index 0000000..0e95274 --- /dev/null +++ b/src/main/webapp/asserts/js/jquery.js @@ -0,0 +1,476 @@ +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + +define( [ + "./var/arr", + "./var/document", + "./var/getProto", + "./var/slice", + "./var/concat", + "./var/push", + "./var/indexOf", + "./var/class2type", + "./var/toString", + "./var/hasOwn", + "./var/fnToString", + "./var/ObjectFunctionString", + "./var/support", + "./core/DOMEval" +], function( arr, document, getProto, slice, concat, push, indexOf, + class2type, toString, hasOwn, fnToString, ObjectFunctionString, + support, DOMEval ) { + +"use strict"; + +var + version = "3.2.1", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([a-z])/g, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + + } else { + clone = src && jQuery.isPlainObject( src ) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isFunction: function( obj ) { + return jQuery.type( obj ) === "function"; + }, + + isWindow: function( obj ) { + return obj != null && obj === obj.window; + }, + + isNumeric: function( obj ) { + + // As of jQuery 3.0, isNumeric is limited to + // strings and numbers (primitives or objects) + // that can be coerced to finite numbers (gh-2662) + var type = jQuery.type( obj ); + return ( type === "number" || type === "string" ) && + + // parseFloat NaNs numeric-cast false positives ("") + // ...but misinterprets leading-number strings, particularly hex literals ("0x...") + // subtraction forces infinities to NaN + !isNaN( obj - parseFloat( obj ) ); + }, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + type: function( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; + }, + + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); + }, + + // Convert dashed to camelCase; used by the css and data modules + // Support: IE <=9 - 11, Edge 12 - 13 + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var tmp, args, proxy; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + now: Date.now, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), +function( i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +} ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = jQuery.type( obj ); + + if ( type === "function" || jQuery.isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} + +return jQuery; +} ); From 39b51fb7d7b155d45b89cd8c2dc5b525112ce123 Mon Sep 17 00:00:00 2001 From: lonecloud Date: Thu, 20 Apr 2017 20:39:43 +0800 Subject: [PATCH 05/12] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E7=9A=84CRUD=E5=AE=8C?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EmployeeController.java | 44 ++++++++++++++++--- .../lonecloud/dao/impl/EmployeeDaoImpl.java | 7 +-- .../java/cn/lonecloud/util/RandomUtils.java | 13 ++++++ src/main/resources/SpringMvc.xml | 1 + src/main/resources/jdbc.properties | 2 +- src/main/test/cn/lonecloud/StringTest.java | 14 ++++++ src/main/webapp/WEB-INF/jsp/common/head.jsp | 2 + src/main/webapp/WEB-INF/jsp/edit.jsp | 2 +- src/main/webapp/WEB-INF/jsp/input.jsp | 22 ++++++++++ src/main/webapp/WEB-INF/jsp/list.jsp | 15 ++++--- src/main/webapp/WEB-INF/web.xml | 16 +++++++ 11 files changed, 122 insertions(+), 16 deletions(-) create mode 100644 src/main/java/cn/lonecloud/util/RandomUtils.java create mode 100644 src/main/test/cn/lonecloud/StringTest.java create mode 100644 src/main/webapp/WEB-INF/jsp/input.jsp diff --git a/src/main/java/cn/lonecloud/controller/EmployeeController.java b/src/main/java/cn/lonecloud/controller/EmployeeController.java index 394f962..cae0328 100644 --- a/src/main/java/cn/lonecloud/controller/EmployeeController.java +++ b/src/main/java/cn/lonecloud/controller/EmployeeController.java @@ -2,6 +2,7 @@ import cn.lonecloud.dao.EmployeeDao; import cn.lonecloud.entity.Employee; +import cn.lonecloud.util.RandomUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.slf4j.Logger; @@ -52,22 +53,53 @@ public String show(@PathVariable("id") String id){ @RequestMapping(value = "/update/",method = RequestMethod.PUT) public String update(Employee employee){ employeeDao.update(employee); - return "list"; + return "redirect:/emp/list"; } + /** + * 显示添加员工的界面 + * @param model + * @return + */ @RequestMapping(value = "/emp",method = RequestMethod.GET) public String empShow(Model model){ - model.addAttribute("employee",employeeDao.query()); - return "list"; + //不管需不需要如果使用了form标签必须加上 + model.addAttribute("employee",new Employee()); + return "input"; } + + /** + * 修改员工的界面 + * @param employee + * @return + */ @RequestMapping(value = "/emp",method = RequestMethod.PUT) public String empUpdate(Employee employee){ employeeDao.update(employee); - return "list"; + return "redirect:/emp/list"; } - @RequestMapping(value = "/emp",method=RequestMethod.DELETE) + + /** + * 删除员工的界面 + * @param id + * @return + */ + @RequestMapping(value = "/emp/{id}",method=RequestMethod.DELETE) public String empDelete(@PathVariable("id") String id){ + logger.debug("delete->>>>>>>>>"+id); employeeDao.deleteById(id); - return "list"; + return "redirect:/emp/list"; + } + + /** + * 添加一个人员 + * @param employee + * @return + */ + @RequestMapping(value = "/emp",method=RequestMethod.POST) + public String empAdd(Employee employee){ + employee.setId(RandomUtils.getUUID()); + employeeDao.insert(employee); + return "redirect:/emp/list"; } } diff --git a/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java b/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java index 50ed65b..e0b3b2c 100644 --- a/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java +++ b/src/main/java/cn/lonecloud/dao/impl/EmployeeDaoImpl.java @@ -14,12 +14,12 @@ public class EmployeeDaoImpl implements EmployeeDao { @Override public void insert(Employee employee) { - DBUtils.insertOrUpdate("insert into employee values(?,?,?,?)", employee); + DBUtils.insertOrUpdate("insert into employee(id,name,age) values(?,?,?)", employee.getId(), employee.getName(), employee.getAge()); } @Override public void update(Employee employee) { - DBUtils.insertOrUpdate("update employee set name=?,age=? where id=?", employee.getId()); + DBUtils.insertOrUpdate("update employee set name=?,age=? where id=?", employee.getName(),employee.getAge(),employee.getId()); } @Override @@ -36,9 +36,10 @@ public void deleteById(String id) { public List query(Object... args) { return args.length != 0 ? DBUtils.query("select id,name,age from employee where id=?", Employee.class, args) : DBUtils.query("select id,name,age from employee", Employee.class); } + @Override public Employee queryById(String id) { List objects = DBUtils.query("select id,name,age from employee where id=?", Employee.class, id); - return objects!=null&&objects.size()!=0?(Employee)objects.get(0):null; + return objects != null && objects.size() != 0 ? (Employee) objects.get(0) : null; } } diff --git a/src/main/java/cn/lonecloud/util/RandomUtils.java b/src/main/java/cn/lonecloud/util/RandomUtils.java new file mode 100644 index 0000000..fda1204 --- /dev/null +++ b/src/main/java/cn/lonecloud/util/RandomUtils.java @@ -0,0 +1,13 @@ +package cn.lonecloud.util; + +import java.util.UUID; + +/** + * Created by lonecloud on 17/4/20. + */ +public class RandomUtils { + + public static String getUUID(){ + return UUID.randomUUID().toString().replaceAll("-",""); + } +} diff --git a/src/main/resources/SpringMvc.xml b/src/main/resources/SpringMvc.xml index f235cd8..e4c01c0 100644 --- a/src/main/resources/SpringMvc.xml +++ b/src/main/resources/SpringMvc.xml @@ -7,6 +7,7 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> + diff --git a/src/main/resources/jdbc.properties b/src/main/resources/jdbc.properties index ef4aff4..ebc7d36 100644 --- a/src/main/resources/jdbc.properties +++ b/src/main/resources/jdbc.properties @@ -1,4 +1,4 @@ jdbc.classname=com.mysql.jdbc.Driver jdbc.username=root -jdbc.url=jdbc:mysql://localhost:3306/Demo +jdbc.url=jdbc:mysql://localhost:3306/Demo?useUnicode=true&characterEncoding=UTF-8 jdbc.password=123456 \ No newline at end of file diff --git a/src/main/test/cn/lonecloud/StringTest.java b/src/main/test/cn/lonecloud/StringTest.java new file mode 100644 index 0000000..d5c59e7 --- /dev/null +++ b/src/main/test/cn/lonecloud/StringTest.java @@ -0,0 +1,14 @@ +package cn.lonecloud; + +import cn.lonecloud.util.RandomUtils; +import org.junit.Test; + +/** + * Created by lonecloud on 17/4/20. + */ +public class StringTest { + @Test + public void UUID(){ + System.out.println(RandomUtils.getUUID()); + } +} diff --git a/src/main/webapp/WEB-INF/jsp/common/head.jsp b/src/main/webapp/WEB-INF/jsp/common/head.jsp index 88ba521..30828aa 100644 --- a/src/main/webapp/WEB-INF/jsp/common/head.jsp +++ b/src/main/webapp/WEB-INF/jsp/common/head.jsp @@ -7,4 +7,6 @@ --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + diff --git a/src/main/webapp/WEB-INF/jsp/edit.jsp b/src/main/webapp/WEB-INF/jsp/edit.jsp index 31e2f57..5b3aec6 100644 --- a/src/main/webapp/WEB-INF/jsp/edit.jsp +++ b/src/main/webapp/WEB-INF/jsp/edit.jsp @@ -13,7 +13,7 @@ Title -
+ id:
名字:
diff --git a/src/main/webapp/WEB-INF/jsp/input.jsp b/src/main/webapp/WEB-INF/jsp/input.jsp new file mode 100644 index 0000000..6c72b8a --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/input.jsp @@ -0,0 +1,22 @@ +<%-- + Created by IntelliJ IDEA. + User: lonecloud + Date: 17/4/19 + Time: 下午4:07 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ include file="common/head.jsp" %> + + + + Title + + + + name:
+ age:
+ 点击 +
+ + diff --git a/src/main/webapp/WEB-INF/jsp/list.jsp b/src/main/webapp/WEB-INF/jsp/list.jsp index c014a48..a269dec 100644 --- a/src/main/webapp/WEB-INF/jsp/list.jsp +++ b/src/main/webapp/WEB-INF/jsp/list.jsp @@ -14,12 +14,13 @@ Title +添加 - + @@ -28,7 +29,7 @@ - + @@ -37,16 +38,20 @@ $(function(){ $("#delete").click(function () { var id=$("#id").text(); + var href=$(this).attr("go"); $.ajax( { - url:"${ctx}/emp/emp", + url:href, type:"POST", data:{ - id:id, _method:"DELETE" }, success:function(){ - alert("删除成功"); + //alert("删除成功"); + window.location.reload(); + }, + error:function () { + alert("删除失败"); } } diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index b37454b..e73585f 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -11,6 +11,22 @@ org.springframework.web.context.ContextLoaderListener + + EncodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + UTF-8 + + + forceEncoding + true + + + + EncodingFilter + /* + HiddenHttpMethodFilter From 98ace727e8549eead896db3f145a01d85508365a Mon Sep 17 00:00:00 2001 From: lonecloud Date: Thu, 20 Apr 2017 20:48:30 +0800 Subject: [PATCH 06/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=A2=AB=E6=B8=85=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EmployeeController.java | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/cn/lonecloud/controller/EmployeeController.java b/src/main/java/cn/lonecloud/controller/EmployeeController.java index cae0328..f2bff39 100644 --- a/src/main/java/cn/lonecloud/controller/EmployeeController.java +++ b/src/main/java/cn/lonecloud/controller/EmployeeController.java @@ -9,15 +9,14 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -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.*; import javax.annotation.Resource; import java.util.List; /** * Created by lonecloud on 17/4/16. + * @author lonecloud */ @Controller @RequestMapping("/emp") @@ -28,6 +27,18 @@ public class EmployeeController { @Resource private EmployeeDao employeeDao; + /** + * 防止一些未填写的属性被清空 + * @param id id + * @param model model + */ + @ModelAttribute + public void getModel(@RequestParam("id") String id, Model model){ + if (null!=id){ + model.addAttribute("employee",employeeDao.queryById(id)); + } + } + @RequestMapping("/list") public String list(Model model) { model.addAttribute("employee", employeeDao.query()); @@ -58,8 +69,8 @@ public String update(Employee employee){ /** * 显示添加员工的界面 - * @param model - * @return + * @param model model + * @return view */ @RequestMapping(value = "/emp",method = RequestMethod.GET) public String empShow(Model model){ @@ -70,8 +81,8 @@ public String empShow(Model model){ /** * 修改员工的界面 - * @param employee - * @return + * @param employee 人员参数 + * @return view */ @RequestMapping(value = "/emp",method = RequestMethod.PUT) public String empUpdate(Employee employee){ @@ -81,8 +92,8 @@ public String empUpdate(Employee employee){ /** * 删除员工的界面 - * @param id - * @return + * @param id id + * @return view */ @RequestMapping(value = "/emp/{id}",method=RequestMethod.DELETE) public String empDelete(@PathVariable("id") String id){ @@ -93,8 +104,8 @@ public String empDelete(@PathVariable("id") String id){ /** * 添加一个人员 - * @param employee - * @return + * @param employee 人员 + * @return view */ @RequestMapping(value = "/emp",method=RequestMethod.POST) public String empAdd(Employee employee){ From c4d4f6ee40e9473325b89b289597b209adbcf174 Mon Sep 17 00:00:00 2001 From: lonecloud Date: Fri, 21 Apr 2017 12:31:53 +0800 Subject: [PATCH 07/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E5=90=8D=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 0b39a40..b5ad146 100644 --- a/pom.xml +++ b/pom.xml @@ -89,6 +89,6 @@ - SprinMvc + SpringMvc From e8ade9601d05a0487b5a4f920408b41f5909a839 Mon Sep 17 00:00:00 2001 From: lonecloud Date: Fri, 21 Apr 2017 12:35:24 +0800 Subject: [PATCH 08/12] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=A1=A8sql?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/doc/employee.sql | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/doc/employee.sql diff --git a/src/main/doc/employee.sql b/src/main/doc/employee.sql new file mode 100644 index 0000000..fe6318f --- /dev/null +++ b/src/main/doc/employee.sql @@ -0,0 +1,28 @@ +/* + Navicat MySQL Data Transfer + + Source Server : mysql + Source Server Version : 50633 + Source Host : localhost + Source Database : demo + + Target Server Version : 50633 + File Encoding : utf-8 + + Date: 04/17/2017 20:01:03 PM +*/ + +SET NAMES utf8; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for `employee` +-- ---------------------------- +DROP TABLE IF EXISTS `employee`; +CREATE TABLE `employee` ( + `id` varchar(50) NOT NULL DEFAULT '', + `name` varchar(50) DEFAULT NULL, + `age` int(10) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + From 1a224278bccdf1c5d86e93e74e3d8d2586d4e746 Mon Sep 17 00:00:00 2001 From: lonecloud Date: Fri, 21 Apr 2017 12:36:01 +0800 Subject: [PATCH 09/12] gitignore --- .gitignore | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.gitignore b/.gitignore index e4c93dd..951d274 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,14 @@ .git Users /target +.idea/.name +.idea/artifacts/ +.idea/compiler.xml +.idea/copyright/ +.idea/libraries/ +.idea/markdown-navigator/ +.idea/misc.xml +.idea/modules.xml +.idea/vcs.xml +.idea/workspace.xml +SprinMvc.iml From bc6e5e2b2307821caa55cc9c08eb4233abc78e0c Mon Sep 17 00:00:00 2001 From: lonecloud Date: Sat, 22 Apr 2017 21:16:16 +0800 Subject: [PATCH 10/12] =?UTF-8?q?add=20md=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..b4c8cb0 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +#Spring RESFUL CRUD小例子 + + 该项目采用的Mybatis+Spring+SpringMVC From ce0806f798589a2b3db24153fe694e065de80ad7 Mon Sep 17 00:00:00 2001 From: lonecloud Date: Sun, 23 Apr 2017 13:19:03 +0800 Subject: [PATCH 11/12] =?UTF-8?q?ip=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EmployeeController.java | 55 ++++++++++++------- src/main/java/cn/lonecloud/util/IPUtils.java | 18 ++++++ 2 files changed, 54 insertions(+), 19 deletions(-) create mode 100644 src/main/java/cn/lonecloud/util/IPUtils.java diff --git a/src/main/java/cn/lonecloud/controller/EmployeeController.java b/src/main/java/cn/lonecloud/controller/EmployeeController.java index f2bff39..389c534 100644 --- a/src/main/java/cn/lonecloud/controller/EmployeeController.java +++ b/src/main/java/cn/lonecloud/controller/EmployeeController.java @@ -2,6 +2,7 @@ import cn.lonecloud.dao.EmployeeDao; import cn.lonecloud.entity.Employee; +import cn.lonecloud.util.IPUtils; import cn.lonecloud.util.RandomUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -12,30 +13,35 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.Servlet; +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; import java.util.List; /** * Created by lonecloud on 17/4/16. + * * @author lonecloud */ @Controller @RequestMapping("/emp") public class EmployeeController { - private Log logger= LogFactory.getLog(EmployeeController.class); + private Log logger = LogFactory.getLog(EmployeeController.class); @Resource private EmployeeDao employeeDao; /** * 防止一些未填写的属性被清空 - * @param id id + * + * @param id id * @param model model */ @ModelAttribute - public void getModel(@RequestParam("id") String id, Model model){ - if (null!=id){ - model.addAttribute("employee",employeeDao.queryById(id)); + public void getModel(@RequestParam(value = "id",required = false) String id, Model model) { + if (null != id) { + model.addAttribute("employee", employeeDao.queryById(id)); } } @@ -47,7 +53,7 @@ public String list(Model model) { @RequestMapping("/edit/{id}") public String edit(@PathVariable("id") String id, Model model) { - if(logger.isDebugEnabled()){ + if (logger.isDebugEnabled()) { logger.debug(id); } if (id != null) { @@ -56,61 +62,72 @@ public String edit(@PathVariable("id") String id, Model model) { } return "edit"; } + @RequestMapping("/show/{id}") - public String show(@PathVariable("id") String id){ + public String show(@PathVariable("id") String id) { return "list"; } - @RequestMapping(value = "/update/",method = RequestMethod.PUT) - public String update(Employee employee){ + @RequestMapping(value = "/update/", method = RequestMethod.PUT) + public String update(Employee employee) { employeeDao.update(employee); return "redirect:/emp/list"; } /** * 显示添加员工的界面 + * * @param model model * @return view */ - @RequestMapping(value = "/emp",method = RequestMethod.GET) - public String empShow(Model model){ + @RequestMapping(value = "/emp", method = RequestMethod.GET) + public String empShow(Model model) { //不管需不需要如果使用了form标签必须加上 - model.addAttribute("employee",new Employee()); + model.addAttribute("employee", new Employee()); return "input"; } /** * 修改员工的界面 + * * @param employee 人员参数 * @return view */ - @RequestMapping(value = "/emp",method = RequestMethod.PUT) - public String empUpdate(Employee employee){ + @RequestMapping(value = "/emp", method = RequestMethod.PUT) + public String empUpdate(Employee employee) { employeeDao.update(employee); return "redirect:/emp/list"; } /** * 删除员工的界面 + * * @param id id * @return view */ - @RequestMapping(value = "/emp/{id}",method=RequestMethod.DELETE) - public String empDelete(@PathVariable("id") String id){ - logger.debug("delete->>>>>>>>>"+id); + @RequestMapping(value = "/emp/{id}", method = RequestMethod.DELETE) + public String empDelete(@PathVariable("id") String id) { + logger.debug("delete->>>>>>>>>" + id); employeeDao.deleteById(id); return "redirect:/emp/list"; } /** * 添加一个人员 + * * @param employee 人员 * @return view */ - @RequestMapping(value = "/emp",method=RequestMethod.POST) - public String empAdd(Employee employee){ + @RequestMapping(value = "/emp", method = RequestMethod.POST) + public String empAdd(Employee employee) { employee.setId(RandomUtils.getUUID()); employeeDao.insert(employee); return "redirect:/emp/list"; } + + @ResponseBody + @RequestMapping("/ip") + public String getIP(HttpServletRequest request) { + return IPUtils.getIPAddr(request); + } } diff --git a/src/main/java/cn/lonecloud/util/IPUtils.java b/src/main/java/cn/lonecloud/util/IPUtils.java new file mode 100644 index 0000000..bf4f731 --- /dev/null +++ b/src/main/java/cn/lonecloud/util/IPUtils.java @@ -0,0 +1,18 @@ +package cn.lonecloud.util; + +import javax.servlet.ServletRequest; +import javax.servlet.http.HttpServletRequest; + +/** + * Created by lonecloud on 17/4/20. + */ +public class IPUtils { + + public static String getIPAddr(HttpServletRequest request){ + String ip = null; + if (request.getHeader("x-forwarded-for") == null) { + return request.getRemoteAddr(); + } + return request.getHeader("x-forwarded-for"); + } +} From 7f43d1222ed5e76dae745a8df2654d532d0a9246 Mon Sep 17 00:00:00 2001 From: lonecloud Date: Sun, 23 Apr 2017 13:25:32 +0800 Subject: [PATCH 12/12] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b5ad146..177900c 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4.0.0 cn.lonecloud - SprinMvc + SpringMvc war 0.0.1-SNAPSHOT SprinMvc Maven Webapp
id 名字 年龄操作操作
${e.name} ${e.age} 编辑删除