一、响应返回值
1、搭建环境(两个webapp,不要选错)
2、响应之返回值是String类型
  1. package cn.itcast.controller;
  2. import cn.itcast.domain.User;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.ui.Model;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. @Controller
  7. @RequestMapping("/user")
  8. public class UserController {
  9. @RequestMapping("/testString")
  10. public String testString(Model model){
  11. System.out.println("testString方法执行了");
  12. //模拟从数据库中查询数据库的User对象
  13. User user = new User();
  14. user.setUsername("美美");
  15. user.setPassword("123");
  16. user.setAge(19);
  17. //model对象
  18. model.addAttribute("user",user);
  19. return "success";
  20. }
  21. }
3、响应之返回值是void类型
  1. package cn.itcast.controller;
  2. import cn.itcast.domain.User;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.ui.Model;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import java.io.IOException;
  10. @Controller
  11. @RequestMapping("/user")
  12. public class UserController {
  13. /**
  14. * 返回值类型是void
  15. * 请求转发一次请求,不用去编写项目的名称
  16. * @param request
  17. * @return
  18. */
  19. @RequestMapping("/testVoid")
  20. public void testVoid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  21. System.out.println("testVoid方法执行了");
  22. //编写请求转发的程序
  23. //request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
  24. //也可以选择重定向,相当于发送了新的请求,需要加项目路径
  25. //response.sendRedirect(request.getContextPath()+"/index.jsp");
  26. //也可能会直接进行响应--直接发请求
  27. //设置中文乱码
  28. response.setCharacterEncoding("UTF-8");
  29. response.setContentType("text/html;charset=UTF-8");
  30. response.getWriter().print("你好");
  31. return;
  32. }
  33. }
4、响应之返回值是ModelAndView类型
  1. package cn.itcast.controller;
  2. import cn.itcast.domain.User;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.ui.Model;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.servlet.ModelAndView;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. import java.io.IOException;
  11. @Controller
  12. @RequestMapping("/user")
  13. public class UserController {
  14. //之前类型的底层也都是ModelAndView
  15. /**
  16. * testModelAndView
  17. * @return ModelAndView 对象
  18. */
  19. @RequestMapping("/testModelAndView")
  20. public ModelAndView testModelAndView(){
  21. //创建ModelAndView对象
  22. ModelAndView mv = new ModelAndView();
  23. System.out.println("testModelAndView方法执行了");
  24. //模拟从数据库中查询数据库的User对象
  25. User user = new User();
  26. user.setUsername("美美");
  27. user.setPassword("123");
  28. user.setAge(19);
  29. //把user对象存储到mv对象中,也会把user对象存入到request对象中
  30. mv.addObject("user",user);
  31. //跳转到哪个页面
  32. mv.setViewName("success");//利用视图解析器进行跳转
  33. return mv;
  34. }
  35. }
5、响应之使用forward和redirect进行页面跳转(转发和重定向的关键字)
此时无法使用视图解析器ModelAndView
  1. <a href="user/testForwardOrRedirect">testForwardOrRedirect</a>
  2. package cn.itcast.controller;
  3. import cn.itcast.domain.User;
  4. import org.springframework.stereotype.Controller;
  5. import org.springframework.ui.Model;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.servlet.ModelAndView;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import java.io.IOException;
  12. @Controller
  13. @RequestMapping("/user")
  14. public class UserController {
  15. /**
  16. * 使用关键字的方式进行转发或重定向
  17. * @return
  18. */
  19. @RequestMapping("/testForwardOrRedirect")
  20. public String testForwardOrRedirect(){
  21. System.out.println("testForwardOrRedirect方法执行了");
  22. //请求的转发
  23. return "forward:/WEB-INF/pages/success.jsp";//表明使用请求转发
  24. //重定向
  25. //return "redirect:/index.jsp";
  26. }
  27. }
二、响应json数据
1、响应json数据之过滤静态资源
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. <%--引入JQuery--%>
  6. <script src="js/jquery.min.js"></script>
  7. <script>
  8. //页面加载,绑定单击事件
  9. $(function(){
  10. $("#btn").click(function (){
  11. alert("hello button");
  12. });
  13. });
  14. </script>
  15. </head>
  16. <body>
  17. <a href="user/testString">test字符串</a><br>
  18. <a href="user/testVoid">testVoid</a><br>
  19. <a href="user/testModelAndView">testVoid</a><br>
  20. <a href="user/testForwardOrRedirect">testForwardOrRedirect</a><br>
  21. <button id="btn">发送ajax请求</button>
  22. </body>
  23. </html>
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:mvc="http://www.springframework.org/schema/mvc"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation=" http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/mvc
  9. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  10. http://www.springframework.org/schema/context
  11. http://www.springframework.org/schema/context/spring-context.xsd">
  12. <!--配置前端控制器,告诉哪些静态资源不拦截-->
  13. <!-- 设置静态资源不过滤 -->
  14. <mvc:resources location="/css/" mapping="/css/**"/> <!-- 样式 -->
  15. <mvc:resources location="/images/" mapping="/images/**"/> <!-- 图片 -->
  16. <mvc:resources location="/js/" mapping="/js/**"/> <!-- javascript -->
  17. <!--开启SpringMVC框架注解的支持-->
  18. <mvc:annotation-driven/>
  19. </beans>
2、响应json数据之发送ajax的请求
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. <%--引入JQuery--%>
  6. <script src="js/jquery.min.js"></script>
  7. <script>
  8. //页面加载,绑定单击事件
  9. $(function(){
  10. alert("hehe");
  11. $("#btn").click(function(){
  12. alert("hehe");
  13. $.ajax({
  14. //编写json格式,设置属性和值
  15. url:"user/testAjax",
  16. contentType:"application/json;charset=UTF-8",
  17. data:'{"username":"hehe","password":"qaz123","age":30}',//便于嵌套
  18. dataType:"json",
  19. type:"post",
  20. success:function(data){
  21. //data是服务器端响应的json数据,进行数据解析
  22. }
  23. });
  24. });
  25. });
  26. </script>
  27. </head>
  28. <body>
  29. <a href="user/testString">test字符串</a><br>
  30. <a href="user/testVoid">testVoid</a><br>
  31. <a href="user/testModelAndView">testVoid</a><br>
  32. <a href="user/testForwardOrRedirect">testForwardOrRedirect</a><br>
  33. <button id="btn">发送ajax请求</button>
  34. </body>
  35. </html>
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:mvc="http://www.springframework.org/schema/mvc"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation=" http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/mvc
  9. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  10. http://www.springframework.org/schema/context
  11. http://www.springframework.org/schema/context/spring-context.xsd">
  12. <!--配置前端控制器,告诉哪些静态资源不拦截-->
  13. <!-- 设置静态资源不过滤 -->
  14. <mvc:resources location="/css/" mapping="/css/**"/> <!-- 样式 -->
  15. <mvc:resources location="/images/" mapping="/images/**"/> <!-- 图片 -->
  16. <mvc:resources location="/js/**" mapping="/js/**"/> <!-- javascript -->
  17. <!--开启SpringMVC框架注解的支持-->
  18. <mvc:annotation-driven/>
  19. </beans>
3、响应json数据之响应json格式数据
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. <%--引入JQuery--%>
  6. <script src="js/jquery.min.js"></script>
  7. <script>
  8. //页面加载,绑定单击事件
  9. $(function(){
  10. // 绑定点击事件
  11. $("#btn").click(function(){
  12. $.ajax({
  13. url:"user/testAjax",
  14. contentType:"application/json;charset=UTF-8",
  15. data:'{"addressName":"aa","addressNum":100}',
  16. dataType:"json", type:"post",
  17. success:function(data){
  18. alert(data);
  19. alert(data.username);
  20. alert(data.password);
  21. alert(data.age)
  22. }
  23. });
  24. });
  25. });
  26. </script>
  27. </head>
  28. <body>
  29. <a href="user/testString">test字符串</a><br>
  30. <a href="user/testVoid">testVoid</a><br>
  31. <a href="user/testModelAndView">testVoid</a><br>
  32. <a href="user/testForwardOrRedirect">testForwardOrRedirect</a><br>
  33. <button id="btn">发送ajax请求</button>
  34. </body>
  35. </html>
  1. package cn.itcast.controller;
  2. import cn.itcast.domain.User;
  3. import org.springframework.stereotype.Controller;
  4. import org.springframework.ui.Model;
  5. import org.springframework.web.bind.annotation.RequestBody;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.ResponseBody;
  8. import org.springframework.web.servlet.ModelAndView;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import java.io.IOException;
  13. @Controller
  14. @RequestMapping("/user")
  15. public class UserController {
  16. /**
  17. * 模拟异步请求响应
  18. * @param user
  19. */
  20. @RequestMapping("/testAjax")
  21. public @ResponseBody User testAjax(@RequestBody User user){
  22. System.out.println("testAjax方法执行了");
  23. //客户端发送ajax请求,传递了json字符串,后端已经把json字符串封装到user对象中
  24. System.out.println(user);
  25. //做数据的响应,可以模拟查询数据库
  26. user.setUsername("ahahhah");
  27. user.setAge(45);
  28. //数据响应
  29. return user;
  30. }
  31. }
三、文件上传
1、上传原理分析和搭建环境
get会写到地址栏上
2、传统方式上传代码回顾
  1. @RequestMapping("/fileupload1")
  2. public String fileupload1(HttpServletRequest request, HttpServletResponse response) throws Exception {
  3. System.out.println("文件上传……");
  4. //使用servlet组件完成文件上传
  5. //指定文件上传的位置
  6. String path = request.getSession().getServletContext().getRealPath("/uploads/");
  7. //判断该 路径是否存在
  8. File file = new File(path);
  9. if (!file.exists()){
  10. //创建该文件夹
  11. file.mkdirs();
  12. }
  13. //解析request对象,获取到上传的文件项
  14. DiskFileItemFactory factory = new DiskFileItemFactory();
  15. ServletFileUpload upload = new ServletFileUpload(factory);
  16. //解析request
  17. List<FileItem> items = upload.parseRequest(request);
  18. //遍历
  19. for (FileItem item : items) {
  20. //判断当前item是否是上传文件项
  21. if (item.isFormField()){
  22. //说明是普通的表单项
  23. }else{
  24. //说明是上传文件项
  25. //获取到上传文件的名称
  26. String filename = item.getName();
  27. //把文件名称设置为唯一值
  28. String uuid = UUID.randomUUID().toString().replace("-", "");
  29. filename = uuid+filename;
  30. //完成文件上传
  31. item.write(new File(path,filename));
  32. //删除临时文件
  33. item.delete();
  34. }
  35. }
  36. return "success";
  37. }
3、Springmvc方式上传原理分析
文件解析器对象:CommonsMultipartResolver
4、Springmvc方式上传代码
  1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  2. <html>
  3. <head>
  4. <title>Title</title>
  5. </head>
  6. <body>
  7. <br>
  8. <h3>SpringMVC方式文件上传</h3>
  9. <form action="user/fileupload2" method="post" enctype="multipart/form-data">
  10. 选择文件:<input type="file" name="upload" /> <br>
  11. <input type="submit" value="上传" />
  12. </form>
  13. </body>
  14. </html>

  1. /**
  2. * Spring MVC方式上传
  3. * @param request
  4. * @param upload
  5. * @return
  6. * @throws Exception
  7. */
  8. @RequestMapping("/fileupload2")
  9. public String fileupload2(HttpServletRequest request, MultipartFile upload) throws Exception {
  10. System.out.println("Spring文件上传……");
  11. //使用servlet组件完成文件上传
  12. //指定文件上传的位置
  13. String path = request.getSession().getServletContext().getRealPath("/uploads/");
  14. //判断该 路径是否存在
  15. File file = new File(path);
  16. if (!file.exists()){
  17. //创建该文件夹
  18. file.mkdirs();
  19. }
  20. //说明是上传文件项
  21. //获取到上传文件的名称
  22. String filename = upload.getOriginalFilename();
  23. //把文件名称设置为唯一值
  24. String uuid = UUID.randomUUID().toString().replace("-", "");
  25. filename = uuid+filename;
  26. //完成文件上传
  27. upload.transferTo(new File(path,filename));
  28. return "success";
  29. }
4、跨服务器上传分析和搭建环境
创建了两个tomcat:SpringMVC和fileupload
5、跨服务器上传代码
  1. <dependency>
  2. <groupId>com.sun.jersey</groupId>
  3. <artifactId>jersey-core</artifactId>
  4. <version>1.18.1</version>
  5. </dependency> <dependency>
  6. <groupId>com.sun.jersey</groupId>
  7. <artifactId>jersey-client</artifactId>
  8. <version>1.18.1</version>
  9. </dependency>
  1. /**
  2. * 跨服务器文件上传
  3. * @param upload
  4. * @return
  5. * @throws Exception
  6. */
  7. @RequestMapping("/fileupload3")
  8. public String fileupload3(MultipartFile upload) throws Exception {
  9. System.out.println("跨服务器文件上传……");
  10. //定义上传文件服务器的路径
  11. String path = "http://localhost:9090/uploads/";//写加号就不需要拼了
  12. //说明是上传文件项
  13. //获取到上传文件的名称
  14. String filename = upload.getOriginalFilename();
  15. //把文件名称设置为唯一值
  16. String uuid = UUID.randomUUID().toString().replace("-", "");
  17. filename = uuid+filename;
  18. //完成文件上传,跨服务器上传
  19. //创建客户端对象
  20. Client client = Client.create();
  21. //和图片服务器进行连接
  22. WebResource webResource = client.resource(path+filename);
  23. //上传文件
  24. webResource.put(upload.getBytes());
  25. return "success";
  26. }
四、异常处理--友好页面
1、分析和搭建环境
2、异常处理之演示程序异常
  1. package cn.itcast.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. @Controller
  5. @RequestMapping("/user")
  6. public class UserController {
  7. @RequestMapping("/testException")
  8. public String testException() throws Exception{
  9. System.out.println("testException执行了……");
  10. //模拟异常
  11. int i = 1 / 0;
  12. return "success";
  13. }
  14. }
3、异常处理代码编写
步骤:
  • 编写自定义异常类(提示信息)
  1. package cn.itcast.exception;
  2. /**
  3. * 自定义异常类
  4. */
  5. public class SysException extends Exception{
  6. public SysException(String message) {
  7. this.message = message;
  8. }
  9. //存储异常信息
  10. private String message;
  11. @Override
  12. public String getMessage() {
  13. return message;
  14. }
  15. public void setMessage(String message) {
  16. this.message = message;
  17. }
  18. }
  • 编写异常处理器
  1. package cn.itcast.exception;
  2. import org.springframework.web.servlet.HandlerExceptionResolver;
  3. import org.springframework.web.servlet.ModelAndView;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. /**
  7. * 异常处理器对象
  8. */
  9. public class SysExceptionResolver implements HandlerExceptionResolver {
  10. /**
  11. * 处理异常的业务逻辑
  12. * @param httpServletRequest
  13. * @param httpServletResponse
  14. * @param o 处理器对象
  15. * @param ex 异常对象
  16. * @return
  17. */
  18. @Override
  19. public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception ex) {
  20. //获取到异常对象
  21. SysException e = null;
  22. //判断ex是SysException类型的
  23. if(ex instanceof SysException){
  24. e = (SysException) ex;
  25. }else{
  26. e = new SysException("系统正在维护");
  27. }
  28. //创建ModelAndView对象
  29. ModelAndView mv = new ModelAndView();
  30. mv.addObject("errorMsg",e.getMessage());
  31. mv.setViewName("error");
  32. return mv;
  33. }
  34. }
  • 配置异常处理器(跳转到友好提示页面)
  1. <!--配置异常处理器对象-->
  2. <bean id="sysExceptionResolver" class="cn.itcast.exception.SysExceptionResolver" />
  3. <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
  4. <html>
  5. <head>
  6. <title>Title</title>
  7. </head>
  8. <body>
  9. ${errorMsg}
  10. </body>
  11. </html>
五、SpringMVC拦截器
1、介绍和搭建环境
拦截器链:多个拦截器
拦截器与过滤器的区别:
  • 过滤器什么都能拦,拦截器只能拦controller
2、编写controller
  1. package cn.itcast.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. @Controller
  5. @RequestMapping("/user")
  6. public class UserController {
  7. @RequestMapping("/testInterceptor")
  8. public String testInterceptor() throws Exception{
  9. System.out.println("testInterceptor执行了……");
  10. try {
  11. //模拟异常
  12. int i = 1 / 0;
  13. } catch (Exception e) {
  14. e.printStackTrace();//在控制台打印异常信息,保留
  15. //向上抛出自定义异常信息
  16. }
  17. return "success";
  18. }
  19. }
3、拦截器入门代码
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:mvc="http://www.springframework.org/schema/mvc"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6. xsi:schemaLocation=" http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans.xsd
  8. http://www.springframework.org/schema/mvc
  9. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  10. http://www.springframework.org/schema/context
  11. http://www.springframework.org/schema/context/spring-context.xsd">
  12. <!--配置拦截器-->
  13. <mvc:interceptors>
  14. <!--配置拦截器-->
  15. <mvc:interceptor>
  16. <!--要拦截的具体方法-->
  17. <mvc:mapping path="/user/*"/>
  18. <!--不要拦截的方法-->
  19. <!--<mvc:exclude-mapping path=""/>-->
  20. <!--配置拦截器对象-->
  21. <bean class="cn.itcast.interceptor.MyInterceptor1"></bean>
  22. </mvc:interceptor>
  23. </mvc:interceptors>
  24. <!--开启SpringMVC框架注解的支持-->
  25. <mvc:annotation-driven/>
  26. </beans>
  1. package cn.itcast.interceptor;
  2. import org.springframework.web.servlet.HandlerInterceptor;
  3. import javax.servlet.http.HttpServletRequest;
  4. import javax.servlet.http.HttpServletResponse;
  5. /**
  6. * 自定义拦截器
  7. */
  8. public class MyInterceptor1 implements HandlerInterceptor {
  9. //jdk1.8之后,接口中可以对方法进行实现
  10. /**
  11. * 预处理controller方法执行前
  12. * @param request
  13. * @param response
  14. * @param handler
  15. * @return true放行,执行下一个拦截器;如果没有,执行controller中的方法
  16. * false不放行
  17. * @throws Exception
  18. */
  19. @Override
  20. public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
  21. System.out.println("MyInterceptor1执行了");
  22. return true;
  23. }
  24. }
4、拦截器接口方法演示

SpringMVC02:返回值、json数据、文件上传、拦截器的更多相关文章

  1. struts文件上传拦截器分析

    struts有默认的文件拦截器,一般配置maximumSize就可以了. 知道原理,我们可以写一个类继承它,实现自己的配置上传文件大小的方式.   然后细究页面上传文件的时候,发现了一些问题. act ...

  2. SpringMVC——返回JSON数据&&文件上传下载

    --------------------------------------------返回JSON数据------------------------------------------------ ...

  3. SpringMVC 文件上传&拦截器&异常处理

    文件上传 Spring MVC 为文件上传提供了直接的支持,这种支持是通过即插即用的 MultipartResolver 实现的.Spring 用 Jakarta Commons FileUpload ...

  4. struts文件上传拦截器中参数的配置(maximumSize,allowedTypes ,allowedExtensions)问题

    <interceptor-ref name="fileUpload"> <param name="allowedTypes">image ...

  5. struts文件上传拦截器maximumSize设置文件大小不起作用

    <interceptor-ref name="fileUpload">                <param name="allowedTypes ...

  6. 转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  7. 专题十一:实现一个基于FTP协议的程序——文件上传下载器

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  8. springMVC整理04--文件上传 & 拦截器 & 异常处理

    1.  文件上传 SpringMVC 的文件上传非常简便,首先导入文件上传依赖的 jar: <!-- 文件上传所依赖的 jar 包 --> <dependency> <g ...

  9. maven中的pom配置文件一——spring,mybatis,oracle,jstl,json,文件上传

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  10. SpringMvc(四)- 下载,上传,拦截器

    1.图片下载 图片下载:将服务器端的文件以流的形式写到客户端,通过浏览器保存到本地,实现下载: 1.1 图片下载步骤 1.通过session获取上下文对象(session.getServletCont ...

随机推荐

  1. Elasticsearch:运用 shard_size 来提高term aggregation的精度

  2. 在k8s中将nginx.conf文件内容创建为ConfigMap挂载到pod容器中

    将nginx.conf文件内容创建为ConfigMap user nginx; worker_processes auto; error_log /var/log/nginx/error.log er ...

  3. 《Go 精进之路》 读书笔记 (第一次更新)

    <Go 精进之路> 读书笔记.简要记录自己打五角星的部分,方便复习巩固.目前看到p120 Go 语言遵从的设计哲学为组合 垂直组合:类型嵌入,快速让一个类型复用其他类型已经实现的能力,实现 ...

  4. 中小制造企业需要ERP和MES吗?

    并不是所有中小制造企业都需要ERP和MES,这个取决于你的规模和管理思维与模式!匹配很重要,不同规模的企业做不同的选择!比如你大型企业,一般是要使用ERP的,其工厂也应该需要上MES系统,ERP主要用 ...

  5. 换工作?试试远程工作「GitHub 热点速览 v.22.40」

    近日,潜在某个技术交流群的我发现即将毕业的小伙伴在焦虑实习.校招,刚好本周 GitHub 热榜有个远程工作项目.不妨大家换个思路,"走"出去也许有更多的机会.当然,除了全球的远程工 ...

  6. JVM运行模式和逃逸分析

    JVM三种运行模式: 解释模式(Interpreted Mode):只使用解释器(-Xint强制JVM使用解释模式),执行一行JVM字节码就编译一行为机器码.(可以马上看到效果,但是运行过程比较慢) ...

  7. 不允许还有Java程序员不了解BlockingQueue阻塞队列的实现原理

    我们平时开发中好像很少使用到BlockingQueue(阻塞队列),比如我们想要存储一组数据的时候会使用ArrayList,想要存储键值对数据会使用HashMap,在什么场景下需要用到Blocking ...

  8. String内建函数

    int length():返回字符串的长度: return value.lengthchar charAt(int index): 返回某索引处的字符return value[index]boolea ...

  9. 一天五道Java面试题----第八天(怎么处理慢查询--------->简述Myisam和innodb的区别)

    这里是参考B站上的大佬做的面试题笔记.大家也可以去看视频讲解!!! 文章目录 1.怎么处理慢查询 2.ACID靠什么保证的 3.什么是MVCC 4.mysql主从同步原理 5.简述Myisam和inn ...

  10. ansible应用之安装elk框架

    最近在学习ansible,先大致看了下视频,现在需要练习使用了.对照视频中的练习方式,我觉得用处也不是太大,正好现在还要学习elk,以集群方式部署es,需要执行一些批量命令,而且还有一些修改配置文件的 ...