国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
SpringMVC學(xué)習(xí)系列(2) 之 經(jīng)典的HelloWorld實(shí)現(xiàn)

前一篇簡單介紹了Spring MVC的一些知識(shí),下面就要開始學(xué)習(xí)如何把Spring MVC運(yùn)用到具體的項(xiàng)目中去。

首先還是從一個(gè)簡單的Hello World項(xiàng)目說起:

 

我機(jī)器的開發(fā)環(huán)境為:

Ubuntu12.04(不同操作系統(tǒng)對(duì)本系列項(xiàng)目沒有什么影響);

開發(fā)工具:Eclipse;

數(shù)據(jù)庫:MySql5.5.35;

運(yùn)行環(huán)境:TomCat V7.0;

JDK:JDK 1.7.0_45;

項(xiàng)目工程為:Dynamic Web Project;

 

一、項(xiàng)目依賴的jar包:

1.Spring框架依賴的jar包:

日志:commons-logging-1.1.3.jar;

JSTL支持:jakarta-taglibs-standard-1.1.2中的jstl.jar和standard.jar;

2.Spring的jar包:

spring-framework-3.2.5.RELEASE/libs中的jar包(這里為了方便我直接把全部都復(fù)制過去了);

把以上的jar包全部復(fù)制到項(xiàng)目的WebContent/WEB-INF/lib目錄中。

 

二、在/WEB-INF中添加web.xml文件,文件內(nèi)容如下:

<?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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <display-name>SpringMVCLesson</display-name>             <servlet>        <servlet-name>SpringMVCLesson</servlet-name>        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>         <init-param>            <param-name>contextConfigLocation</param-name>            <param-value>classpath:springservlet-config.xml</param-value>        </init-param>        <load-on-startup>1</load-on-startup><!-- load-on-startup必須放在最后 -->    </servlet>    <!-- Spring MVC配置文件結(jié)束 -->        <servlet-mapping>        <servlet-name>SpringMVCLesson</servlet-name>        <url-pattern>/</url-pattern>    </servlet-mapping>    </web-app>

首先是配置DispatcherServlet,根據(jù)系列(1)的Spring MVC響應(yīng)流程圖,可以看出DispatcherServlet主要就是攔截請(qǐng)求,然后調(diào)用對(duì)應(yīng)的Controller和Action,解析和渲染指定的視圖并返回響應(yīng) 。

其中classpath:springservlet-config.xml指定具體的配置文件為springservlet-config.xml。

<load-on-startup>1</load-on-startup>是啟動(dòng)順序,讓這個(gè)Servlet隨Servletp容器一起啟動(dòng),必須放在<servlet> 配置的最后。

servlet-mapping中的<servlet-name>指定配置的是哪個(gè)servlet<url-pattern>則指定攔截哪些請(qǐng)求到該servlet,這里配置的是攔截全部請(qǐng)求。

 

三、springservlet-config.xml文件配置:

在項(xiàng)目中新建一個(gè)resources的Source Folder文件夾,并添加springservlet-config.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:p="http://www.springframework.org/schema/p"   xmlns:context="http://www.springframework.org/schema/context"  xmlns:util="http://www.springframework.org/schema/util"  xmlns:mvc="http://www.springframework.org/schema/mvc"  xsi:schemaLocation="  http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans.xsd  http://www.springframework.org/schema/util  http://www.springframework.org/schema/util/spring-util.xsd  http://www.springframework.org/schema/context   http://www.springframework.org/schema/context/spring-context.xsd  http://www.springframework.org/schema/mvc  http://www.springframework.org/schema/mvc/spring-mvc.xsd" >        <!-- 默認(rèn)的注解映射的支持 -->      <mvc:annotation-driven/>          <!-- 如果當(dāng)前請(qǐng)求為“/”時(shí),則轉(zhuǎn)發(fā)到“/helloworld/index” -->    <mvc:view-controller path="/" view-name="forward:/helloworld/index"/>     <!-- 靜態(tài)資源映射 -->    <mvc:resources mapping="/js/**" location="/WEB-INF/js/" />    <mvc:resources mapping="/css/**" location="/WEB-INF/css/" />    <mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" />    <mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" />    <mvc:resources mapping="images/**" location="/WEB-INF/images/" />    <!-- 當(dāng)上面要訪問的靜態(tài)資源不包括在上面的配置中時(shí),則根據(jù)此配置來訪問 -->    <mvc:default-servlet-handler/>    <!-- 開啟controller注解支持 -->    <!-- use-default-filters="false" 只掃描指定的注解 -->    <context:component-scan base-package="com.demo.web.controllers" use-default-filters="false">        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>    </context:component-scan>          <!-- 視圖解析器 -->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">       <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>       <property name="contentType" value="text/html"/>               <property name="prefix" value="/WEB-INF/views/"/>       <property name="suffix" value=".jsp"/>    </bean>    </beans>

<mvc:annotation-driven/> 開啟注解映射支持,它是為了簡化配置的縮寫形式,它相當(dāng)于以下2個(gè)配置:

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

由于我們?cè)趙eb.xml文件里面配置的是攔截所有的請(qǐng)求到該servlet,所以我們?cè)谶@里要對(duì)靜態(tài)資源文件映射作一下配置,否則請(qǐng)求這些資源文件會(huì)返回404

<!-- 靜態(tài)資源映射 --><mvc:resources mapping="/js/**" location="/WEB-INF/js/" /><mvc:resources mapping="/css/**" location="/WEB-INF/css/" /><mvc:resources mapping="/fonts/**" location="/WEB-INF/fonts/" /><mvc:resources mapping="/plugins/**" location="/WEB-INF/plugins/" /><mvc:resources mapping="images/**" location="/WEB-INF/images/" /><!-- 當(dāng)上面要訪問的靜態(tài)資源不包括在上面的配置中時(shí),則根據(jù)此配置來訪問 --><mvc:default-servlet-handler/>

開啟Controller注解支持,并配置只掃描指定包下面的Controller:

<context:component-scan base-package="com.demo.web.controllers" use-default-filters="false">    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/></context:component-scan>

配置視圖解析器,并指定視圖所在的文件夾:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">   <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>   <property name="contentType" value="text/html"/>           <property name="prefix" value="/WEB-INF/views/"/>   <property name="suffix" value=".jsp"/></bean>

添加HelloWorldController,在項(xiàng)目中新建一個(gè)web的Source Folder文件夾,并在文件夾下面添加com.demo.web.controllers包,在包中添加一個(gè)HelloWorldController類,類中內(nèi)容如下:

package com.demo.web.controllers;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.servlet.ModelAndView;@Controller@RequestMapping(value = "/helloworld")public class HelloWorldController {    @RequestMapping(value="/index", method = {RequestMethod.GET})    public ModelAndView index(){                ModelAndView modelAndView = new ModelAndView();          modelAndView.addObject("message", "Hello World!");          modelAndView.setViewName("index");          return modelAndView;    }    }

其中@Controller 注解把該class指定為controller,controller 上的@RequestMapping 注解的 value值指定該controller所映射的請(qǐng)求。

方法上的@RequestMapping 注解指定該方法為一個(gè)action,value 值指定該action所映射的請(qǐng)求,method 中的RequestMethod.GET指定該action只接受get請(qǐng)求。

ModelAndView 中的setViewName指定了該action所對(duì)應(yīng)的視圖名稱,解析視圖時(shí)會(huì)在springservlet-config.xml文件指定的視圖文件夾中尋找對(duì)應(yīng)的視圖。

 

添加視圖,在項(xiàng)目/WEB-INF文件夾下新建一個(gè)views文件夾,并在views中添加index.jsp視圖,視圖內(nèi)容如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"    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>Insert title here</title></head><body>    ${message}</body></html>

 

運(yùn)行項(xiàng)目,由于我們之前配置了:<mvc:view-controller path="/" view-name="forward:/helloworld/index"/> 所以直接可以看到結(jié)果:

把請(qǐng)求的URL地址改為配置的地址:http://localhost:8080/SpringMVCLesson/helloworld/index,可以看到結(jié)果相同:

代碼下載:http://pan.baidu.com/s/1o6LRw7o

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Spring MVC3.0.5搭建全程
學(xué)習(xí)SpringMVC
***Spring MVC的多視圖解析器配置及與Freemarker的集成
SpringMVC攔截器簡單使用
SpringMVC 基礎(chǔ)教程 簡單入門實(shí)例
spring MVC 項(xiàng)目 WEB-INF下的jsp不能加載css文件
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服