Spring
<context:component-scan base-package="com.qwzhao.book"></context:component-scan>
@Component
@Repository
@Service
@Controller
@Aspect
需添加com.springsource.org.aspectj.weaver-1.7.2.RELEASE.jar
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
@Before
@After
@AfterReturning
@AfterThrowing
@Around//不常用
@Pointcut("")
@Order
给切面日志输出顺序排序
@Test
@Transaction
<tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>
SpringMVC
@RequestMapping("/** **")可以添加到方法上,也可以添加到类上
@RequestMapping("/springmvc")
@Controller
public class Demo{
@RequestMapping("/testRequestMapping")
public void testRequestMapping(){
System.out.pringln("testRequestMapping");
}
}
- 常用属性:
- value value="/...."
- method 常用RequestMethod.POST or RequestMethod.Get
- params params={"username","id!=1"} 参数限制 可以多个
- headers headers={Accept-Language=zh-CN,zh;q=0.8} 设置(限制)请求头用,不常用
ANT风格URL
- @RequestMapping("test/*/add")
@PathVariable
@RequestMapping("/test/{id}")
puhblic int myProject(@PathVariable("id") int i){
System.out.pringln(i);
return "success"
}
映射URL绑定的占位符
REST:Representational State Transfer
通过HiddenHttpMethodFilter:浏览器form表单只支持GET于POST请求,而DELETE、PUT等method并不支持,Spring3.0添加了一个过滤器,可以将这些请求转为标准的http方法,使得支持GET、POST、PUT、DELETE请求
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*不是注释,此处应写斜杠和星*/</url-pattern>
</filter-mapping>
(需添加到servlet之前)
页面:
<br/><br/>
<form action="testRestDelete/1" method="post">
<input type="hidden" name="_method" value="delete">
<input type="submit" value="Test REST Delete">
</form>
<br/><br/>
<form action="testRestPut/1" method="post">
<input type="hidden" name="_method" value="put">
<input type="submit" value="Test REST Put">
</form>
注意:<input type="hidden" name="_method" value="put or delete">
此处有个问题尚未解决:get post可以正常使用,但是DELETE和PUT总提示:
该问题尚未解决
@RequestParam
@RequestMapping("/testRequestParam")
public void testRequestParam(@RequestParam(value="username",required=false,defaultValue=0) String name){
System.out.println("测试名字:"+name);
}
对应的HTML:
< input type="text" name="username" />
-属性参数:
- required=false 表示此参数可以不是必须的
- defaultValue 给该参数赋予默认值
映射Controller方法参数,使其与页面中name参数值一致
@RequestHeader
@RequestMapping("/testRequestHeader")
public void testRequestHeader(@RequestHeader(value="Accept",required=false,defaultValue=0) String al){
System.out.println("testRequestHeader,Accept-Language:"+al);
}
用法同RequestParam,映射请求头信息
@CookieValue
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue(value="JSESSIONID",required=false,defaultValue=0) String sessionId){
System.out.println("sessionId:"+sessionId);
return "success";
}
绑定请求中的Cookie值,属性同RequestParam