wuheng 2 ani în urmă
părinte
comite
0e34b65604

+ 3 - 3
day02/src/main/java/com/lovecoding/mvc/MyEncode.java → day02/src/main/java/com/lovecoding/mvc/EncodingFilter.java

@@ -3,7 +3,7 @@ package com.lovecoding.mvc;
 import javax.servlet.*;
 import java.io.IOException;
 
-public class MyEncode implements Filter {
+public class EncodingFilter implements Filter {
     @Override
     public void init(FilterConfig filterConfig) throws ServletException {
 
@@ -11,8 +11,8 @@ public class MyEncode implements Filter {
 
     @Override
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
-        servletRequest.setCharacterEncoding("UTF-8");
-        servletResponse.setCharacterEncoding("UTF-8");
+        //servletRequest.setCharacterEncoding("UTF-8");
+        //servletResponse.setCharacterEncoding("UTF-8");
         filterChain.doFilter(servletRequest, servletResponse);
     }
 

+ 29 - 0
day02/src/main/java/com/lovecoding/mvc/UploadFileController.java

@@ -0,0 +1,29 @@
+package com.lovecoding.mvc;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.IOException;
+
+@Controller
+public class UploadFileController {
+
+    @PostMapping("/uploadFile")
+    public String up(MultipartFile file){
+        /**
+         * 既然是 文件上传, 那么必须要给我文件
+         * 文件在 springmvc框架内 肯定是  函数形参传递过来
+         */
+        File filePath = new File("C:/Users/lc/Desktop/" + file.getOriginalFilename() );
+        try {
+            file.transferTo( filePath );
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return "/success.jsp";
+    }
+
+}

+ 12 - 1
day02/src/main/resources/spring-mvc.xml

@@ -2,11 +2,22 @@
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
+       xmlns:mvc="http://www.springframework.org/schema/mvc"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
 
     <!--  开启扫包  -->
     <context:component-scan base-package="com.lovecoding.mvc" ></context:component-scan>
 
+<!--  这个bin对象实现的方案是 如果前端控制器 查找不到 匹配的 mapping  -->
+<!--  就把这个 请求 转给 Tomcat 默认的 Servlet 去执行   -->
 
+<!--  <mvc:default-servlet-handler ></mvc:default-servlet-handler>-->
+
+<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
+    <property name="maxUploadSize" value="88888888" ></property>
+</bean>
 
 </beans>

+ 29 - 5
day02/src/main/webapp/WEB-INF/web.xml

@@ -16,14 +16,38 @@
         <servlet-name>springDispatcherServlet</servlet-name>
         <url-pattern>/</url-pattern>
     </servlet-mapping>
-
+    <!--  我们这里 使用 SpringMVC框架提供的 编码过滤器  -->
     <filter>
-        <filter-name>Encode</filter-name>
-        <filter-class>com.lovecoding.mvc.MyEncode</filter-class>
+        <filter-name>characterEncodingFilter</filter-name>
+        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
+        <init-param>
+            <param-name>encoding</param-name>
+            <param-value>UTF-8</param-value>
+        </init-param>
+        <!--必须设置 强制转码, 否则不生效 -->
+        <init-param>
+            <param-name>forceRequestEncoding</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        <init-param>
+            <param-name>forceResponseEncoding</param-name>
+            <param-value>true</param-value>
+        </init-param>
     </filter>
     <filter-mapping>
-        <filter-name>Encode</filter-name>
-        <url-pattern>/regUser</url-pattern>
+        <filter-name>characterEncodingFilter</filter-name>
+        <url-pattern>/*</url-pattern>
     </filter-mapping>
 
+
+<!--  基础办法, 直接从Tomcat 下手处理静态文件  -->
+<!--    <servlet-mapping>-->
+<!--        <servlet-name>default</servlet-name>-->
+<!--        <url-pattern>*.js</url-pattern>-->
+<!--    </servlet-mapping>-->
+<!--    <servlet-mapping>-->
+<!--        <servlet-name>default</servlet-name>-->
+<!--        <url-pattern>*.css</url-pattern>-->
+<!--    </servlet-mapping>-->
+
 </web-app>

+ 4 - 0
day02/src/main/webapp/css/style.css

@@ -0,0 +1,4 @@
+html, body {
+    padding: 0;
+    margin: 0;
+}

+ 7 - 0
day02/src/main/webapp/js/jquery.js

@@ -0,0 +1,7 @@
+!{
+
+}()
+
+()(
+
+)

+ 25 - 0
day02/src/main/webapp/upload.jsp

@@ -0,0 +1,25 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: lc
+  Date: 2023-03-26
+  Time: 下午 2:52
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+</head>
+<body>
+<div>
+
+    <form enctype="multipart/form-data"
+          action="<%=request.getContextPath()%>/uploadFile"
+          method="post" style="width: 400px; margin: 0 auto" >
+        <input type="file" name="file" /> <br />
+        <input type="submit" value=" 点我上传 ">
+    </form>
+
+</div>
+</body>
+</html>

+ 42 - 0
day03/pom.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>SpringMvc</artifactId>
+        <groupId>org.example</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>day03</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jdbc</artifactId>
+            <version>5.1.9.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.25</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+
+</project>

+ 46 - 0
day03/src/main/java/com/lovecoding/mvc/contorller/BookContorller.java

@@ -0,0 +1,46 @@
+package com.lovecoding.mvc.contorller;
+
+import com.lovecoding.mvc.dao.BookDao;
+import com.lovecoding.mvc.service.BookService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 必须使用 RustFul 风格的操作
+ * 并且得又 JSP 页面
+ */
+
+@Controller
+@RequestMapping("/book")
+public class BookContorller {
+
+    @Autowired
+    BookService bookService;
+
+    @PostMapping("/add")
+    public String add(BookDao book){
+        int add = bookService.add(book);
+        return "/success.jsp";
+    }
+
+    @DeleteMapping("/{bookId}")
+    public String del(Long bookId){
+        bookService.del(bookId);
+        return "/success.jsp";
+    }
+
+    @PutMapping("/{bookId}")
+    public String update(Long bookId){
+        bookService.update(bookId);
+        return "/success.jsp";
+    }
+
+    @GetMapping(("/{bookId}"))
+    public String get(Long bookId){
+        bookService.get(bookId);
+        return "/success.jsp";
+    }
+
+
+}

+ 8 - 0
day03/src/main/java/com/lovecoding/mvc/dao/BookDao.java

@@ -0,0 +1,8 @@
+package com.lovecoding.mvc.dao;
+
+import lombok.Data;
+
+@Data
+public class BookDao {
+    String name;
+}

+ 10 - 0
day03/src/main/java/com/lovecoding/mvc/model/Book.java

@@ -0,0 +1,10 @@
+package com.lovecoding.mvc.model;
+
+import com.lovecoding.mvc.dao.BookDao;
+
+public interface Book {
+    int add(BookDao book);
+    int del(Long bookId);
+    int update(Long bookId);
+    int get(Long bookId);
+}

+ 41 - 0
day03/src/main/java/com/lovecoding/mvc/model/BookMapper.java

@@ -0,0 +1,41 @@
+package com.lovecoding.mvc.model;
+
+import com.lovecoding.mvc.dao.BookDao;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class BookMapper implements Book {
+
+    @Autowired
+    JdbcTemplate jdbcTemplatel;
+
+    @Override
+    public int add(BookDao book) {
+        String sql = "UPDATE `test`.`test` SET `id` = 1";
+        int update = jdbcTemplatel.update(sql);
+        return update;
+    }
+
+    @Override
+    public int del(Long bookId) {
+        String sql = "UPDATE `test`.`test` SET `id` = 1";
+        int update = jdbcTemplatel.update(sql);
+        return update;
+    }
+
+    @Override
+    public int update(Long bookId) {
+        String sql = "UPDATE `test`.`test` SET `id` = 1";
+        int update = jdbcTemplatel.update(sql);
+        return update;
+    }
+
+    @Override
+    public int get(Long bookId) {
+        String sql = "UPDATE `test`.`test` SET `id` = 1";
+        int update = jdbcTemplatel.update(sql);
+        return update;
+    }
+}

+ 10 - 0
day03/src/main/java/com/lovecoding/mvc/service/BookService.java

@@ -0,0 +1,10 @@
+package com.lovecoding.mvc.service;
+
+import com.lovecoding.mvc.dao.BookDao;
+
+public interface BookService {
+    int add(BookDao book);
+    int del(Long bookId);
+    int update(Long bookId);
+    int get(Long bookId);
+}

+ 36 - 0
day03/src/main/java/com/lovecoding/mvc/service/BookServiceImpl.java

@@ -0,0 +1,36 @@
+package com.lovecoding.mvc.service;
+
+import com.lovecoding.mvc.dao.BookDao;
+import com.lovecoding.mvc.model.Book;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class BookServiceImpl implements BookService {
+
+    @Autowired
+    Book book;
+
+    @Override
+    public int add(BookDao book) {
+        int add = this.book.add(book);
+        return add;
+    }
+
+    @Override
+    public int del(Long bookId) {
+        int add = this.book.del(bookId);
+        return add;
+    }
+
+    @Override
+    public int update(Long bookId) {
+        int add = this.book.update(bookId);
+        return add;
+    }
+
+    @Override
+    public int get(Long bookId) {
+        return 0;
+    }
+}

+ 24 - 0
day03/src/main/resources/spring-mvc.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xmlns:mvc="http://www.springframework.org/schema/mvc"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
+
+    <context:component-scan base-package="com.lovecoding.mvc" ></context:component-scan>
+
+    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
+        <property name="username" value="root" ></property>
+        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" ></property>
+        <property name="password" value="0JZBdtlYoiOepddh" ></property>
+        <property name="url" value="jdbc:mysql://127.0.0.1:13306/test?characterEncoding=utf-8&amp;useSSL=false&amp;allowPublicKeyRetrieval=true"/>
+    </bean>
+
+    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
+        <property name="dataSource" ref="dataSource"></property>
+    </bean>
+
+</beans>

+ 42 - 0
day03/src/main/webapp/WEB-INF/web.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
+         version="4.0">
+
+    <servlet>
+        <servlet-name>springDispatcherServlet</servlet-name>
+        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+        <init-param>
+            <param-name>contextConfigLocation</param-name>
+            <param-value>classpath:spring-mvc.xml</param-value>
+        </init-param>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>springDispatcherServlet</servlet-name>
+        <url-pattern>/</url-pattern>
+    </servlet-mapping>
+    <!--  我们这里 使用 SpringMVC框架提供的 编码过滤器  -->
+    <filter>
+        <filter-name>characterEncodingFilter</filter-name>
+        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
+        <init-param>
+            <param-name>encoding</param-name>
+            <param-value>UTF-8</param-value>
+        </init-param>
+        <!--必须设置 强制转码, 否则不生效 -->
+        <init-param>
+            <param-name>forceRequestEncoding</param-name>
+            <param-value>true</param-value>
+        </init-param>
+        <init-param>
+            <param-name>forceResponseEncoding</param-name>
+            <param-value>true</param-value>
+        </init-param>
+    </filter>
+    <filter-mapping>
+        <filter-name>characterEncodingFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+
+</web-app>

+ 19 - 0
day03/src/main/webapp/addbook.jsp

@@ -0,0 +1,19 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: lc
+  Date: 2023-03-26
+  Time: 下午 4:49
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+</head>
+<body>
+    <form action="<%=request.getContextPath()%>/book/add" method="post" >
+        <input name="name" value="" />
+        <input type="submit" value="提交">
+    </form>
+</body>
+</html>

+ 16 - 0
day03/src/main/webapp/success.jsp

@@ -0,0 +1,16 @@
+<%--
+  Created by IntelliJ IDEA.
+  User: lc
+  Date: 2023-03-26
+  Time: 下午 4:51
+  To change this template use File | Settings | File Templates.
+--%>
+<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<html>
+<head>
+    <title>Title</title>
+</head>
+<body>
+<h1>操作成功</h1>
+</body>
+</html>

+ 13 - 0
pom.xml

@@ -11,6 +11,7 @@
     <modules>
         <module>day01</module>
         <module>day02</module>
+        <module>day03</module>
     </modules>
 
     <properties>
@@ -39,6 +40,18 @@
             <artifactId>jstl</artifactId>
             <version>1.2</version>
         </dependency>
+
+        <dependency>
+            <groupId>commons-fileupload</groupId>
+            <artifactId>commons-fileupload</artifactId>
+            <version>1.3.1</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.4</version>
+        </dependency>
+
     </dependencies>
 
 </project>