编译工具:eclipse

1)创建Web工程:spring_web_helloworld

2)导入所需jar包:

3)创建实体类:同上篇博文

4)创建配置文件hellobean.xml。同上篇博文

不过,注意,本项目中配置文件放的位置为WebContent目录下。

5)实例化Spring容器:在web.xml中配置Spring容器。在启动Web工程时,自动创建实例化Spring容器。同时,在web.xml中指定Spring的配置文件。在启动Web工程时,自动关联到Spring容器中,并对Bean实施管理。

在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>spring_2_web_helloworld</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list> <!-- 以下为配置内容 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>hellobean.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> </web-app>

6)设计JSP页面,采用脚本代码,获取Spring容器,从容器内获取对象并显示。

注意,导入相关类和获取Spring核心容器。

在WebContent目录下新建show.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.edu.HelloBeans,org.springframework.web.context.WebApplicationContext"%>
<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %>
<!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>spring应用示例</title>
</head>
<body>
<%
//首先通过request对象,获取Web服务器容器
ServletContext sc=request.getServletContext();
//利用spring框架提供的静态方法,从Web服务器中获取Spring容器
WebApplicationContext wact=WebApplicationContextUtils.getRequiredWebApplicationContext(sc);
//声明一个对象
HelloBeans student;
//从实例化的容器wact中,分别获取3个学生对象并显示信息
student=(HelloBeans)wact.getBean("stu1");
//利用JSP脚本获取数据并显示
%>
姓名:<%=student.getName() %><br>
课程名:<%=student.getCourse() %><br>
成绩:<%=student.getScore() %><br>
<hr> <%
student=(HelloBeans)wact.getBean("stu2");
%> 姓名:<%=student.getName() %><br>
课程名:<%=student.getCourse() %><br>
成绩:<%=student.getScore() %><br>
<hr> <%
student=(HelloBeans)wact.getBean("stu3");
%> 姓名:<%=student.getName() %><br>
课程名:<%=student.getCourse() %><br>
成绩:<%=student.getScore() %><br>
<hr>
</body>
</html>

7)部署运行。

本篇参考书籍《Java EE框架开发技术与案例教程》

Spring学习之旅(二)极速创建Spring框架java Web工程项目的更多相关文章

  1. Spring学习之旅(八)Spring 基于AspectJ注解配置的AOP编程工作原理初探

    由小编的上篇博文可以一窥基于AspectJ注解配置的AOP编程实现. 本文一下未贴出的相关代码示例请关注小编的上篇博文<Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AO ...

  2. Spring学习之旅(四)Spring工作原理再探

    上篇博文对Spring的工作原理做了个大概的介绍,想看的同学请出门左转.今天详细说几点. (一)Spring IoC容器及其实例化与使用 Spring IoC容器负责Bean的实例化.配置和组装工作有 ...

  3. Spring学习之旅(三)Spring工作原理初探

    详细的废话相信很多书籍视频资料都已经很多了,这里说几个小编个人认为对于理解Spring框架很重要的点.欢迎批评指正. 1)Spring的控制反转 先说说“依赖”,在面向对象程序设计中,类A中用到了类B ...

  4. Spring学习笔记(二) 初探Spring

    版权声明 笔记出自<Spring 开发指南>一书. Spring 初探 前面我们简单介绍了 Spring 的基本组件和功能,现在我们来看一个简单示例: Person接口Person接口定义 ...

  5. Spring学习之旅(二)--容器

    在 Spring 应用中,所有的对象都在 Spring 容器(container) 里,容器负责对象的创建.配置.装配并管理它们的整个生命周期. Spring 容器 Spring 容器 并不是只有一个 ...

  6. spring boot学习笔记(二)创建spring boot项目

    用eclipse(需要用高版本,要不然弄不出来):new →Spring Sarter Project 用IDEA:一般默认 一般默认 入门级的先 剩下的一般默认... 一.项目至少有下面的东西,里面 ...

  7. Spring学习之旅(六)Spring AOP工作原理初探

    AOP(Aspect-Oriented  Programming,面向切面编程)是Spring提供的关键技术之一. AOP基于IoC,是对OOP(Object-Oriented Programming ...

  8. Spring学习之旅(十)--MockMvc

    在之前的 Spring学习之旅(八)--SpringMVC请求参数 我们是通过在控制台输出来验证参数是否正确,但是这样做实在是太耗时间了,我们今天来学习下 MockMvc,它可以让我们不需要启动项目就 ...

  9. idea 创建 SSM + maven Java Web 项目流程

    idea 创建 SSM + maven Java Web 项目流程 一.idea 中选择File,New Project 新建项目 二.选择Maven,勾选上面的Create from archety ...

随机推荐

  1. 一个简单的实例演示vuex模块化和命名空间

    因为Vuex Store是全局注册的,不利于较大的项目,引入模块分离业务状态和方法,引入命名空间解决不同模块内(getters,mutaions,actions)名称冲突的问题 ----------- ...

  2. 分布式事务之深入理解什么是2PC、3PC及TCC协议?

    导读 在上一篇文章<[分布式事务]基于RocketMQ搭建生产级消息集群?>中给大家介绍了基于RocketMQ如何搭建生产级消息集群.因为本系列文章最终的目的是介绍基于RocketMQ的事 ...

  3. JVM源码分析之SystemGC完全解读

    JVM源码分析之SystemGC完全解读 概述 JVM的GC一般情况下是JVM本身根据一定的条件触发的,不过我们还是可以做一些人为的触发,比如通过jvmti做强制GC,通过System.gc触发,还可 ...

  4. 【EF6学习笔记】(六)创建复杂的数据模型

    本篇原文地址:Creating a More Complex Data Model 本篇讲的比较碎,很多内容本人认为并不是EF的内容,既然原文讲了,那就按照原文来学习吧... 第1步:通过属性来定制化 ...

  5. 安装postgreSQL出现configure: error: zlib library not found解决方法

    ./configure --prefix=/usr/local/pgsql ..... configure: error: zlib library not foundIf you have zlib ...

  6. PYTHON 格式字符串中的填充符

    使用 %类型 来填充 常用的有:%s 填充字符串类型:%d 填充 int 类型:这里是沿用了 C语言中 printf() 函数中的格式,更多的信息请查看:完整列表 name = 'tommy' mes ...

  7. 关于Flutter初始化流程,我必须告诉你的是...

    1. 引言 最近在做性能优化的时候发现,在混合栈开发中,第一次启动Flutter页面的耗时总会是第二次启动Flutter页面耗时的两倍左右,这样给人感觉很不好.分析发现第一次启动Flutter页面会做 ...

  8. solr概况

    1.solr对比lucence lucence vs solr 类似于引擎 vs 汽车. 2. solr架构 3. 对应lucence/solr源码分析 RequestHandler 处理一个url请 ...

  9. thinkphp自动创建数据对象分析

    thinkphp有一个自动创建数据对象的create方法,核心代码如下 public function create($data='',$type='') { // 如果没有传值默认取POST数据 i ...

  10. 分布式系统监视zabbix讲解七之分布式监控--技术流ken

    分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...