简单搭建SpringMVC框架详解

  在公司待了两年,用的一直是Spring+SpringMVC+Hibernate框架,都是公司自己搭建好的,自己从来没有主动搭建过,闲来无聊,自己搭建试试。一下即我搭建的过程以及搭建所遇到的问题,有部分是来自网上搜索的,会有标注。不过这不是重点,重点是自己查询排错之后会让自己印象更深。

  第一步:配置环境变量,有些过于基础就简单说说。下载JDK,点击安装即可。右键计算机,找到属性,然后高级系统设置,设置环境变量,添加JAVA_HOME,JAVA_HOME后边变量为jdk的安装目录。创建或者修改已有的CLASS_PATH,在后边添加   .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 这段话即可(切记最前边有个"."),然后打开cmd命令窗口,输入java -version,下面会出现如下三行字,代表配置环境变量成功。

java version "1.7.0_17"
Java(TM) SE Runtime Environment (build 1.7.0_17-b02)
Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode)

  第二步:下载eclipse,按照安装步骤下一步、下一步、下一步直到完成即可。

  第三步:下载tomcat,有的只需要解压即可,配置到eclipse中即可。 该链接有详解 :  https://jingyan.baidu.com/article/ca2d939dd90183eb6d31ce79.html

  第四步:下载安装mysql。链接有详解: https://jingyan.baidu.com/article/d7130635f1c77d13fdf475df.html

  第五步:下载SpringMVC的jar包。

  第六步:打开eclipse,创建一个web项目。创建项目时,如果直接点击的finish,可能不会直接创建web.xml文件,就需要手工在WebContent创建web.xml文件如下图一,创建web.xml文件的时候请顺便再创建一个lib文件夹,跟它同级即可,里面放上第五步准备的jar包(忘了这一步了,写到第十一步才想起来),加上之后记得鼠标放在项目名上点击右键Bild Path一下,然后再把jar包加进去如下图二

如下图一:

 

下图为图二

 

 第七步:在Java Resources 下的src下创建一个springMVC.xml文件,文件名可以自己随意命名(网上有教程是直接跟web.xml同级,但是我亲生试验后出错了,后来百度之后才放在目前这个目录下),如果感觉有点乱可以加一个config文件夹,如下图:

 

  第八步:如果你的web.xml文件是在你创建web项目时,点击两次next,然后勾选上如下图一的选项时,那么恭喜你,你不在需要手动添加一个web.xml文件了。因为这个选项时自动生成web.xml文件。下图二为自动生成的web.xml文件时,里面自己生成的代码。

以下为图一

 

以下为图二

  第九步:如果没有web.xml文件也没事,别担心自己手动创建一个咯。现在主要是把首地址配置好即可,也就是上图二中的<welcome-file-list>这个标签,并将首地址自己命名,举例说明首地址为index.jsp。接着就需要在WebContent(建在这个目录下!建在这个目录下!!建在这个目录下!!!重要的事情说三遍切记一定要建在这个目录下,不然首地址你都进不去的,这个是我出现的问题,千万别犯这种低级问题)下创建index.jsp文件,如下图:

 

   此时,你就可以在index.jsp文件里肆意妄为了,想写什么写什么了,我的index.jsp的代码如下!

<%@ 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=ISO-8859-1">
<title></title>
</head>
<body>
	<!-- 这个a标签可有可无 -->
	<a href="hello.html" ><h1>兔兔是个大懒兔</h1></a> 
</body>
</html>

  

 

写完了之后就可以在浏览器上输入htttp://localhost:8080/MyFirstObject,就可以直接访问到你在index.jsp文件肆意妄为的痕迹了。不过不要太高兴啊,这只是初步的准备,没有什么技术含量的!接下来就是重点了,后退几步,准备好接大招了啊。

  第十步:在web.xml文件中就要开始配置了,首先设置这个<context-param>标签,这个标签的作用解读如下8点:

1.启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: 和

2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.

3.容器将转化为键值对,并交给ServletContext.

4.容器创建中的类实例,即创建监听.

5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得
ServletContext = ServletContextEvent.getServletContext();
context-param的值 = ServletContext.getInitParameter("context-param的键");

6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早.
换句话说,这个时候,你对中的键值做的操作,将在你的WEB项目完全启动之前被执行.

7.举例.你可能想在项目启动之前就打开数据库.
那么这里就可以在中设置数据库的连接方式,在监听类中初始化数据库的连接.

8.这个监听是自己写的一个类,除了初始化方法,它还有销毁方法.用于关闭应用前释放资源.比如说数据库连接的关闭.

  个人认为,你可能看完了还是不太懂,但是看到了第7条也就是标红处,应该大致了解一点了。那么就需要你进行配置了,因为你要在项目配置之前就加载SpringMVC相关的配置文件,也就是你在第七步中创建的springMVC.xml文件,那么直接配置上即可,如以下代码,代码中有注释。监听器以及编码格式可以自动忽略的。请记住一定要先加载SpringMVC的jar包你才能找到对应的核心控制器,也就是DispatcherServlet。

<?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_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>MyFirstObject</display-name>
    
    <!-- 这里很重要 如果不设置<param-value>的值可能会默认找到/WEB-INF/applicationContext.xml]这里 就会报错 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:config/spring-servlet.xml</param-value>
    </context-param>

    <servlet>
        <servlet-name>spring</servlet-name>

        <!-- DispatcherServlet为SpringMVC核心控制器 位于spring-webmvc-xxx.RELEASE.jar目录下的第一个包的第二个文件 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:config/spring-servlet.xml</param-value>
        </init-param>
        <!-- load-on-starup 表示启动容器时就初始化servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <!-- url-pattern 表示哪些url请求交给springMVC进行处理 “/”默认是servlet映射的 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <!-- 制定首页面,当输入地址后进入的第一个页面 -->
        <welcome-file>/index.jsp</welcome-file>

    </welcome-file-list>

<!-- 设置编码格式 -->
    <filter>
        <filter-name>characterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>

    <!-- 配置监听器 -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <listener>
        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
    </listener>
</web-app>

  第十一步:好了,宝贝儿,web.xml文件已经可以告一段落了,现在咱们要开始鼓捣鼓捣springMVC.xml文件了。首先开启注解模式启动!开启注解模式驱动!!开启模式注解驱动!!!就是<mvc:annotation-driven></mvc:annotation-driven>这个标签。然后就是<context:component-scan base-package="controller"></context:component-scan>这个标签,这两个标签可以颠倒顺序的啊!废话不多说,代码中都有详细注解,大家直接看代码吧!

 

<?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-4.2.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util-4.2.xsd
  http://www.springframework.org/schema/context 
  http://www.springframework.org/schema/context/spring-context-4.2.xsd
  http://www.springframework.org/schema/mvc
  http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">
 
 <!-- 开启注解模式驱动 必须开启注解模式驱动 不然无法扫描-->  
 <mvc:annotation-driven></mvc:annotation-driven>
 <!-- 扫描的基本包路径 包的路径一定要检查清楚,很容易弄错的,实在不行有个验证方法,就是将具体的类名(去掉后边的.java)放在后边,
 	通过按住Ctrl键,鼠标右键点击验证看是否能够跳过去 -->
 <context:component-scan base-package="controller"></context:component-scan>
 
 <mvc:default-servlet-handler/>
 <!-- 用于支持Servlet、JSP视图解析 -->
 <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" >
 	
 	<!-- viewClass:JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包含jstl的相关jar包; -->
 	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" ></property>
 	
 	<!-- prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),-->
 	<property name="prefix" value="/WEB-INF/jsp/" ></property>
 	<property name="suffix" value=".jsp" ></property>
 </bean>
 </beans>

 

  第十二步:就是在controller包下创建你的class类了,并且在类中表明@Controller标签以及@RequestMapping标签,如以下代码:

package controller;

import javax.servlet.http.HttpServletResponse;
//请注意,请注意,请注意,这些包不要引错哟!!!尤其是下面第二个,RepuestMapping有两个的,请注意了!!!
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class HelloSpringMVController {
	
	@RequestMapping("/hello")
	public ModelAndView helloSpring(HttpServletResponse response){
		
		//为了防止传输到页面全是问号,需要设置一下编码格式
		response.setContentType("application/json;charset=UTF-8");
		String msg = "兔兔,你太懒了!!!";
		
		ModelAndView mav = new ModelAndView();
		mav.addObject("message", msg);
		
		//返回到的页面
		mav.setViewName("hello");
		return mav;
		
	}

}

  好了,接下来你就可以开始装逼了,直接在浏览器上打上http://localhost:8080/项目名,就可以了,然后就会弹出首页面,

如下图一:

  然后再点击这个链接就可以进入你想要进入的页面了,也就是hello.jsp页面,前边忘了说了,在WEB-INF目录下需要创建一个jsp文件夹,放置你的页面,也就是所谓的hello.jsp页面,如下图和代码

<%@ page language="java" contentType="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>你是最棒的!!!</title>
</head>
<body>
	<b>这是我自己搭建的框架,试试行不行</b>
	<!--${message}为el表达式,可以拿到后台controller中传输过来的数据 -->
	<b><h1>后台返回的数据 ${message}</h1> </b>
</body>
</html>

  

 

  或者说直接在浏览器输入http://localhost:8080/MyFirstObject/hello 也可以跳转到最终页面的。

如下图:

 

好了恭喜你总算完成了这个搭建过程,自己可以连接数据库的,不过哥们得后续再自己进行尝试了,去做饭了!!!

 

转载于:https://www.cnblogs.com/qcq0703/p/8596978.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值