热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springmvc入门(1)

一.、springmvc框架1、什么是springmvcspringmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmv
一.、springmvc框架
1、什么是springmvc
springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。springmvc是一个基于mvc的web框架。
技术分享
2、mvc在b/s系统下的应用
 mvc是一个设计模式,mvc在b/s系统 下的应用:
技术分享
3、springmvc框架
技术分享
第一步:发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping查找 Handler
         可以根据xml配置、注解进行查找
第三步:处理器映射器HandlerMapping向前端控制器返回Handler
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器去执行Handler
第六步:Handler执行完成给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
         ModelAndView是springmvc框架的一个底层对象,包括 Model和view
第八步:前端控制器请求视图解析器去进行视图解析
         根据逻辑视图名解析成真正的视图(jsp)
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染
         视图渲染将模型数据(在ModelAndView对象中)填充到request域
第十一步:前端控制器向用户响应结果
 
4、组件:
前端控制器DispatcherServlet(不需要程序员开发)。作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。
处理器映射器HandlerMapping(不需要程序员开发)。作用:根据请求的url查找Handler
处理器适配器HandlerAdapter。作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
处理器controller(需要程序员开发)注意:编写controller时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler 
视图解析器View resolver(不需要程序员开发)。作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
视图View(需要程序员开发jsp)。View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf...)
 
二、程序入门
1. 配置前端控制器,在web.xml中配置前端控制器
技术分享技术分享
 1 xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 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">
 3   <display-name>springmvcdisplay-name>
 4   
 5   
 6   <servlet>
 7       <servlet-name>springmvcservlet-name>
 8       <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
 9       
12       <init-param>
13           <param-name>contextConfigLocationparam-name>
14           <param-value>classpath:springmvc.xmlparam-value>
15       init-param>
16   servlet>
17   
18   <servlet-mapping>
19       <servlet-name>springmvcservlet-name>
20       
27       <url-pattern>*.actionurl-pattern>
28   servlet-mapping>
29   
30   
31   <welcome-file-list>
32     <welcome-file>index.htmlwelcome-file>
33     <welcome-file>index.htmwelcome-file>
34     <welcome-file>index.jspwelcome-file>
35     <welcome-file>default.htmlwelcome-file>
36     <welcome-file>default.htmwelcome-file>
37     <welcome-file>default.jspwelcome-file>
38   welcome-file-list>
39 web-app>
View Code

2、配置处理器适配器,在classpath下的springmvc.xml中配置处理器适配器。

技术分享技术分享
1 
2     <bean  class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" />
View Code

3、开发controller程序,这里使用的是静态数据。下一篇和mybatis整合后将去数据库查询数据

技术分享技术分享
 1 package com.zhang.controller;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 
 9 import org.springframework.web.servlet.ModelAndView;
10 import org.springframework.web.servlet.mvc.Controller;
11 
12 import com.zhang.domain.Items;
13 
14 public class ItemsController implements Controller {
15     @Override
16     public ModelAndView handleRequest(HttpServletRequest request,HttpServletResponse response) throws Exception {
17         //调用service查找 数据库,查询商品列表,这里使用静态数据模拟
18         List itemsList = new ArrayList();
19         //向list中填充静态数据
20         Items items_1 = new Items();
21         items_1.setName("联想笔记本");
22         items_1.setPrice(6000f);
23         items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
24         Items items_2 = new Items();
25         items_2.setName("苹果手机");
26         items_2.setPrice(5000f);
27         items_2.setDetail("iphone6苹果手机!");
28         itemsList.add(items_1);
29         itemsList.add(items_2);
30         //返回ModelAndView
31         ModelAndView modelAndView =  new ModelAndView();
32         //相当 于request的setAttribut,在jsp页面中通过itemsList取数据
33         modelAndView.addObject("itemsList", itemsList);
34         //指定视图
35         modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
36         return modelAndView;
37     }
38 
39 }
View Code

4、配置处理器映射器,在classpath下的springmvc.xml中配置处理器映射器

技术分享技术分享
1 
2     class="com.zhang.controller.ItemsController" />    
3     
4     class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
View Code

5、配置视图解析器,需要配置解析jsp的视图解析器。

技术分享技术分享
1 
2     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">bean>
View Code

6、JSP页面

技术分享技术分享
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
 4 <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt"  prefix="fmt"%>
 5 DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>查询商品列表title>
10 head>
11 <body> 
12 <form action="${pageContext.request.contextPath }/item/queryItem.action" method="post">
13 查询条件:
14 <table width="100%" border=1>
15 <tr>
16 <td><input type="submit" value="查询"/>td>
17 tr>
18 table>
19 商品列表:
20 <table width="100%" border=1>
21 <tr>
22     <td>商品名称td>
23     <td>商品价格td>
24     <td>生产日期td>
25     <td>商品描述td>
26     <td>操作td>
27 tr>
28 <c:forEach items="${itemsList }" var="item">
29 <tr>
30     <td>${item.name }td>
31     <td>${item.price }td>
32     <td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/>td>
33     <td>${item.detail }td>
34     <td><a href="${pageContext.request.contextPath }/item/editItem.action?id=${item.id}">修改a>td>
35 tr>
36 c:forEach>
37 table>
38 form>
39 body>
40 html>
View Code

7、测试,在浏览器中输入地址:http://127.0.0.1:8080/springmvc//queryItems_test.action,显示效果如下:

技术分享

三、工程目录结构:

技术分享

资源下载链接:

springmvc入门(1)


推荐阅读
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • React基础篇一 - JSX语法扩展与使用
    本文介绍了React基础篇一中的JSX语法扩展与使用。JSX是一种JavaScript的语法扩展,用于描述React中的用户界面。文章详细介绍了在JSX中使用表达式的方法,并给出了一个示例代码。最后,提到了JSX在编译后会被转化为普通的JavaScript对象。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了2015年九月八日的js学习总结及相关知识点,包括参考书《javaScript Dom编程的艺术》、js简史、Dom、DHTML、解释型程序设计和编译型程序设计等内容。同时还提到了最佳实践是将标签放到HTML文档的最后,并且对语句和注释的使用进行了说明。 ... [详细]
  • 本文总结了Java中日期格式化的常用方法,并给出了示例代码。通过使用SimpleDateFormat类和jstl fmt标签库,可以实现日期的格式化和显示。在页面中添加相应的标签库引用后,可以使用不同的日期格式化样式来显示当前年份和月份。该文提供了详细的代码示例和说明。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文讲述了作者从最初对软件工程的选择迷茫到逐渐喜欢并坚持学习的经历。作者在大学期间通过学习专业课和参与项目开发,不断挑战自己并取得成就感。虽然曾考虑过转专业和复读,但最终决定坚持学习软件工程,并为自己的未来努力奋斗。作者还提到了大学生活与自己最初的预期不同,但对此并没有太多抱怨。 ... [详细]
author-avatar
18X712BB_923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有