天天看点

SpringMVC框架练习

1. 先创建一个Web功臣,然后导入Spring 包

SpringMVC框架练习

2.配置xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>springmvc20180815</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
   <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- 配置DispatcherServlet的初始化参数,指定springmvc的主配置文件路径 -->
  	<!-- 如果不指定,则默认找 /WEB-INF/(servlet-name)-servlet.xml -->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>
           

3.创建一个springmvc.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
		http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

	<!-- 配置自定扫描的包 -->
	<context:component-scan base-package="com.test.controller"></context:component-scan>

	<!-- 配置视图解析器: 如何把 handler 方法返回值解析为实际的物理视图 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/"></property>
		<property name="suffix" value=".jsp"></property>
	</bean>
</beans>
           

 4.创建com.test.controller包,写controller类的代码,实现功能:

package com.test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.bind.annotation.RenderMapping;

/**
 * RquestMapping用法示例
 * 1. 基本用法,指定一个url
 * 2. 用value指定多个url
 * 3. 在类上使用,是作为基准路径,每个方法的url都要加上基准路径访问
 * @author Administrator
 *
 */
@Controller
@RequestMapping("/index")
public class Test1controller {
	
	@RequestMapping(value= {"/t1","/list"})
	public String list() {
		System.out.println("多个路径");
		return "success";
	}
	
	@RequestMapping("/more")
	public String more() {
		System.out.println("基准路径");
		return "success";
	}
	
}
           
package com.test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.bind.annotation.RenderMapping;

/**
 * RquestMapping用法示例2
 * 使用method参数限定http的提交方法
 * @author Administrator
 *
 */
@Controller
public class Test2controller {
	
	@RequestMapping(value="/ff")
	public String ff(String age) {
		System.out.println("不分post和get方式提交");
		System.out.println(age);
		return "form";
	}
	
	@RequestMapping("/pp")
	public String postff(String age) {
		System.out.println("post提交表单");
		System.out.println(age);
		return "form";
	}
	
}
           
package com.test.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.bind.annotation.RenderMapping;

/**
 * RquestMapping用法示例3
 * 使用{}占位符,在url中传输参数
 * @author Administrator
 *
 */
@Controller
public class Test3controller {
	
	@RequestMapping("/user")
	public String showUser(Integer userid) {
		System.out.println("正在查找用户:"  + userid);
		return "success";
	}
	@RequestMapping("/user1/{id}")  //使用占位符接收参数
	public String showUser1(@PathVariable("id") Integer userid) {
		System.out.println("正在查找用户:"  + userid);
		return "success";
	}
	@RequestMapping("/user2/{id}/book/{bookid}")  //使用占位符接收参数
	public String showUser2(@PathVariable("id") Integer userid, @PathVariable Integer bookid) {
		System.out.println("正在查找用户:"  + userid);
		System.out.println("正在查找书籍:"  + bookid);
		return "success";
	}
	
}
           

jsp文件:

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>SpringMVC框架</h1>
</body>
</html>
           

form.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="pp" method="post">
	<input type="text" name="age"/>
	<input type="submit" value="提交" />
</form>
</body>
</html>
           

注意:当controller类中写了返回jsp页面命名以后,就的先创建对应的jsp文件,才能运行,也不需要更改xml文件配置,特别省事,是一个特别实用的框架