对于那些会以多线程运行的单例类(比如spring mvc中的controller,dao,service): 局部变量不会受多线程影响 成员变量会受到多线程影响 如果方法里有成员变量,只有读操作,不受影响:存在写操作,考虑多线程影响值. 例如Web应用中的Servlet,每个方法中对局部变量的操作都是在线程自己独立的内存区域内完成的,所以是线程安全的. 而web中每个请求都是单独的线程,即使同时访问同一个Controller对象,因为并没有修改Controller对象,相当于针对Controll…
原文:http://blog.csdn.net/he90227/article/details/52262163 什么是异步模式 如何在Spring MVC中使用异步提高性能? 一个普通 Servlet 的主要工作流程大致如下: 用户查询开始到返回结果到页面,此处是一个同步的过程,如果做成异步的能提高系统响应的性能 以下3个步骤都在同一个线程中完成 --- 同步阻塞 --- 请求等待 首先,Servlet 接收到请求之后,可能需要对请求携带的数据进行一些预处理: 接着,调用业务接口的某些方法,以…
Spring MVC中forward请求转发2种方式(带参数) http://www.51gjie.com/javaweb/956.html  …
方案简写,自己或有些基础的可以看懂,因为没时间写的那么详细 方案1 spring mvc解决get请求中文乱码问题, 在tamcat中server.xml文件 URIEncoding="UTF-8"useBodyEncodingForURI="true" 为了确保get数据采用UTF8编码 @ModelAttribute 方案2. tomcat的服务器的默认编码是ISO8859-1,所以在容器中获取的请求数据可以重新编码显示 例如你在控制层 controller 获…
一.SpringMVC常用注解 @Controller 声明Action组件 @Service    声明Service组件    @Service("myMovieLister")  @Repository 声明Dao组件 @Component   泛指组件, 当不好归类时.  @RequestMapping("/menu")  请求映射 @Resource  用于注入,( j2ee提供的 ) 默认按名称装配,@Resource(name="beanNa…
Spring mvc 启动 和 请求分发 启动加载: abstract class HttpServletBean extends HttpServlet void init() initServletBean(); abstract class FrameworkServlet extends HttpServletBean void initServletBean() WebApplicationContext initWebApplicationContext() onRefresh(wa…
Spring MVC是Spring系列框架中使用频率最高的部分.不管是Spring Boot还是传统的Spring项目,只要是Web项目都会使用到Spring MVC部分.因此程序员一定要熟练掌握MVC部分.本篇博客简要分析Spring MVC处理一个请求的流程. 一个请求从客户端发出到达服务器,然后被处理的整个过程其实是非常复杂的.本博客主要介绍请求到达服务器被核心组件DispatcherServlet处理的整理流程(不包括Filter的处理流程). 1. 处理流程分析 Servlet处理一个…
目录 1. 概述 2. 详解 2.1 处理查询参数 2.2 处理路径参数接受输入 2.3 处理表单 3. 补充内容 3.1 Ajax/JSON 输入 3.2 multipart参数 3.3 接收 header 数据 1. 概述 Spring MVC 允许以多种方式将客户端的数据传送到控制器的处理方法中: 查询参数(Query Parameter) 表单参数(Form Parameter) 路径变量(Path Variable) 2. 详解 2.1 处理查询参数 查询参数都是String类型的,但…
在spring mvc3.2及以上版本增加了对请求的异步处理,是在servlet3的基础上进行封装的. 1.修改web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001…
发送post请求到controller处理失败,报错日志如下: java.lang.IllegalStateException: getInputStream() has already been called for this request at org.apache.catalina.connector.Request.getReader(Request.java:1212) at org.apache.catalina.connector.RequestFacade.getReader(…