SpringMVC day_1

 

 

 

SpringMVC通过一套MVC注解让POJO成为处理请求的控制器

,而无需实现任何接口支持REST风格的URL
创建静态工厂  





一、在web.XML文件中配置DispatcherServlet 快捷键
<servlet>
		<servlet-name>hellow</servlet-name>
		<!-- 前端控制器(DisatcherSrevlet):接收请求,响应结果  返回可以是json,String等数据类型 也可以是页面(model) -->
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>

			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:application.xml</param-value>
		</init-param>
		<!-- Servlet被创建的时间 若为负数则在第一次请求是被创建
		若为0或正数则在当期那WEB应用被Servlet加载时创建实例 且数组越小越早被创建 -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>

		<servlet-name>hellow</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping> 
<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>
二、创建SpringMVC配置文件  src下 application.xml
<!-- 配置试图解析:制图名称:解析器 将试图逻辑名解析为/WEB-INF/jsp/<viewName>.jsp   实际的物理试图 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
   <property name="prefix" value="/WEB-INF/jsp/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>
<!-- 配置自动扫描的包 -->
<context:component-scan base-package="com.Grea

test.Springmvc"></context:component-scan>
三、创建请求处理器类
@Controller
//请求处理器类
@RequestMapping("/SpringMVC")
public  class Hellow{
	private static final String SUCCESS = "success";
	
	/*REST  表现层状态转换  就是Http协议里面 

 四个表示操作方式的动词  GET,POST,PUT,DELETE 分别对应四中操作
	 * GET  获取资源  POST新建资源  PUT 更新资源  DELETE 删除资源 
	 * 
	 * HiddenHttpMethodFilter通过过滤器  可以将DELETE PUT请求转换为表准的http方法    
	 * get--》
	 * post---》寻找是否有一个名字为_method这样一个请求方式;DELETE,PUT如果没有  就是post
	 * */
	 
	@RequestMapping(value="/testRestput/{id}",method=RequestMethod.PUT)
	public  String testRestput(@PathVariable("id")  Integer id){
		System.out.println("testRestput..."+id);
		return SUCCESS;

	}
	@RequestMapping(value="/testRestDELETE/{id}",method=RequestMethod.DELETE)
	public  String testRestDELETE(@PathVariable("id")   Integer id){
		System.out.println("testRestDELETE..."+id);
		return SUCCESS;
	}
	//添加一个新的  新建
	@RequestMapping(value="/testRestpost",method=RequestMethod.POST)
	public  String testRestpost(){
		System.out.println("testRestpost...");
		return SUCCESS;

	}
	@RequestMapping(value="/testRestGet",method=RequestMethod.GET)
	public  String testRestGet(Integer id){
		System.out.println("testRestGet..."+id);
		return SUCCESS;
	}
	
	//POJO对象绑定请求参数  支持级联属性 自动为该对象填

充属性
	@RequestMapping("/testPojo")
	public String testPojo(User user){
		System.out.println("TETSpOJO.."+user);
		return  SUCCESS;
	}
	
    //@CookieValue获取cookieid
	@RequestMapping("/testCookie")
	public  String testCookie(@CookieValue("JSESSIONID") String cookieid){
		System.out.println("TESTcOOKIE"+cookieid);
		return SUCCESS;
	}

	
	//@RequestHeader获取请求头的信息

	@RequestMapping("/testRequestHeader")
	public String  testRequestHeader(@RequestHeader("Accept-Language") String str){
		System.out.println("testRequestHeaders"+str);
		return SUCCESS;
		
	}
	
	//@RequestParams可以绑定参数required=false指定是否可以不含该参数 defaultValue赋一个默认值
	@RequestMapping("/testRequestParams")
	public  String testRequestParams(@RequestParam(value="age",required=false,defaultValue="4") Integer age ){
		System.out.println("testRequetsParams "+ age);
		return SUCCESS;
	}

	//可以将URL中的占位符参数绑定到 控制其处理的方法的参数中 
	@RequestMapping("/testPathValue/{id}")
	public  String testPathValue(@PathVariable("id") Integer id){
		System.out.println("testPathValue"+id);
		return SUCCESS;
	}
	
	@RequestMapping("/*/testAnt")
	public  String testAnt(){
		System.out.println("testAnt");

		return SUCCESS;
	}
	//eclipse有问题出不来  火狐可以
	@RequestMapping(value="/testhHeaders",headers="Accept-Language=zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2")
	public String testHeaders(){
		System.out.println("testHeaders");
		return SUCCESS;
	}
	//method =RequestMethod  来指定URL的请求方式 
	@RequestMapping(value="/testmethod",method=RequestMethod.GET)
	public String testMethod(){
		System.out.println("testMethod");

		return SUCCESS;
	}
	//params=指定URL中要包含或不包含的某些值  精确化 URL
	@RequestMapping(value="/testParams",params={"username","password!=1234"})
	public String testParams(){
		System.out.println("TESTpARAMS");
		return SUCCESS;
	}
	
	
   /*@RequestMapping(“/hellow”)映射请求   指定处理哪些URL请求  
    * 在控制器的类定义  以及方法定义都可以标住//处理所有URL为hellow的请求
    * InternalResourceViewResovler

    * prefix + returnVal + suffix  (success.jsp)
    * */
	@RequestMapping("/hellow")
	public  String  hellow(){
		System.out.println("Hellow  Word!!!");
		return SUCCESS; 
	}
四、JSP页面
index.jsp
<form action="SpringMVC/testRestput/13" method="post">
<input type="hidden" name="_method" value="PUT"/>
<input type="submit" value="提交put"/>
</form>
<form action="SpringMVC/testRestDELETE/12" method="post">
<input type="hidden" name="_method" value="DELETE"/>
<input type="submit" value="提交DELETE"/>

</form>

<form action="SpringMVC/testRestpost" method="post">
<input type="text" name="id" value="23" />
<input type="submit" value="提交"/>

</form>
<form action="SpringMVC/testRestGet" method="get">
<input type="text" name="id" value="23"/>
<input type="submit" value="提交"/>

</form>

<form action="SpringMVC/testPojo" >
 <input type="text" name="username"/>
 <input type="text" name="sex"/>

 <!-- 级联属性 -->
 <input type="text" name="man.age"/>


  <input type="submit" value="提交"/>




</form>

<a href="SpringMVC/testRequestHeader"> testRequestHeader </a>
<br><br>
<a href="SpringMVC/testCookie"> testCookie </a>
<br><br>
<a href="SpringMVC/testRequestParams"> testRequestParams </a>
<br><br>
<a href="SpringMVC/testPathValue/3"> testPathValue </a>
<br><br>
<a href="SpringMVC/testhHeaders"> testhHeaders </a>
<br><br>
<a href="SpringMVC/asdfdfdf/testAnt"> testAnt </a>
<br><br>
<a href="SpringMVC/testParams?username=1212&password=1212"> testParams </a>
<br><br>
<form action="SpringMVC/testmethod" method="post">
   <input type="submit" value="Method"/>
</form>
<a href="SpringMVC/testmethod"> testmethod </a>
<br><br>
<a href="hellow"> hellow </a>
<br><br>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值