restful设计风格及HTTP Status 405 - JSPs only permit GET POST or HEAD问题

      REST是英文representational state transfer(表象性状态转变)或者表述性状态转移;Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标准,是一种思想。

      关于这个项目实例:

导入springmvc的框架jar等,保持版本号保持一致。(3.xxx对应的是jdk1.7,4.xxx对应的是jdk1.8)

     web.xml配置前置控制器和过滤器。过滤器是为了将普通浏览器的post请求转成delete和put。



 springMVC001
 
	springmvc
 	org.springframework.web.servlet.DispatcherServlet
 	
 		contextConfigLocation
 		classpath:springmvc.xml
 	
 	1
 
 
 	springmvc
 	*.do
 
 
 
 HiddenHttpMethodFilter
 org.springframework.web.filter.HiddenHttpMethodFilter
 
 
 HiddenHttpMethodFilter
 *.do
 
 
 

springmvc.xml



          
        
        
        
        

在这个hello1.jsp页面进行请求

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


    四种表现方式
	

请求处理类

@Controller
public class Restful {
@RequestMapping(value="/rest/{name}.do",method=RequestMethod.POST)
public String restinsert(@PathVariable("name") String name){
	System.out.println("增加"+name);
	return "/hello.jsp";
}

@RequestMapping(value="/rest/{name}.do",method=RequestMethod.DELETE)
public String restdelete(@PathVariable("name") String name){
	System.out.println("删除"+name);
	return "/hello.jsp";
	
}
@RequestMapping(value="/rest/{name}.do",method=RequestMethod.PUT)
public String restupdate(@PathVariable("name") String name){
	System.out.println("更新"+name);
	return "/hello.jsp";
	
}
@RequestMapping(value="/rest/{name}.do",method=RequestMethod.GET)
public String restselect(@PathVariable("name") String name){
	System.out.println("查看"+name);
	return "/hello.jsp";
	
}


}

处理请求后会跳转到hello.jsp中,但是会报错!!!

错误是这样的:JSPs only permit GET POST or HEAD

三种简单处理的办法!
1.tomcat换到7.0以及以下版本
2.请求先转给一个Controller,再返回jsp页面
3.在你的success页面头部文件将
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
    本人所使用的就是第三种就可以成功跳转了。

附上成功跳转页hello.jsp的代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"  isErrorPage="true"%>




Insert title here


	hello
	${name}

 

你可能感兴趣的:(java框架)