spring-mvc的demo

spring3.2-core

spring3.2-web

User.java

​
package pojo;

public class User {
	private String userName;
	private String pwd;

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getPwd() {
		return pwd;
	}

	public void setPwd(String pwd) {
		this.pwd = pwd;
	}

	@Override
	public String toString() {
		return "User [userName=" + userName + ", pwd=" + pwd + "]";
	}
	
}

​

web.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>springMVCdemo</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
       <servlet-name>mvc</servlet-name>
       <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
       <init-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>classpath:spring-mvc.xml</param-value>
       </init-param>
  </servlet>
  
  <servlet-mapping>
       <servlet-name>mvc</servlet-name>
       <url-pattern>*.action</url-pattern>
  </servlet-mapping>
  
  
  
</web-app>

 

spring-mvc.xml

 

 

(1)

<context:component-scan>详解:https://www.cnblogs.com/fightingcoding/p/component-scan.html

默认情况下,<context:component-scan>查找使用构造型(stereotype)注解所标注的类,如@Component(组件),@Service(服务),@Controller(控制器),@Repository(数据仓库)。

 

(2)

<mvc:annotation-driven>注解的作用:https://www.cnblogs.com/helloup/articles/6736127.html

<mvc:annotation-driven>会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。

<?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:p="http://www.springframework.org/schema/p"
	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.1.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.1.xsd"
>



<!-- ——————————————————————————————————————————————————————————————————————————基本配置——————————————————————————————————————————————————————————————————————— -->

	<!-- 添加控制器信息 -->
	<!-- <bean name="/userController.action" class="controller.UserController" /> -->
	<!-- 声明 BeanNameUrlHandlerMapping,使用名称映射-->
	<!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> -->
	<!-- 扫描包中的被构造型注解所标记的类,取代了上面的控制器信息加上名称映射 -->
	<context:component-scan base-package="controller"></context:component-scan>
	
	
	<!-- <bean class="org.springframework.web.servlet.mvc.annotation. DefaultAnnotationHandlerMapping "></bean>
	<bean class="org.springframework.web.servlet.mvc.annotation. AnnotationMethodHandlerAdapter "></bean> -->
	<!-- 基于annotation-driven的注解,取代了上面的两个bean -->
	<mvc:annotation-driven />
	
	
	<!-- 支持servlet与jsp视图解析,可进行进一步处理,此步可省略, -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	      <!-- 可以加前缀或后缀 -->
	      <property name="prefix" value="/"/>
	      <property name="suffix" value=".jsp"/>
	</bean>
	
</beans>

 

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*"
    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>index</title>
</head>
<body>
    <form action="userController/save.action" method="post">
                           姓名:<input name="userName" type="text"/><br>
                           密码:<input name="pwd" type="password"/><br>
         <input type="submit"/>
    </form>
</body>

 

 

ModelMap和ModelAndView的作用:https://blog.csdn.net/baple/article/details/16876979

 

userController.java

​
package controller;

import javax.servlet.ServletContext;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.servlet.ModelAndView;

import pojo.User;

@Controller
@RequestMapping("/userController")
@SessionAttributes("user")/*将ModelMap里的属性"user"装进session(该注解用于所有方法所共享的属性)*/
public class UserController{
	/*
	 * 如何获取request,session,application
	 *    下边是其中的方式之一。
	 */
	@Autowired
	ServletContext appliContext;
	
	/*返回ModelAndView*/
	/*ModelMap:将其属性装进request里*/
	@RequestMapping("/save")
	public ModelAndView fromRequest(User user,ModelMap map){
		System.out.println("save:"+user);
		map.addAttribute("user", user);
		return new ModelAndView("forward:/WEB-INF/view/user.jsp");
	}
	
	/*返回String*/
	/*@ModelAttribute("user"):将session里的属性"user"装进ModelMap即request*/
	@RequestMapping("/update")
	public String fromSession(@ModelAttribute("user")User user){
		System.out.println("update:"+user);
		user.setUserName("adm");
		return "forward:/WEB-INF/view/user.jsp";
	}
	

}

​

 

user.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.*" 
    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>user</title>
</head>
<body>
ModelMap:将其属性"user"装进request里:   ${requestScope.user}<br>
将ModelMap里的属性"user"装进session:  ${sessionScope.user}<br>
<a href="/springMVCdemo/userController/update.action">将session中的属性"user"装进ModelMap</a>
</body>
</html>

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
spring-boot三层demo是一个基于spring-boot框架开发的三层架构应用的示例。 三层架构是一种软件设计模式,将应用程序分为表示层、业务逻辑层和数据访问层。这种架构能够提高代码的可读性、可维护性和可扩展性。 在这个demo中,表示层负责接收用户的请求,将请求转发给业务逻辑层。业务逻辑层处理业务逻辑,对请求进行处理,并调用数据访问层进行数据的读取或写入。数据访问层负责访问数据库或其他数据存储系统,提供对数据的增删改查等操作。 在spring-boot三层demo中,可以使用Spring MVC作为表示层,通过注解方式定义Controller,实现对请求的映射和处理。业务逻辑层可以使用@Service注解进行标记,使用依赖注入的方式获取数据访问层的实例,完成业务逻辑的处理。数据访问层可以使用Spring Data JPA等框架进行数据库操作,通过注解方式定义数据访问层的接口和实现类。 在这个demo中,可以实现一些简单的功能,比如用户管理。用户通过表示层的请求添加、删除、修改或查询用户信息。表示层将请求传递给业务逻辑层,业务逻辑层处理用户信息的校验、逻辑判断和业务操作,并调用数据访问层对数据库进行相应的增删改查。最后,数据访问层将操作结果返回给业务逻辑层,业务逻辑层将结果返回给表示层,表示层将结果展示给用户。 通过这个demo,可以帮助开发人员了解和掌握spring-boot三层架构的应用开发过程,提高应用程序的可维护性和可扩展性,并促进团队的协作开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值