• 简单搭建SpringMVC框架详解


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

      第一步:配置环境变量,有些过于基础就简单说说。下载JDK,点击安装即可。右键计算机,找到属性,然后高级系统设置,设置环境变量,添加JAVA_HOME,JAVA_HOME后边变量为jdk的安装目录。创建或者修改已有的CLASS_PATH,在后边添加   .;%JAVA_HOME%lib;%JAVA_HOME%lib ools.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 也可以跳转到最终页面的。

    如下图:

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

  • 相关阅读:
    Chrome开发者工具中Elements(元素)断点的用途
    最简单的SAP云平台开发教程
    Java实现 LeetCode 495 提莫攻击
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 494 目标和
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 493 翻转对
    Java实现 LeetCode 492 构造矩形
  • 原文地址:https://www.cnblogs.com/qcq0703/p/8596978.html
Copyright © 2020-2023  润新知