java实训笔记_SpringMVC入门案例

1 前言

上一篇对Spring的文章进行了一个小的总结
现在开始学习Spring MVC了
这一篇讲一讲创建一个Spring MVC项目

2 本篇内容

本篇介绍创建使用注解开发的Spring MVC,实现简单的访问网页功能。

3 使用注解开发的Spring MVC项目创建

3.1 pom.xml

首先创建一个Maven项目,可见java实训日记_Spring项目搭建,只是pom.xml中写入的依赖不同

		<!-- springmvc -->
		<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.2.7.RELEASE</version>
		</dependency>
		<!-- servlet -->
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
			<version>4.0.1</version>
			<scope>provided</scope>
		</dependency>

3.2 web.xml

在web.xml中注册拦截器,关键在于 classpath:springauto 这一句,这一句指明了配置文件,位于src/main/resources下的springauto.xml文件

		<servlet>
		<servlet-name>springDispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springauto.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<!-- Map all requests to the DispatcherServlet for handling -->
	<servlet-mapping>
		<servlet-name>springDispatcherServlet</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

3.3 springauto.xml

编写springauto.xml,base-package指明了要扫描的包,prefix和suffix指明了文件的前缀和后缀。

<?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"
	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.3.xsd">

<!-- 开启注解扫描 -->
<context:component-scan base-package=" "></context:component-scan>
<!-- 配置注解处理器映射器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<!-- 配置注解处理器适配器 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<property name="prefix" value="/WEB-INF/jsps/"></property>
	<property name="suffix" value=".jsp"></property>
</bean>

</beans>

3.4 HelloController

使用@Controller指明是控制器,@RequestMapping指明访问的路径

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
	@RequestMapping("/hello.do")
	public String hello() {
		return "index";
	}
}

3.5 index.jsp

简单输出一句话

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
welcome
</body>
</html>

3.6 运行结果

浏览器访问 localhost:8080/SpringMVCDemo/hello.do出现下列结果,说明部署成功。
SpringMVCDemo要替换成项目名称,8080要换成自己tomcat的端口。
在这里插入图片描述

3.7 项目结构

包名有个人信息,打码了,多出来的文件是因为后面开发时新建的,没有也没关系。
在这里插入图片描述

结语

1.tomcat的版本与jdk版本之间,jdk高版本配tomcat低版本可行,tomcat高版本配jdk低版本不可行。
2.Spring MVC没讲什么底层实现的东西,都是直接做,出来的问题都比较零散,接下来准备按问题和解决方法来写,方便查阅。
3.开发中也可以使用xml配置文件的方式来做,但是比较麻烦,就不介绍了。

参考链接

1.tomcat对应jdk版本问题(要看评论)

首先,需要搭建好一个基本的SpringMVC项目。接下来,我们可以按照以下步骤来实现商品列表的展示: 1.创建一个商品类,包含商品id、商品名称、商品价格等属性。 2.创建一个商品服务类,包含获取商品列表的方法。 3.创建一个控制器类,使用@RequestMapping注解来映射请求路径。 4.在控制器类中注入商品服务类,并在@RequestMapping注解中指定返回的视图和模型数据。 5.创建一个jsp页面,用来展示商品列表。 以下是示例代码: 商品类: ```java public class Product { private int id; private String name; private double price; // getter和setter方法省略 } ``` 商品服务类: ```java @Service public class ProductService { public List<Product> getProductList() { // 这里可以从数据库、缓存或其他数据源中获取商品列表 List<Product> productList = new ArrayList<>(); productList.add(new Product(1, "商品1", 10.0)); productList.add(new Product(2, "商品2", 20.0)); productList.add(new Product(3, "商品3", 30.0)); return productList; } } ``` 控制器类: ```java @Controller public class ProductController { @Autowired private ProductService productService; @RequestMapping("/product/list") public String list(Model model) { List<Product> productList = productService.getProductList(); model.addAttribute("productList", productList); return "product/list"; } } ``` jsp页面: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>商品列表</title> </head> <body> <h1>商品列表</h1> <table> <thead> <tr> <th>编号</th> <th>名称</th> <th>价格</th> </tr> </thead> <tbody> <c:forEach items="${productList}" var="product"> <tr> <td>${product.id}</td> <td>${product.name}</td> <td>${product.price}</td> </tr> </c:forEach> </tbody> </table> </body> </html> ``` 在浏览器中访问http://localhost:8080/product/list,即可看到商品列表的展示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值