SpringMVC 入门 -- Handler编写

JavaEE学习之SpringMVC框架(第一篇:快速入门) 一、MVC设计模式概念 Controller:负责接收并处理请求,最终响应给客户端 Model:模型数据,业务逻辑 View:呈现模型,与用户进行交互 二、SpringMVC介绍 2.1 什么是SpringMVC 目前最流行的实现MVC设计模式的开发框架。 属于Spring框架的一个后续产品。Spring框架的一个子模块,二者可以很好的结合使用,不需要整合。 2.2 SpringMVC核心组... 阅读详情

本文仅作代码的记录

结构:

libaraies:


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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>SpringMVCTest</display-name>
  <!-- Spring 前端控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- contextConfigLocation配置springMVC加载的配置文件(配置处理器、映射器、适配器等) -->
  	<!-- 默认加载/WEB-INF/SERVLET名称-servlet.xml(springmvc-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>
  	<!-- 第一种 *.action 访问以action结尾的 -->
  	<!-- 第二种 / 所有地址都解析。所以要配置静态资源不进行解析。使用此中方法可以实现RESTful风格 -->
  	<!-- 第三种 /* 这样配置不对。使用这种配置最终要转发到jsp页面时,仍然会由DispatcherServlet解析jsp地址,不能根据jsp找到handler,会报错 -->
  	
  	<url-pattern>*.action</url-pattern>
  	
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <filter>
  	<filter-name>myFilter</filter-name>
  	<filter-class>com.yrsoft.filter.MyFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>myFilter</filter-name>
  	<servlet-name>springmvc</servlet-name>
  </filter-mapping>
</web-app>


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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
					http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
					http://www.springframework.org/schema/context 
					http://www.springframework.org/schema/context/spring-context-3.0.xsd
					http://www.springframework.org/schema/mvc
					http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
					http://www.springframework.org/schema/aop
					http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
					http://www.springframework.org/schema/tx
					http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
					">
					<!--  配置handler-->
					<bean name="/queryuser.action" class= "com.yrsoft.controller.ItemsController1"></bean>
					
					
					<!--  处理器适配器
						所有的处理器适配器都实现HandlerAdapter接口
					-->
					<bean class = "org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
					<!--  处理器映射器
						将bean的name当作url进行查找。需要在配置Handler时指定beanname(就是url)
					-->
					<bean class = "org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
					<!--  视图解析器
						解析jsp视图,默认使用jstl路径
					-->
					<bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver"/>
					
</beans>


controller

package com.yrsoft.controller;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.yrsoft.po.Users;

/**
 * 实现Cintroller接口的处理器,一定要实现Controller接口
 *
 */
public class ItemsController1 implements Controller{
	@Override
	public ModelAndView handleRequest(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		//调用service查找数据。查询用户列表。
		
		List<Users> userList = new ArrayList<Users>();
		//填充静态数据
		Users user1 = new Users("admin","123");
		Users user2 = new Users("123", "345");
		userList.add(user1);
		userList.add(user2);
		
		//返回ModelAndView
		ModelAndView modelAndView = new ModelAndView();
		//相当于request的setAttribute,在jsp页面中通过userList后去数据
		modelAndView.addObject("userList",userList);
		
		//指定视图
		modelAndView.setViewName("/WEB-INF/jsp/users/userList.jsp");
		
		
		return modelAndView;
	}

}


MyFilter

package com.yrsoft.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import com.yrsoft.po.Users;
/**一定要实现Filter接口*/
public class MyFilter implements Filter {
	@Override
	public void destroy() {
		System.out.println("Destroy ");
	}
	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest servletRequest = (HttpServletRequest) request;
		HttpSession session = servletRequest.getSession();
		Users user = (Users) session.getAttribute("user");
		if (user == null ) {
			System.out.println("注入User ");
			user = new Users("张三","123");
			session.setAttribute("user", user);
			request.getRequestDispatcher("/WEB-INF/jsp/users/userList.jsp").forward(request, response);
		} else {
			System.out.println(user.toString());
			chain.doFilter(request, response);
		}
//		chain.doFilter(request, response);
	}
	@Override
	public void init(FilterConfig arg0) throws ServletException {
		System.out.println("init");
	}

}


chain.doFilter() 会再次进入这个filter执行doFilter,还没研究原因。

SpringMVC框架实现Handler处理器的三种写法 主要介绍了SpringMVC框架实现Handler处理器的三种写法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 立即下载

相关推荐

用Cadence IC618仿真双平衡吉尔伯特混频器:从原理图到后仿的完整避坑指南

本文详细介绍了在Cadence IC618环境中设计双平衡吉尔伯特混频器的全流程,包括原理图设计、仿真优化和版图实现。通过实战案例分享,重点解析了设计中的关键技巧和常见问题解决方案,帮助工程师高效完成高性能混频器设计,特别适合射频前端开发人员参考。

weixin_42656416的博客 161

SpringMVC入门学习-01-MVC架构原理分析

什么是springmvc: springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合 springmvc是一个基于mvc的web框架 什么是mvc: mvc是一个设计模式 mvc在b/s系统下的应用: Controller控制器接收用户需求,接受用户输入但自身无法完成用户需求,所以需要调用模型和视图来完成用户需求。 当单击Web页面中的超链接和发送HTM...

悲伤的面包的博客 254

手把手教你用Ollama & AnythingLLM搭建AI知识库,无需编程,跟着做就行!

本地运行大模型耗资源,需要选择较小的模型作为基础模型。在终端中运行时可能会出现 CUDA 错误,表示显存不足,导致提供的端口失效。中文支持不够完善。\3. 文中提到的技术软件工具有:Ollama、Chatbox、Open WebUI、向量数据库、嵌入模型、本地模型 Gemma、AnythingLLM。

2401_86435672的博客 1万+

SpringMVC框架|Handler处理器的三种写法

文章目录一、SpringMVC中的处理器1.SpringMVC开发方式2.Servlet原生开发方式3.开发中常用的方式 一、SpringMVC中的处理器 配置完SpringMVC的处理器映射器,处理适配器,视图解析器后,需要手动写处理器。关于处理器的写法有三种,无论怎么写,执行流程都是①处理映射器通过@Controller注解找到处理器,继而②通过@RequestMapping注解找到用户输入...

匿名攻城狮 4374

openEuler 欧拉 安装Oracle19c数据库RPM包安装

欧拉系统安装部署oracle 19c rpm方式

陈苏漾的IT生涯 6893

AI视频生成技术研究报告:现状、挑战与展望

AI 视频生成技术概述:介绍 AI 视频生成技术的基本概念,回顾其发展历程,从早期依赖图像拼接的简单生成方式,到如今融合多种先进技术的复杂模型应用,梳理技术演进的关键节点和重要突破。同时,分析该技术在当前阶段的特点,包括生成视频的质量、速度、灵活性等方面,以及与传统视频制作方式的差异,阐述 AI 视频生成技术如何改变视频创作的流程和模式。技术实现路径分析。

daqsdfas的博客 4574

安卓Handler使用实例(含源代码

第一个是主线程处理两子线程发送的消息 第二个是点击按钮下载csdn头像并用imageView控件显示 源代码一 public class MainActivity extends AppCompatActivity { private Handler handler = new Handler(){ @Override public void handleMessage(@NonNull Message msg) { switch(ms

qq_41083450的博客 575

YOLO26改进策略【Head】| (独家改进)轻量化检测头:利用 EfficientNet 中的移动倒置瓶颈模块 MBConv 改进检测头

本文记录的是基于移动倒置瓶颈 MBConv 的 YOLO26 的检测头轻量化改进方法研究。采用了独特的倒置瓶颈结构,通过的操作以及,在高效提取特征的同时极大地降低了计算量。本文将的设计优势融入j检测头中,使其在目标检测任务中不仅能够更精准地识别各类目标,还能在计算资源有限的情况下快速响应,展现出更为卓越的实时检测能力。EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks的实现代码如下: 首先在代码中加入如下代码: 其

Limiiiing的博客 286

Android之Handler 最简单的代码实现Handler

首先先写一个简单的布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layo...

你的外祖父的博客 561

3、硬件工程师笔试面试学习汇总——器件篇目录(2025版本)

硬件工程师笔试面试学习

XU157303764的博客 7620

在Allegro设计界面中如何修改封装焊盘

在高密度板的情况下,SUIPLA(支持内层没有的焊盘摘掉)打勾,在高密度板的情况下,内层没有的焊盘摘掉可以增加走线的空间。3、修改完焊盘后,选择File→Update to Design(更新到设计)。然后关闭焊盘修改对话框即可。,将会定期不定期更新技术文章,互相学习交流。或者点击Options选项卡下要修改的焊盘,然后点击Edit修改。在Allegro PCB设计界面中修改封装焊盘的方法。2、然后点击封装上要修改的焊盘,右击选择Edit。修改完成后如下图所示。

bhxc809751502的博客 7806

Springmvc入门(十五)Handler的查找

HandlerMapping的结构图 不论是Url注册还是@requestMapping都具有相同的父类。所以整体的查找的模板方法在父类AbstractHandlerMapping中,并且他还实现了查找拦截器的方法。查找Handler的方法也实现了,但具体还是在子类中。 public final HandlerExecutionChain getHandler(HttpServletRe...

qq_39290830的博客 1028

【法如faro】三维激光软件Scene2023数据处理(自动配准并转换坐标)流程

法如faro Scene2023数据处理(自动配准并转换坐标)的主要流程为:新建项目、导入数据、处理、自动注册、坐标系转换、模型导出立和面模型导出等。

智慧空间实验室 2382

SpringMVC 的入门(DispatcherServlet,HandlerMapping,Handler,HandlAdapter,View Resolver,View)

Ø 第三步:处理器映射器HandlerMapping向前端控制器返回Handler,HandlerMapping会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器对象,多个HandlerInterceptor拦截器对象),通过这种策略模式,很容易添加新的映射策略。Ø 第八步:前端控制器请求视图解析器去进行视图解析 (根据逻辑视图名解析成真正的视图),通过这种策略很容易更换其他视图技术,只需要更改视图解析器即可。用户请求到达前端控制器,它就相当于mvc模式中的c,

0 1712

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

java-sprin-mvc-day1-06springmvc入门程序-Handler编写调试

java-sprin-mvc-day1-06springmvc入门程序-Handler编写调试原创:徐工2018-4-24 21.46

xwx7712的专栏 276

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SpringMVC —— 入门学习

1、SpringMVC简介 spring的 ioc和 aop解决的是:1.程序的依赖关系 2.把公共的部分抽取出来,进行统一管理和调用。 SpringMVC是一种基于java的实现MVC设计模型的请求驱动类型的轻量级web框架,用于表现层(web)。 MVC: M:model(模型) V:view(视图) C:controller(控制器) 2、入门案例 @RequestMapping:请求的映射:他要和浏览器请求url保持一致。 springmvc.xml <?xm...

weixin_56697114的博客 375

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SpringMVC-学习笔记01【SpringMVC概述及入门案例】

SpringMVC-学习笔记01【SpringMVC概述及入门案例】

upward 1364

SpringMVC之入门案例

入门案例的需求

gaohanjie123的博客 263

springMVC入门

springMVC入门 1 基本配置 1.1 项目配置 新建maven父项目springMVC,导入基础依赖jar包: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependen

qtds114的博客 289

SpringMVC开发流程

SpringMVC开发流程1. SpringMVC概述1.1 SpringMVC概念1.2 SpringMVC原理1.3 SpringMVC优势2. MVC模式回顾3. 入门程序3.1 创建maven项目3.2 pom.xml文件添加依赖和插件3.3 创建Spring和SpringMVC的配置文件3.3.1 创建Spring配置文件applicationContext.xml文件3.3.2 创建SpringMVC的配置文件springmvc.xml3.4 在web.xml中进行Spring和SpringM

Joseph的博客 2478

SpringMVC框架(一)

一、概述 SpringMVC是一种基于Java的实现了MVC设计模式的Web框架,它也是属于Spring旗下的一个子项目。 使用SpringMVC框架的好处: 简化web层的开发工作,提高开发效率; 因为它是Spring框架的一部分,不需要额外导入jar包; 功能强大,可以很好与其他技术整合; 二、入门实例 第一步:由于springmvc是spring框架的一部分,所以只需要把spring里面...

zhongliwen1981的专栏 1007

SpringMVC学习记录一——入门介绍和入门程序

1 springmvc框架 1.1 什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。 springmvc是一个基于mvc的web框架。 1.2 mvc在b/s系统 下的应用 mvc是一个设计模式,mvc在b/s系统 下的应用: 1.3 s...

dh3939的博客 266

SpringMVC

本文主要介绍了Spring MVC的相关知识,包括Spring MVC的介绍、入门案例、@RequestMapping注解的使用、Handler方法的返回值、形参、Restful风格接口、SpringMVC核心流程、静态资源处理、Filter和HandlerInterceptor。供个人学习使用。

专注Java和MySQL领域知识分享 1607

java框架springmvc_springmvc(一) springmvc框架原理分析和简单入门程序

springmvc这个框架真的非常简单,感觉比struts2还更简单,好好沉淀下来学习~--WZY一、什么是springmvc?我们知道三层架构的思想,并且如果你知道ssh的话,就会更加透彻的理解这个思想,struts2在web层,spring在中间控制,hibernate在dao层与数据库打交道,而前面刚写的mybatis跟hibernate一样,与数据库打交道在dao层的另一个框架,而今天所要...

weixin_39719732的博客 385

Spring MVC——Spring MVC(1)

Spring MVC的概述,入门;RequestMapping注解;controller方法返回值

wan的博客 650

SpringMVC入门

SpringMVC入门

TestXzing的博客 730
上一篇: 注解开发spring-aop 入门
下一篇: SpringMVC+Spring+Mybatis 环境搭建问题记录(注解开发)
levelnini
博客等级 码龄14年 45粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值