使用Spring MVC有一段时间了,之前一直使用Struts2,在struts2中action都是原型(prototype)的, 说是因为线程安全问题,对于Spring MVC中bean默认都是(singleton)单例的,那么用@Controller注解标签注入的Controller类是单例实现的? 测试结果发现spring3中的controller默认是单例的,若是某个controller中有一个私有的变量i,所有请求到同一个controller时,使用的i变量是共用的,即若是某个请求中修…
项目中没用spring 的restTemplate 而是采用 jersey来做rest 的实现,一直用着,也没发现有什么不对,后来加入了,以quartz用硬编码方式实现,结果启动项目的时候报错 ,具体信息为job id重复.后来经排查是因为:jersey依赖于org.springframework.web.context.ContextLoaderListener初始化 的ApplicationContext,而spring mvc 依赖于org.springframework.web.serv…
 一.需求背景     1. 需求:spring MVC框架controller间跳转,需重定向.有几种情况:不带参数跳转,带参数拼接url形式跳转,带参数不拼接参数跳转,页面也能显示.   @RequestMapping(value = "/activityType", method = RequestMethod.GET) public String activityType(HttpServletRequest request, ModelMap model,RedirectAt…
spring mvc在Controller中获取ApplicationContext web.xml中进行正常的beans.xml和spring-mvc.xml的配置: 需要在beans.xml中进行需要加载的类的配置:不能在spring-mvc.xml中配置: beans.xml中的配置: <bean id="deployMode" class="java.lang.String"> <constructor-arg> <value&…
一:配置web.xml 1)问题:spring项目中有多个配置文件mvc.xml   dao.xml 2)解决:在web.xml中 <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/xxx/*.xml</param-value> xxx表示xml文件路径    *.xml表示后缀名为xml的任意文件 </init-param&g…
万事开头难,良好的开端是成功的一半! 以下示例怎么开始创建我们的第一个Spring MVC控制器Controller 1.新建一个java类,命名为:MyFirstController,包含以下代码,其中有2个函数,分别返回jsp页面和一个json字符串. 2.新建一个jsp页面,命名为: /modules/demo/myFirstJsp.jsp 注意jsp的页面名称跟控制器里面的list函数返回值的关系. jsp页面的主要代码如下:注意下图中红色圈住的值即为MyFirstController里…
1 基础 实际上java内存马的注入已经有很多方式了,这里在学习中动手研究并写了一款spring mvc应用的内存马.一般来说实现无文件落地的java内存马注入,通常是利用反序列化漏洞,所以动手写了一个spring mvc的后端,并直接给了一个fastjson反序列化的页面,在假定的攻击中,通过jndi的利用方式让web端加载恶意类,注入controller.一切工作都是站在巨人的肩膀上,参考文章均在最后列出. 1.1 fastjson反序列化和JNDI 关于fastjson漏洞产生的具体原理已…
双重检测实现 /** * 懒汉模式->双重同步锁单例模式 */ public class SingletonExample5 { private SingletonExample5() { } //volatile + 双重检测机制 -> 禁止指令重排序 private static volatile SingletonExample5 instance = null; /** * synchronized导致性能开销增加 */ private static SingletonExample5…
要实现Controller返回数据给页面,Spring MVC 提供了以下几种途径: ModelAndView:将视图和数据封装成ModelAndView对象,作为方法的返回值,数据最终会存到HttpServletRequest对象中! Model对象:通过给方法添加引用Model对象入参,直接往Model对象添加属性值.那么哪些类型的入参才能够引用Model对象,有三种类型,分别是  org.springframework.ui.Model.org.springframework.ui.Mod…
在Spring MVC中,Controller中使用service只需使用注解@Resource就行,但是一般类(即不使用@Controller注解的类)要用到service时,可用如下方法: 1.SpringContextUtil package com.test.utils; import org.springframework.beans.BeansException; import org.springframework.beans.factory.NoSuchBeanDefinitio…