HelloWorld实例(springmvc版)

本文将对应用springmvc实现HelloWorld打印,其步骤如下:

1、加入相关jar包,在maven项目里就是在pom.xml文件中引入相关实际依赖

2、在web.xml文件中配置DispatcherServlet

3、加入springmvc配置文件

4、编写处理请求的请求处理器,并标识为处理器

5、编写视图

下面通过代码具体实现:

1、配置pom.xml文件,相当于加入jar包

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 4  5     <modelVersion>4.0.0</modelVersion> 6  7     <groupId>com.wn.third-ssmm</groupId> 8     <artifactId>third-ssmm</artifactId> 9     <version>1.0-SNAPSHOT</version>10     <packaging>war</packaging>11 12     <properties>13         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>14         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>15         <spring.version>4.2.4.RELEASE</spring.version>16         <java.version>1.8</java.version><!-- 官方推荐 -->17     </properties>18 19     <!-- 引入实际依赖 -->20     <dependencies>21         <!-- spring -->22         <dependency>23             <groupId>org.springframework</groupId>24             <artifactId>spring-core</artifactId>25             <version>${spring.version}</version>26         </dependency>27         <dependency>28             <groupId>org.springframework</groupId>29             <artifactId>spring-beans</artifactId>30             <version>${spring.version}</version>31         </dependency>32         <dependency>33             <groupId>org.springframework</groupId>34             <artifactId>spring-context</artifactId>35             <version>${spring.version}</version>36         </dependency>37         <dependency>38             <groupId>org.springframework</groupId>39             <artifactId>spring-web</artifactId>40             <version>${spring.version}</version>41         </dependency>42         <dependency>43             <groupId>org.springframework</groupId>44             <artifactId>spring-webmvc</artifactId>45             <version>${spring.version}</version>46         </dependency>47         <dependency>48             <groupId>org.springframework</groupId>49             <artifactId>spring-jdbc</artifactId>50             <version>${spring.version}</version>51         </dependency>52         <!-- import lombok -->53         <!-- 作用:在源码中没有getter和setter方法,但是在编译生成的字节码文件中有getter和setter方法 -->54         <dependency>55             <groupId>org.projectlombok</groupId>56             <artifactId>lombok</artifactId>57             <version>1.16.8</version>58             <scope>provided</scope>59         </dependency>60     </dependencies>61 62     <build>63         <plugins>64             <plugin>65                 <groupId>org.apache.maven.plugins</groupId>66                 <artifactId>maven-compiler-plugin</artifactId>67                 <configuration>68                     <source>1.8</source>69                     <target>1.8</target>70                     <encoding>utf-8</encoding>71                 </configuration>72             </plugin>73         </plugins>74     </build>75 </project>

2、在web.xml文件中配置DispatcherServlet

DispatcherServlet的作用:如果在某个方法上配置了@RequestMapping("/helloworld"), 当浏览器访问helloworld时,DispatcherServlet会将这个请求发送给      @RequestMapping("/helloworld")所在的方法上,执行这个方法 。

 1 <?xml version="1.0" encoding="utf-8"?> 2 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 5     <!-- 配置DispatcherServlet --> 6     <!-- 配置DispatcherServlet的作用是:如果在某个方法上配置了@RequestMapping("/helloworld"), 7          当浏览器访问helloworld时,DispatcherServlet会将这个请求发送给@RequestMapping("/helloworld") 8          所在的方法上,执行这个方法 --> 9     <servlet>10         <servlet-name>SpringDispatcherServlet</servlet-name>11         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>12         <!-- 配置DispatcherServlet的一个初始化参数:配置springMVC配置文件的位置和名称 -->13         <init-param>14             <param-name>contextConfigLocation</param-name>15             <param-value>classpath*:springmvc.xml</param-value>16         </init-param>17     <!--SpringDispatcherServlet在当前web应用被加载的时候被创建,而不是等第一次请求的时候被创建  -->18         <load-on-startup>1</load-on-startup>19     </servlet>20     <servlet-mapping>21         <servlet-name>SpringDispatcherServlet</servlet-name>22         <url-pattern>/</url-pattern>  <!-- 可以应答所有请求 -->23     </servlet-mapping>24     <welcome-file-list>25         <welcome-file>/index.jsp</welcome-file>26     </welcome-file-list>27 </web-app>

3、配置springmvc.xml文件

 1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  4     xmlns:context="http://www.springframework.org/schema/context" 5     xmlns:mvc="http://www.springframework.org/schema/mvc" 6     xsi:schemaLocation="http://www.springframework.org/schema/beans 
 7                            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 8                            http://www.springframework.org/schema/context 
 9                            http://www.springframework.org/schema/context/spring-context-3.2.xsd10                            http://www.springframework.org/schema/mvc 
11                            http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">12     <!-- 配置自动扫描的包 -->13     <context:component-scan base-package="com.atguigu.springmvc"/>14     <!-- 配置视图解析器:如何把handler方法返回值解析为实际视图 -->15     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">16         <property name="prefix" value="/WEB-INF/views/"/>17         <property name="suffix" value=".jsp"/>18     </bean>19 </beans>

4、编写处理请求的请求处理器,并标识为处理器

 1 package com.atguigu.springmvc.handlers; 2  3 import org.springframework.stereotype.Controller; 4 import org.springframework.web.bind.annotation.RequestMapping; 5  6 @Controller //这样标识后HelloWorld成为控制器,在springmvc叫做handler处理器或请求处理器 7 public class HelloWorld { 8     /** 9      * 1、使用@RequestMapping注解来映射请求的URL10      * 2、返回值会通过视图解析器解析为实际的物理视图:对于InternalResourceViewResolver视图解析器,会做如下解析:11      *    通过prefix+returnvel+后缀这样的方式得到实际的物理视图,然后转发12      *    /WEB-INF/views/success.jsp13      * @return14      */15     @RequestMapping("/helloworld")16     public String hello() {17         System.out.println("HelloWorld");18         return "success";19     }20 }

5、编写请求文件index.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <!-- 超链接 -->11     <a href="/helloworld">HelloWorld</a>12 </body>13 </html>

6、在WEB-IFN下新建views文件夹,在views文件夹下新建最终页面success.jsp,如下

 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2     pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <body>10     <h4>Success Page</h4>11 </body>12 </html>

运行结果:

注:1、并不一定严格按照上述创建各个文件的先后顺序完善各个文件内容,各个文件交叉配置

2、在web.xml文件中,我们也可以不适用contextConfigLocation来配置springmvc配置文件的位置和名称,可以使用默认的,

默认的配置文件为:/WEB-IFN/<servlet-name>-servlet.xml ,即将springmvc.xml文件移至WEB-IFN文件夹下,并该名为

SpringDispatcherServlet-servlet.xml。

3、有关spring mvc访问静态资源的问题

  关于使用spring mvc处理静态资源,比如html(发现之前的springmvc.xml中<property name = "suffix" value = ".jsp"></property>定义为jsp结尾就可以成功跳转,但是如果改为html并在web-inf下面新建了html文件后,并将suffix这里的".jsp"改为".html",无法跳转到想要的html页面,并且给出404错误,同时console给出错误信息为:No mapping found for HTTP request with URI [/springTest/WEB-INF/views/result.html] in DispatcherServ)

原因是:该 servlet 对应的 url-pattern 定义成 /,因此该 servlet 会匹配上诸如 /images/a.jpg, /css/hello.css 等这些静态资源,甚至包括 /jsp/stock/index.jsp 这些 jsp 也会匹配。但是并没有定义相应的 Controller 来处理这些资源,因此这些请求通常是无法完成的。

所以,在web.xml中加入

 1 <servlet-mapping> 2      <servlet-name>default</servlet-name> 3      <url-pattern>*.css</url-pattern> 4 </servlet-mapping> 5  6 <servlet-mapping> 7       <servlet-name>default</servlet-name> 8       <url-pattern>*.gif</url-pattern> 9 </servlet-mapping>10 11 <servlet-mapping>12     <servlet-name>default</servlet-name>13      <url-pattern>*.jpg</url-pattern>14 </servlet-mapping>15 16 <servlet-mapping>17      <servlet-name>default</servlet-name>18      <url-pattern>*.js</url-pattern>19 </servlet-mapping>20 21 <servlet-mapping>22       <servlet-name>default</servlet-name>23       <url-pattern>*.html</url-pattern>24 </servlet-mapping>

将springmvc.xml改为:

1 class="org.springframework.web.servlet.view.InternalResourceViewResolver">2             <property name = "prefix" value="/WEB-INF/views/"></property>3             <property name = "suffix" value = ".jpg"></property>4 </bean>5

就可以访问静态资源.jpg格式的图片了。

时间: 2024-10-05 05:45:22

HelloWorld实例(springmvc版)的相关文章

SpringMVC之HelloWorld实例

1.1 Helloworld实例的操作步骤  1. 加入jar包 2. 配置dispatcherServlet 3. 加入Spring配置文件 4. 编写请求处理器 并表示为处理器 5. 编写视图 1.2 具体步骤 1)加入Jar包 2)配置dispatcherServlet的代码(web.xml文件) 1 <!-- 配置dispatcherServlet --> 2 <servlet> 3 <servlet-name>helloworld</servlet-na

【学生必备求职指南】好简历是怎样炼成的?毕业生简历实例点评版 转载

作为应届毕业生,简历中应当包括的重点内容基本出现,层次比较清晰,且对自己从事过的实践工作内容进行了较详尽的描述,同时有意识地给出了通过实践自己得到的收获.但总体篇幅过长,部分内容的逻辑性和展现方式有待改进. 撰写简历主要原则:1.在能够突出展现自己的工作履历.技能和优势的前提下,尽可能缩短篇幅(一页最佳),冗长的简历会冲淡重点,不易被HR所青睐.2.撰写简历前,尽可能通过各种途径了解职位所需的经验.素质和技能,并据此有针对性地制作相应的简历,只有这样才能让HR在"scan"简历的过程中

财付通支付接口完整源码实例php版

财付通支付接口完整源码实例php版 版权声明:本文为博主原创文章,未经博主允许不得转载. 支付动作文件: [php] view plain copy <?php //------------------ 参数开始 ------------------ //商户号 $bargainor_id='45698236888'; //密钥 $key='sjdlfjsdifjieojf454654'; //返回地址 $return_url="http://".$_SERVER['HTTP_H

Maven– HelloWorld实例

Maven– HelloWorld实例 maven安装好后,可以通过HelloWorld项目来体验一下maven是如何构建项目的.Maven项目的核心是pom.xml(就像Ant的build.xml一样),用来构建和发布项目.我们所说的建立maven项目,其实就是建立java项目或web项目,和普通项目不同的是,maven项目的工程目录结构需要按照maven的标准进行建立,并且带有pom.xml文件,这样才能利用maven命令构建和发布工程. 下面利用maven Archetype来创建Hell

springmvc学习(一)helloworld实例

今天介绍的是springmvc的学习,越来越多的企业开始选择springmvc+mybatis来构建系统架构,在电商热门的今天,springmvc+mybatis已成为电商项目架构的很好搭配.Spring mvc和struts2都属于表现层的框架,spring mvc是Spring框架的一部分,较于struts2框架使用的更加广泛;mybatis和hibernate都属于持久层的框架,mybatis是对jdbc操作数据库的的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例

Springmvc的helloworld实例

1.    新建package Src->new->other->package 输入包名:org.tgb.web.controller 点击"finish" 2.    新建类 鼠标点击上面新建的包,new->class,输入类名:HelloWorldController 点击"finish" 3.    编写程序 原始的类如下: package com.tgb.web.controller; public class HelloWorld

SpringMVC学习简单HelloWorld实例

首先还是从一个简单的Hello World项目说起: 我机器的开发环境为: Ubuntu12.04(不同操作系统对本系列项目没有影响): 开发工具:Eclipse For JavaEE: 数据库:MySql5.5.35; 运行环境:TomCat V7.0: JDK:JDK 1.7.0_45: 项目工程为:Dynamic Web Project: 一.项目依赖的jar包: 1.Spring框架依赖的jar包: 日志:commons-logging-1.1.3.jar: JSTL支持:jakarta

springMVC入门配置及helloworld实例

1. 新建web project 2. 往lib里copy必须的jar 3. 改写web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-inst

深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例

第一篇博文深入浅出JMS(一)–JMS基本概念,我们介绍了JMS的两种消息模型:点对点和发布订阅模型,以及消息被消费的两个方式:同步和异步,JMS编程模型的对象,最后说了JMS的优点. 第二篇博文深入浅出JMS(二)–ActiveMQ简单介绍以及安装,我们介绍了消息中间件ActiveMQ,安装,启动,以及优缺点. 这篇博文,我们使用ActiveMQ为大家实现一种点对点的消息模型.如果你对点对点模型的认识较浅,可以看一下第一篇博文的介绍. JMS其实并没有想象的那么高大上,看完这篇博文之后,你就知