Lib目录
Java目录
HelloController文件代码
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class HelloController implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("Hello SpringMVC"); String name = request.getParameter("name"); System.out.println(name); // 设置参数,回显到页面 // request.setAttribute("msg", "今天下雨了"); // request.getRequestDispatcher("/hello.jsp").forward(request, response); ModelAndView mv = new ModelAndView(); mv.addObject("msg", "今天下雨了"); mv.setViewName("/hello.jsp"); return mv; } }
AnotationController文件代码
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; @Controller public class AnotationController { @RequestMapping(value = "/method") public ModelAndView method(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("method"); return null; } @RequestMapping(value = "/method2") public ModelAndView method2(HttpServletResponse response) throws Exception { System.out.println("method2"); return null; } @RequestMapping(value = "/method3") public ModelAndView method3(HttpServletResponse response, HttpSession session) throws Exception { System.out.println("method3"); return null; } @RequestMapping(value = "/method4") public ModelAndView method4(HttpSession session) throws Exception { System.out.println("method4"); System.out.println(session); ModelAndView mv = new ModelAndView(); mv.setViewName("/hello.jsp"); return mv; } @RequestMapping(value = "/method5") public ModelAndView method5(String name) throws Exception { System.out.println(name); ModelAndView mv = new ModelAndView(); mv.setViewName("/hello.jsp"); return mv; } }
DataController文件代码
import com.xmg.domain.User; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Date; @Controller public class DataController { // 通过原始方式 @RequestMapping("/data1") public ModelAndView data1(HttpServletResponse response, HttpServletRequest request) { request.setAttribute("msg","下午出太阳了"); ModelAndView mv = new ModelAndView(); mv.setViewName("hello.jsp"); return null; } // 通过通过ModelAndView addObject方式 @RequestMapping("/data2") public ModelAndView data2() { System.out.println("data2"); ModelAndView mv = new ModelAndView(); // Map<String, String> map = new HashMap<>(); // map.put("msg","明天不打球"); // map.put("success","true"); // mv.addAllObjects(map); mv.addObject("后天放假"); //默认的key:类型的全小写 mv.addObject(new Date()); mv.setViewName("hello.jsp"); return null; } // 直接返回对象 @RequestMapping("/data3") @ModelAttribute("msg") public User data3() { // 如果没有ModelAndView和response // 返回结果会找视图解析器 前缀+请求名+后缀 return new User("xx","123"); } @RequestMapping("/data4") public String data4() { System.out.println("data4"); return "show"; } @RequestMapping("/data5") public String data5(Model model) { System.out.println("data5"); model.addAttribute("msg","等会休息一下"); return "show"; } @RequestMapping("/data6") public String data6() { System.out.println("data6"); return "forward:show.jsp"; } @RequestMapping("/data7") public String data7() { System.out.println("data7"); return "redirect:show.jsp"; } }
ValueController文件代码
import com.xmg.domain.User; 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.RequestParam; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Controller public class ValueController { // 1.通过最原始的方式来进行传值 @RequestMapping("/value1") public ModelAndView value1(HttpServletRequest request, HttpServletResponse response) { System.out.println("value1"); String name = request.getParameter("name"); String password = request.getParameter("password"); User user = new User(name, password); System.out.println(user); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("/value.jsp"); return modelAndView; } // 前台和后台传参 @RequestMapping("/value2") public ModelAndView value2(String name, String password) { System.out.println("value2"); User user = new User(name, password); System.out.println(user); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("/value.jsp"); return modelAndView; } // 前台和后台传参 @RequestMapping("/value3") public ModelAndView value3(@RequestParam("name11") String name, String password) { System.out.println("value3"); User user = new User(name, password); System.out.println(user); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("/value.jsp"); return modelAndView; } // 对象传参方式 @RequestMapping("/value4") public ModelAndView value4(User u) { System.out.println("value4"); System.out.println(u); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("/value.jsp"); return modelAndView; } // 地址栏传参 @RequestMapping("/value5/{id}") public ModelAndView value5(@PathVariable("id")Long id) { System.out.println("value5"); System.out.println(id); ModelAndView modelAndView = new ModelAndView(); modelAndView.setViewName("/value.jsp"); return modelAndView; } }
FileController文件代码
import org.apache.commons.io.IOUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.UUID; @Controller public class FileController { @RequestMapping("/upload") public void upload(MultipartFile file) { FileOutputStream fos = null; try { String lastName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String fileName = UUID.randomUUID().toString(); InputStream fis = file.getInputStream(); fos = new FileOutputStream("D:\file\" + fileName); IOUtils.copy(fis, fos); } catch (Exception e) { e.printStackTrace(); } finally { if (fos != null) { try { fos.close(); } catch (Exception e) { e.printStackTrace(); } } } } @RequestMapping("/downLoad") @ResponseBody //代表这次请求全部交给response来做处理 public void DownLoad(HttpServletResponse response) { FileInputStream fis = null; try { // 设置下载头 response.setHeader("Content-Disposition", "attachment;filename=" + new String("三个小明".getBytes("UTF-8"), "iso8859-1") + ".jpg"); File file = new File("D:\file\a.jpg"); fis = new FileInputStream(file); OutputStream os = response.getOutputStream(); IOUtils.copy(fis, os); } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
DemoInterceptor文件代码
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DemoInterceptor implements HandlerInterceptor { // 在调用控制器方法之前 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { System.out.println("DemoInterceptor.preHandle()"); // 如果返回false为拦截这个请求 return false; } // 在调用控制器方法之后,视图渲染之前 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object o, ModelAndView modelAndView) throws Exception { System.out.println("DemoInterceptor.postHandle()"); } // 视图渲染之后 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object o, Exception e) throws Exception { System.out.println("DemoInterceptor.afterCompletion()"); } }
resources目录
application.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- <bean name="/hello" class="com.xmg.HelloController"/>--> <!-- <bean class="com.xmg.AnotationController"/>--> <!-- 添加对静态资源的支持 --> <!-- <mvc:default-servlet-handler />--> <!-- 开启扫描 --> <context:component-scan base-package="com.xmg" /> <!-- 添加对SpringMVC的注解支持 --> <mvc:annotation-driven/> <!-- 对静态资源的支持 --> <mvc:default-servlet-handler /> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" > <property name="prefix" value="/WEB-INF/view/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 配置上传文件的bean --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" > <!-- 设置上传文件的最大尺寸为1MB --> <property name="maxUploadSize" value="#{1024*1024}"/> </bean> <!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/show.jsp"/> <bean class="com.xmg.DemoInterceptor" /> </mvc:interceptor> </mvc:interceptors> </beans>
Webapp目录
hello.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false"%> <html> <head> <title>Title</title> </head> <body> 回显的参数 ${msg} ${success} ${string} ${date} </body> </html>
Show.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ page isELIgnored="false"%> <html> <head> <title>Title</title> </head> <body> ${msg} </body> </html>
Value.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <fieldset> <legend>用户注册-原始方式</legend> <form action="/value1" method="post" > <table> <tr> <td>用户名</td> <td><input type="text" name="name"></td> </tr> <tr> <td>密码</td> <td><input type="text" name="password"></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"></td> </tr> </table> </form> </fieldset> <fieldset> <legend>用户注册-原始方式-参数名对应前台名称</legend> <form action="/value2" method="post" > <table> <tr> <td>用户名</td> <td><input type="text" name="name"></td> </tr> <tr> <td>密码</td> <td><input type="text" name="password"></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"></td> </tr> </table> </form> </fieldset> <fieldset> <legend>用户注册-原始方式-参数名对应前台名称</legend> <form action="/value3" method="post" > <table> <tr> <td>用户名</td> <td><input type="text" name="name11"></td> </tr> <tr> <td>密码</td> <td><input type="text" name="password"></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"></td> </tr> </table> </form> </fieldset> <fieldset> <legend>用户注册-对象传参</legend> <form action="/value4" method="post" > <table> <tr> <td>用户名</td> <td><input type="text" name="name"></td> </tr> <tr> <td>密码</td> <td><input type="text" name="password"></td> </tr> <tr> <td colspan="2"><input type="submit" value="提交"></td> </tr> </table> </form> </fieldset> </body> </html>
Upload.jsp文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>文件上传</title> </head> <body> <fieldset> <legend>文件上传</legend> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="提交"> </form> </fieldset> </body> </html>