Eclipse配置Javaweb项目——打印Helloworld

这个配置我折腾了两三天,现将所有的坑都展示出来。

一. 默认大家Eclipse和Tomcat都安装好了

二. 建立SpringMVC项目

1.打开Eclipse点击File->New->Dynamic Web Project
在这里插入图片描述
2.给项目起个名字
在这里插入图片描述
3.Finish后项目结构如下
在这里插入图片描述

三.导入Spring包

上面我们已经建立完成一个动态网站项目,但这些和Spring MVC还没什么关系,所以我们现在要把Spring MVC相关的jar包导入到项目里。
1.http://projects.spring.io/spring-framework/ 这个网站翻墙打开会快很多。如果在官网不能很快找到在哪下载就直接访问这个网址下载http://repo.spring.io/release/org/springframework/spring/4.3.9.RELEASE/spring-framework-4.3.9.RELEASE-dist.zip。
还有一个很关键的包:http://commons.apache.org/proper/commons-logging/download_logging.cgi 这个包一定要下载,不然之后启动tomcat会报错
2.解压下载好的spring-framework-4.3.9.RELEASE-dist.zip,打开lib文件夹,复制所有的jar包到自己项目的/WebContent/WEB-INF/lib 目录里。
在这里插入图片描述
在这里插入图片描述
3.右击项目名,Refresh一下项目,因为刚刚复制jar进来,再选中项目名右击 Build Path - Configure Bulid Path… - Libraries - Add JARs…,在弹出的框里边找到项目的/WebContent/WEB-INF/lib,这样就看到刚刚你复制过来的 jar 包了。
在这里插入图片描述

四.配置项目

1.在/WebContent/WEB-INF/下新建web.xml文件,具体内容如下,里面有一些最基本的配置,里面的配置都有注释:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <description>
      Spring MVC DEOM
    </description>
    <display-name>springMVC</display-name>
    
    <!-- 
        CharacterEncodingFilter类具有encoding和forceEncoding两个属性,其中encoding是表示设置request的编码,forceEncoding表示是否同时设置response的编码。 
        <filter>下的<filter-name>内的值和<filter-mapping>下的<filter-name>内的值要完全一致
    -->
    <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>
    
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <!-- /下的所有请求都为UTF-8编码 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- 
        Spring MVC相关设置
        <servlet>下的<servlet-name>内的值和<servlet-mapping>下的<servlet-name>内的值要完全一致
    -->
    <servlet>
        <servlet-name>SpringMVC-DEOM</servlet-name>
        <!-- DispatcherServlet主要负责流程的控制 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- Spring MVC配置文件路径 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/springMVC-servlet.xml</param-value>
        </init-param>
        <!-- 表示启动容器时初始化该Servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>SpringMVC-DEOM</servlet-name>
        <!-- 表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
</web-app>

看了注释好像还是不能完全明白其中的意思,我要说的是,先不要急于完全了解每个配置的含义,等到做的项目多了了解Spring MVC整个运行机制自然会慢慢明白,不可因为看不明白而不去学了,要允许暂时存在一些疑问。
2.大家肯定都注意到web.xml文件里有个配置为 “/WEB-INF/springMVC-servlet.xml” 这个文件是Spring MVC的配置文件,Spring官方文档上推荐的默认的文件名是[servlet-name]-servlet.xml文件,这里 servlet-name 叫 springMVC,因此,我新建了一个springMVC-servlet.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-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">
  
  <bean id = "helloworld" class="com.game.controller.Helloworld">
  </bean>
</beans>

这个文件内容不多,里面真正有意义的内容为

<bean id = "helloworld" class="com.game.controller.Helloworld">
</bean>

这是啥意思呢? 这个东西叫做bean, Spring 中的bean是什么鬼? 简单来说在Spring启动之前bean就是一个普通java类,但不是说所有的java类都是bean ,如果一个普通类想要成为bean必须要在配置文件里配置,就是说每一个bean都要对应一个java类文件,就是上面你看到的。每一个Bean对应通常需要指定两个属性。

id:确定该Bean的唯一标识符,容器对Bean管理、访问、以及该Bean的依赖关系,都通过该属性完成。Bean的id属性在Spring 配置文件中是唯一的。
class:指定该Bean的具体实现类。注意这里不能使接口。通常情况下,Spring会直接使用new关键字创建该Bean的实例,因此,这里必须提供Bean实现类的类名。

当Spring 启动之后会把配置文件()里的这些java类,new 一个对象,存在Spring 里(有的地方称为 Spring 容器),有可能会有很多对象在Spring 里面(多个bean),当我们写代码的时候就可以直接去用这些对象,而不用再去创建对象了。注意:只有在配置文件里声明过的类才会被创建对象,其他的类不会被创建为bean。

那么bean是什么呢? bean就是存在于Spring 容器中的对象。如果把Spring 比作一辆汽车,bean就是汽车里的各个模块零件,比如:发动机,变速箱,电路系统等,当汽车启动时候就已经将他们激活,就可以直接使用这些模块,而不用再去单独启动这些模块。

Helloworld项目

1.首先在Java Resource -> src上 右键点击-> new ->package 建立com.game.controller 建立一个包,之后在这个包上右键点击new->class ,类名为Helloworld,之后点击Finish.
在这里插入图片描述
2.在Helloworld.java中添加以下代码:

package com.game.controller;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Helloworld {

    @RequestMapping("/helloworld")  //此处控制浏览器里访问路径 具体为:/SpringDemo/helloworld
    public void helloWorld(HttpServletRequest request, HttpServletResponse response) throws IOException {
        
        //输出字符串
        response.getWriter().append("hello world");

    }
}

在这里插入图片描述
3.配置服务器
在这里插入图片描述
4.启动服务器
在这里插入图片描述
最后一个坑在这里:
在这里插入图片描述
明明配置好了服务器,也成功启动了,怎么找不到网页?
将url改为http://localhost:8888/SpringDemo/helloworld就好了。(前提是你的http端口设置为了8888)
在这里插入图片描述
端口可直接通过右击Tomcat Sever->open打开可视化界面编辑。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Terminator1937/article/details/84786596