SpringMVC——(一)注解配置

2018-11-08 08:06:00     

一、前期准备

  • jar包准备,你可以从网上下载最新版本的jar包,也可以使用本站提供的jar包:
  • SpringMVC的jar包

二、第一个SpringMVC

1.在eclipse中新建项目【SpringMVCTest01】使用dynamic web project的方式,引入jar包到【lib】目录下,并且配置web.xml文件如下代码:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		 xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
		 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
		 http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
		 
  <display-name>SpringMVCTest01</display-name>
  <!-- 前置控制器DispatcherServlet -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<!-- 对应上一步创建全局配置文件的文件名以及目录 -->
			<param-value>/config/springMVC-servlet.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<!-- 表示要拦截所有的请求,并交由Spring MVC的后台控制器来处理 -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>
</web-app>

2.在【WebContent】目录下新建【config】文件夹用于存放springMVC-servlet.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-3.2.xsd
	 http://www.springframework.org/schema/context 
	 http://www.springframework.org/schema/context/spring-context-3.2.xsd
	 http://www.springframework.org/schema/mvc
	 http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">

	<!--批量配置Handler,指定扫描的包全称 -->
	<context:component-scan base-package="controller" />

	<!-- 设置对@Controller注解的支持 -->
	<mvc:annotation-driven />

	<!--配置视图解析器 -->
	<bean
		class="org.springframework.web.servlet.view.InternalResourceViewResolver"
		id="internalResourceViewResolver">
		<!-- 返回视图页面的前缀 -->
		<property name="prefix" value="/WEB-INF/jsp/" />
		<!-- 返回页面的后缀 -->
		<property name="suffix" value=".jsp" />
	</bean>

</beans>
  • 我们将JSP文件配置在【WEB-INF】文件夹中的【jsp】文件夹下,【WEB-INF】是 Java Web 中默认的安全目录,是不允许用户直接访问的。也就是你说你通过localhost/WEB-INF/jsp/这样的方式是永远访问不到的。所以我们需要将这告诉给视图解析器做上面这些配置

3.在【src/controller】包下新建HelloSpringMVC类

  • 在类前面加上@Controller表示该类是一个控制器
  • 在方法前面加上@RequestMapping("/hello")表示路径/hello会映射到该方法上
  • SpringMVC通过ModelAndView对象把模型和视图结合在一起

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloSpringMVC {

	@RequestMapping(value = "/hello")
	public ModelAndView Hello() {
		ModelAndView mav = new ModelAndView();
		// 类似于 request.setAttribute()
		mav.addObject("msg", "Hello,Bounds");
		//通过springMVC-servlet.xml文件的视图解析器定位到/WEB-INF/jsp/index.jsp
		mav.setViewName("index");
		return mav;
	}
}

4.在【WEB-INF/jsp】下新建index.jsp通过EL表达式显示msg的内容,并且在头标签加入isELIgnored="false对EL表达式的支持

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	${msg}
</body>
</html>

5.启动Tomcat访问http://localhost:8080/SpringMVCTest01/hello即可看到效果

三、总结

  • 用户访问/hello
  • 根据web.xml中的配置,所有的访问都会经过DispatcherServlet
  • 根据配置文件springMVC-servlet.xml扫描controller包底下定义为/hello的方法
  • 在/hello方法中指定跳转到/WEB-INF/jsp/index.jsp页面,并传递msg数据
  • index.jsp中显示msg信息

ps:本篇博客源码下载链接:https://pan.baidu.com/s/1hq8nKw9XaJdE6wkxsIJt3g 密码:3s7k
Spring——(七)事务管理

一、摘要通过例子说明:去ATM机取1000块钱,大体有两个步骤:第一步输入密码金额,银行卡扣掉1000元钱;第二步从ATM出1000元钱。这两个步骤必须是要么都执行要么都不执行。如果银行卡扣除了1000块但是ATM出钱失败的话,你将会损失1000元;如果银行卡扣钱失败但是ATM却出了1000块,那么银行将损失1000元。如何保证这两个步骤不会出现一个出现异常了,而另一个执行成功呢?事务就是用来解决这样的问题。事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。 在企业级应用程序开发中,事务管理是必不可少的技术,用来确保数据的完整性和一致性。二、编程式事务处理实现转账1.配置pom.xml文件引入需要的jar包,新增如下代码: <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>

SpringMVC——(二)接收表单数据

一、前期准备这里使用上一篇博客的源码进行改进SpringMVC——(一)注解配置二、改进【SpringMVCTest01】项目1.在【src/entity】包下新增User实体类如下代码:package entity; public class User { private String name; private String password; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } 2.在【

 发表评论