wuheng 2 years ago
parent
commit
d7b1daef97

+ 26 - 0
study/src/com/lovecoding/study/mapper/BrandMapper.java

@@ -0,0 +1,26 @@
+package com.lovecoding.study.mapper;
+
+import com.lovecoding.study.domian.Brand;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+public interface BrandMapper {
+    @Select("SELECT id, brand_name AS brandName, company_name AS companyName, ordered, description, `status`  FROM `tb_brand`")
+    List<Brand> getBrands();
+
+    @Insert( "INSERT INTO `tb_brand` VALUES (null,#{brandName}, #{companyName}, #{ordered}, #{description}, #{status})" )
+    void addBrand(Brand brand);
+
+    @Delete("DELETE FROM `tb_brand` WHERE `id` = #{id}")
+    void delBrand(Integer id);
+
+    @Select("SELECT id, brand_name AS brandName, company_name AS companyName, ordered, description, `status`  FROM `tb_brand` WHERE id = #{id}")
+    Brand selecBrand(Integer id);
+
+    @Update("UPDATE `tb_brand` SET `brand_name` = #{brandName}, `company_name` = #{companyName}, `ordered` = #{ordered}, `description` = #{description}, `status` = #{status} WHERE `id` = #{id}")
+    void updateBrand(Brand brand);
+}

+ 1 - 1
study/src/com/lovecoding/study/mapper/UserMapper.java

@@ -4,6 +4,7 @@ import com.lovecoding.study.domian.User;
 import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 
 public interface UserMapper {
     @Select("SELECT * FROM tb_users WHERE username = #{username}")
@@ -11,5 +12,4 @@ public interface UserMapper {
 
     @Insert("INSERT INTO `tb_users` (`username`, `password`) VALUES (#{username},#{password})")
     int addUser(@Param("username") String username, @Param("password") String password );
-
 }

+ 61 - 0
study/src/com/lovecoding/study/servlet/BrandServlet.java

@@ -0,0 +1,61 @@
+package com.lovecoding.study.servlet;
+
+import com.lovecoding.study.domian.Brand;
+import com.lovecoding.study.mapper.BrandMapper;
+import com.lovecoding.study.utils.MybatisUtils;
+import org.apache.ibatis.session.SqlSession;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
+@WebServlet("/brands")
+public class BrandServlet extends HttpServlet {
+
+    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        //获得mybatis session 对象
+        SqlSession sqlSession = MybatisUtils.getSession().openSession();
+        //获得 mapper接口对象
+        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
+        //调用对象接口查询数据
+        List<Brand> brands = mapper.getBrands();
+        //讲查询到的 数据存储到 Request 域里面
+        req.setAttribute( "brands", brands );
+        //转发请求到JSP页面
+        req.getRequestDispatcher("/brand.jsp").forward(req, resp);
+    }
+
+    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        req.setCharacterEncoding("UTF-8");
+        String brandName = req.getParameter("brandName");
+        String companyName = req.getParameter("companyName");
+        String ordered = req.getParameter("ordered");
+        String description = req.getParameter("description");
+        String status = req.getParameter("status");
+
+        if ( brandName != null && !brandName.equals("") &&
+                companyName != null && !companyName.equals("") &&
+                ordered != null && !ordered.equals("") &&
+                description != null && !description.equals("") &&
+                status != null && !status.equals("")) {
+            SqlSession sqlSession = MybatisUtils.getSession().openSession();
+            BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
+            Brand brand = new Brand();
+            brand.setBrandName(brandName);
+            brand.setCompanyName(companyName);
+            brand.setDescription(description);
+            brand.setOrdered(Integer.valueOf(ordered));
+            brand.setStatus(Integer.valueOf(status));
+            mapper.addBrand( brand );
+            sqlSession.commit();
+            resp.sendRedirect(req.getContextPath()+"/brands");
+        } else {
+            resp.sendRedirect(req.getContextPath()+"/addBrand.jsp");
+        }
+    }
+
+}

+ 28 - 0
study/src/com/lovecoding/study/servlet/DeleteBrandServlet.java

@@ -0,0 +1,28 @@
+package com.lovecoding.study.servlet;
+
+import com.lovecoding.study.domian.Brand;
+import com.lovecoding.study.mapper.BrandMapper;
+import com.lovecoding.study.utils.MybatisUtils;
+import org.apache.ibatis.session.SqlSession;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@WebServlet("/deleteBrand")
+public class DeleteBrandServlet  extends HttpServlet {
+
+    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        String  id = req.getParameter("id");
+        if ( id != null && !id.equals("") ) {
+            SqlSession sqlSession = MybatisUtils.getSession().openSession();
+            BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
+            mapper.delBrand( Integer.valueOf(id) );
+            sqlSession.commit();
+        }
+        resp.sendRedirect(req.getContextPath() + "/brands");
+    }
+}

+ 67 - 0
study/src/com/lovecoding/study/servlet/UpdateBrandServlet.java

@@ -0,0 +1,67 @@
+package com.lovecoding.study.servlet;
+
+import com.lovecoding.study.domian.Brand;
+import com.lovecoding.study.mapper.BrandMapper;
+import com.lovecoding.study.utils.MybatisUtils;
+import org.apache.ibatis.session.SqlSession;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
+@WebServlet("/updateBrand")
+public class UpdateBrandServlet  extends HttpServlet {
+
+    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        //品牌ID
+        String id = req.getParameter("id");
+        if ( id != null && !id.equals("") ) {
+            //获得mybatis session 对象
+            SqlSession sqlSession = MybatisUtils.getSession().openSession();
+            //获得 mapper接口对象
+            BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
+            Brand brand = mapper.selecBrand( Integer.valueOf(id) );
+            req.setAttribute( "brand", brand );
+            req.getRequestDispatcher("/update.jsp").forward(req, resp);
+        } else {
+            resp.sendRedirect(req.getContextPath() + "/brand.jsp");
+        }
+    }
+
+    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        req.setCharacterEncoding("UTF-8");
+        String brandName = req.getParameter("brandName");
+        String companyName = req.getParameter("companyName");
+        String ordered = req.getParameter("ordered");
+        String description = req.getParameter("description");
+        String status = req.getParameter("status");
+        String id = req.getParameter("id");
+
+        if ( brandName != null && !brandName.equals("") &&
+                companyName != null && !companyName.equals("") &&
+                ordered != null && !ordered.equals("") &&
+                description != null && !description.equals("") &&
+                id != null && !id.equals("") &&
+                status != null && !status.equals("")) {
+            SqlSession sqlSession = MybatisUtils.getSession().openSession();
+            BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
+            Brand brand = new Brand();
+            brand.setId(Integer.valueOf(id));
+            brand.setBrandName(brandName);
+            brand.setCompanyName(companyName);
+            brand.setDescription(description);
+            brand.setOrdered(Integer.valueOf(ordered));
+            brand.setStatus(Integer.valueOf(status));
+            mapper.updateBrand( brand );
+            sqlSession.commit();
+            resp.sendRedirect(req.getContextPath()+"/brands");
+        } else {
+            resp.sendRedirect(req.getContextPath()+"/updateBrand.jsp?id=" + id);
+        }
+    }
+
+}

+ 12 - 5
study/src/com/lovecoding/study/servlet/UserServlet.java

@@ -8,10 +8,7 @@ import org.apache.ibatis.session.SqlSessionFactory;
 
 import javax.servlet.ServletException;
 import javax.servlet.annotation.WebServlet;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
+import javax.servlet.http.*;
 import java.io.IOException;
 
 @WebServlet("/user")
@@ -21,17 +18,27 @@ public class UserServlet extends HttpServlet{
     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         String username = req.getParameter("username");
         String password = req.getParameter("password");
+        String remember = req.getParameter("remember");
         SqlSession sqlSession = MybatisUtils.getSession().openSession();
+
         if ( username != null && password != null ) {
             UserMapper mapper = sqlSession.getMapper(UserMapper.class);
             User user = mapper.findUser(username);
             if ( user != null ) {
                 if ( user.getPassword().equals(password) ) {
+                    if ( remember != null ) {
+                        Cookie usernameCookie = new Cookie("username", username);
+                        Cookie passwordCookie = new Cookie("password", password);
+                        usernameCookie.setMaxAge( 60 * 60 * 24 * 7 );
+                        passwordCookie.setMaxAge( 60 * 60 * 24 * 7 );
+                        resp.addCookie(usernameCookie);
+                        resp.addCookie(passwordCookie);
+                    }
                     //登陆成功
                     HttpSession session = req.getSession(true);
                     session.setAttribute("user", user);
                     session.removeAttribute("error");
-                    resp.sendRedirect(req.getContextPath() + "/brand.jsp");
+                    resp.sendRedirect(req.getContextPath() + "/brands");
                 } else {
                     //密码不正确
                     req.getSession(true).setAttribute("error", "密码不正确!");

+ 0 - 1
study/web/WEB-INF/mybatis-config.xml

@@ -18,5 +18,4 @@
 <mappers>
     <package name="com.lovecoding.study.mapper" />
 </mappers>
-
 </configuration>

+ 3 - 1
study/web/addBrand.html → study/web/addBrand.jsp

@@ -1,3 +1,5 @@
+<%@ page contentType="text/html; utf-8" pageEncoding="UTF-8" %>
+
 <!DOCTYPE html>
 <html lang="en">
 <head>
@@ -7,7 +9,7 @@
 <body>
 <div style="width:400px; margin:0 auto;">
     <h3>添加品牌</h3>
-    <form action="" method="post">
+    <form action="${pageContext.servletContext.contextPath}/brands" method="post">
         品牌名称:<input name="brandName"><br>
         企业名称:<input name="companyName"><br>
         排序:<input name="ordered"><br>

+ 29 - 2
study/web/brand.jsp

@@ -1,3 +1,4 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
 <%@ page contentType="text/html; utf-8" pageEncoding="UTF-8" %>
 
 <!DOCTYPE html>
@@ -8,7 +9,7 @@
 </head>
 <body>
 <h1> ${sessionScope.user.username} 欢迎您</h1>
-<input type="button" value="新增" ><br>
+<input style="width: 100px" type="button" value="新增" id="addbrand" ><br>
 <hr>
 <table border="1" cellspacing="0" width="80%">
     <tr>
@@ -20,7 +21,33 @@
         <th>状态</th>
         <th>操作</th>
     </tr>
+<%--  items 我们要循环的数据源  var 是我们循环得到临时数据变量  --%>
+    <c:forEach items="${requestScope.brands}" var="brand" >
+        <tr>
+            <th>${brand.id}</th>
+            <th>${brand.brandName}</th>
+            <th>${brand.companyName}</th>
+            <th>${brand.ordered}</th>
+            <th>${brand.description}</th>
+            <th>
+                <c:if test="${brand.status == 1}">
+                    启动
+                </c:if>
+                <c:if test="${brand.status != 1}">
+                    禁用
+                </c:if>
+            </th>
+            <th>
+                <a href="${pageContext.servletContext.contextPath}/updateBrand?id=${brand.id}" > 修改 </a>
+                <a href="${pageContext.servletContext.contextPath}/deleteBrand?id=${brand.id}" > 删除 </a>
+            </th>
+        </tr>
+    </c:forEach>
 </table>
-
+<script>
+    document.getElementById("addbrand").onclick = function(){
+        location.href="<%=request.getContextPath()%>/addBrand.jsp"
+    }
+</script>
 </body>
 </html>

+ 2 - 2
study/web/login.jsp

@@ -15,8 +15,8 @@
 
         <div id="errorMsg">${sessionScope.error}</div>
 
-        <p>Username:<input id="username" name="username" type="text"></p>
-        <p>Password:<input id="password" name="password" type="password"></p>
+        <p>Username:<input id="username" value="${cookie.username.value}" name="username" type="text"></p>
+        <p>Password:<input id="password" value="${cookie.password.value}" name="password" type="password"></p>
         <p>Remember:<input id="remember" name="remember" type="checkbox"></p>
         <div id="subDiv">
             <input type="submit" class="button" value="login up">

+ 0 - 23
study/web/update.html

@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
-    <meta charset="UTF-8">
-    <title>修改品牌</title>
-</head>
-<body>
-<div style="width:400px; margin:0 auto;">
-    <h3>修改品牌</h3>
-    <form action="" method="post">
-        <input type="hidden" name="id" value="">
-        品牌名称:<input name="brandName" value=""><br>
-        企业名称:<input name="companyName" value=""><br>
-        排&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;序:<input name="ordered" value=""><br>
-        描述信息:<textarea rows="5" cols="20" name="description"></textarea><br>
-        状&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;态:
-        <input type="radio" name="status" value="0" checked>禁用
-        <input type="radio" name="status" value="1">启用<br>
-        <input type="submit" value="提交">
-    </form>
-</div>
-</body>
-</html>

+ 32 - 0
study/web/update.jsp

@@ -0,0 +1,32 @@
+<%@ page contentType="text/html; utf-8" pageEncoding="UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>修改品牌</title>
+</head>
+<body>
+<div style="width:400px; margin:0 auto;">
+    <h3>修改品牌</h3>
+    <form action="${pageContext.servletContext.contextPath}/updateBrand" method="post">
+                 <input type="hidden" name="id" value="${requestScope.brand.id}">
+        品牌名称:<input name="brandName" value="${requestScope.brand.brandName}"><br>
+        企业名称:<input name="companyName" value="${requestScope.brand.companyName}"><br>
+        排&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;序:<input name="ordered" value="${requestScope.brand.ordered}"><br>
+        描述信息:<textarea rows="5" cols="20" name="description">${requestScope.brand.description}</textarea><br>
+        状&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;态:
+        <c:if test="${requestScope.brand.status != 1}">
+            <input type="radio" name="status" value="2" checked>禁用
+            <input type="radio" name="status" value="1">启用<br>
+        </c:if>
+        <c:if test="${requestScope.brand.status == 1}">
+            <input type="radio" name="status" value="2" >禁用
+            <input type="radio" name="status" value="1" checked>启用<br>
+        </c:if>
+        <input type="submit" value="提交">
+    </form>
+</div>
+</body>
+</html>