Java Spring MVC 入门- HelloWord+配置IntelliJ idea的Tomcat服务器
2016-10-25 14:57
525 查看
**本例使用IntelliJ IDEA 2016.2.5编写,运行环境:tomcat7.0.70测试通过。**
第一次写博客,有些紧张,如果那里写的不对还请指教!
打开Idea,选择“create new project”。然后如下图创建一个新的工程,点击Next。
设置工程的名称和工程所在路径,然后点击“finsh”。此时idea见自动创建好一个JavaWeb模板。
在WEB-INF下创建lib文件夹,复制spring框架的关键jar包和Spring 框架依赖的 jar 包:
首先,我们要配置web.xml文件,完整的配置文件如下:
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!--表示规定字符编码为UTF-8--> <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> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--前端控制器DispatcherServlet的配置--> <servlet> <servlet-name>chapter2</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup><!--表示启动容器时初始化该Servlet--> </servlet> <servlet-mapping> <servlet-name>chapter2</servlet-name> <!-- url-pattern 表示哪些请求交给 Spring Web MVC 处理, “/” 是用来定义默认 servlet 映射的。--> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
其中,DispatcherServlet为前端配置器。配置到此,来自浏览器的请求会交给 Spring Web MVC 框架处理,因此我们需要配置 Spring 的配置文件。默认 DispatcherServlet 会加载 WEB-INF/[DispatcherServlet 的 Servlet 名 字 ]-servlet.xml 配 置 文 件 。 所以本例的spring配置文件为:WEB-INF/springmvc1-servlet.xml。下面我们来按照需求编辑springmvc1-servlet.xml文件。
在 Spring 配置文件中配置 HandlerMapping 、HandlerAdapter
<!-- HandlerMapping 表示将请求的URL和Bean名字映射 如URL为 “上下文/hello”,则Spring配置文件必须有一个名字为“/hello”的Bean,上下文默认忽略。--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- HandlerAdapter 表示所有实现了org.springframework.web.controller.mvc.Controller接口的Bean 可以作为Spring Web MVC中的处理器。如果需要其他类型的处理器可以通过实现HadlerAdapter来解决。--> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
在 Spring 配置文件中配置 ViewResolver
<!-- ViewResolver 用于支持Servlet、JSP视图解析--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- viewClass JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包含jstl的相关jar包--> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> <!-- viewClass 查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello 则该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”--> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean>
现在我们建立一个controller,在src下创建文件夹com.mvc.controller,在此目录下创建我们的helloword控制器。
HellowWordController.java
public class HelloWordController implements Controller{ @Override public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { /** * 这个类的功能 * 1.手机参数、验证参数 * 2.绑定参数到命令对象 * 3.强命令对象传入任务对象进行业务处理 * 4.选择下一个页面 c268 */ ModelAndView mv = new ModelAndView(); //添加模型数据,可以是任意的POJO对象 mv.addObject("message","Hello Word!"); //设置逻辑视图名,视图解析器会根据改名字解析到具体的视图页面 mv.setViewName("hello"); return mv; } }
需要注意的是,这里实现的接口controller需要引的包是:
import org.springframework.web.servlet.mvc.Controller;
千万不要引用错了。
因为我们写了一个要显示HelloWord的控制器,我们需要告诉系统有这么一个类,并且应该去哪儿找到这个类。所以我们回到之前的springmvc1-servlet.xml配置文件里,再添加一个bean:
<bean name="/hello" class="com.mvc.controller.HelloWordController/>
这样,当通过url“http://localhost:8080/MySpringMvc/hello”来访问我们的项目时,系统会自动找到控制器,并执行相应的操作。如果name的值为其他,比如/(任意内容),那么我们要访问的地址就要写成:“http://localhost:8080/MySpringMvc/(任意内容)“。
下面创建用来展示成果的view视图页面:
/WEB-INF/jsp/hello.jsp
<%-- Created by IntelliJ IDEA. User: Administrator Date: 2016/10/25 Time: 11:30 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" %> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Hello Word</title> </head> <body> ${message} </body> </html>
${message}:表示显示由HelloWorldController处理器传过来的模型数据。
ps:还记得类HelloWordController中有一句话
mv.addObject("message","Hello Word!");吗?
至此,我们的项目已经初步完成,运行项目,输入url:http://localhost:8080/MySpringMvc/hello查看,如果页面内显示“Hello Word!”,则说明项目运行正常。至于怎么配置idea运行Tomcat项目,在本文最后会讲。
在spring 2.5之前,我们是通过上面的方法,通过实现 Controller 接口或其实现来定义 我们的处理器。本例使用的是spring 4.1.9,很明显已经更新了很多版本了,当然也怎天了许多新的特性。现在就介绍其中两种很常用的注解:@Controller和@RequestMapping。 其中,@Controller是用于标识是处理器类,@RequestMapping是请求到处理器功能方法的映射规则。这么一看,如果用这两个新特性,我们的项目就会简化很多,省去了很多配置,下面我们就使用新特新来修改上面的项目。
首先,我们想用这两个注解,就要在Spring配置文件中开启支持@Controller 和 @RequestMapping 注解的处理器。打开springmvc1-servlet.xml文件,增加如下代码:
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
之前的处理器映射DefaultAnnotationHandlerMapping 和处理器适配器
AnnotationMethodHandlerAdapter现在已经过时,请使用上面的bean。
我们依然要告诉系统,我们的控制器都在哪里,即使我们为每一个类都贴上了注解:
<context:component-scan base-package = "com.mvc.controller" />
修改后完整的配置文件:
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
<!-- ViewResolver 用于支持Servlet、JSP视图解析-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- viewClass JstlView表示JSP模板页面需要使用JSTL标签库,classpath中必须包含jstl的相关jar包-->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<!-- viewClass 查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),比如传进来的逻辑视图名为hello
则该该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<context:component-scan base-package = "com.mvc.controller" />
</beans>
下面我们修改HelloWordController类:
package com.mvc.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Created by Administrator on 2016/10/25. */ @Controller public class HelloWordController{ @RequestMapping("/hello") public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { /** * 1.收集参数、验证参数 * 2.绑定参数到命令对象 * 3.强命令对象传入任务对象进行业务处理 * 4.选择下一个页面 */ ModelAndView mv = new ModelAndView(); //添加模型数据,可以是任意的POJO对象 mv.addObject("message","Hello Word!"); //设置逻辑视图名,视图解析器会根据改名字解析到具体的视图页面 mv.setViewName("hello"); return mv; } }
到这我们就修改完了,访问url,出现Hello Word,说明运行成功。
*本文参考http://jinnianshilongnian.iteye.com/blog/1594806 开涛的博文,经过自己试验总结,写出了这篇博客,感谢大神留下这么好的文章让我们参考学习,向他们致敬。*
下面介绍如何使用idea来配置Tomcat服务器来运行我们的项目。这个方法使用几乎所有的java项目。
当我们写好项目准备第一次运行的时候,那个绿色的箭头是黑色的,因为我们没有为这个项目配置启动文件,首先我们按照下图所示,点击Edit Configurations:
按照下图所标出的顺序,依次点击配置:
在新出现的页面上继续按下图的顺序配置:
第一步:修改这个心建立的Tomcat运行实例的名称,随意起,这里我设为项目名称。
第二步:点击configure…,在弹出的页面中选择你的Tomcat,然后确定。
第三步:这个选项是项目启动完成时自动启动浏览器并访问项目的地址。在“http://localhost:8080/”的后面加上项目的名称MySpringMvc,如果你的Application Context写的不是/MySpringMvc,那么这里你就应该写你自定义的那个名称。有关Application Context请往下看。
第四步:点击上面的选项卡“Dloyment”,点右面的+号,注意不是下面的,是页面右侧的。按照下图所示步骤进行:
正常的话这样就行了,然后确定:
页面中的Application
context是/….,比如咱们的这个项目就是/MySpringMvc,访问的网址为“http://localhost:8080/MySpringMvc/hello”。如果不写,那么访问的网址将变为“http://localhost:8080/hello”。换句话说,如果随意写,那么你请求的网址就应该变为“http://localhost:8080/你随意写的/hello”,这里一定要注意。
完整的配置应该如下图所示:
点击OK,这时你的idea主页面应该是这样的:
如果和我的一样,点击上面的绿色三角号,运行项目即可。
到这里本文就全部结束了,欢迎指出错误和不足,我将继续改进。我的qq572683491,欢迎喜欢编程事业的伙伴们加我一起研究探讨!
相关文章推荐
- 基于Spring MVC和Tomcat服务器的JavaWeb项目----入门篇
- 基于Spring MVC和Tomcat服务器的JavaWeb项目----入门篇
- JavaWeb开发入门第二篇Tomcat服务器配置讲解
- [入门]基于Spring MVC和Tomcat服务器的JavaWeb项目
- JAVA入门[4]-IntelliJ IDEA配置Tomcat
- 为Eclipse Java EE IDE配置Tomcat服务器
- JavaWeb学习----JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)
- 基于tomcat服务器的javaweb入门一
- Flex与服务器交互之四(使用RemoteObject +BlazeDS+TomCat同Java交互及开发环境配置)
- Java EE eclipse 配置tomcat服务器
- javaweb-day04-5(javaWeb开发入门 - tomcat体系架构、配置https加密连接器)
- MyEclipse和tomcat如何配置让修改了Java代码后不用重启服务器
- java jdk基本配置和tomcat配置服务器
- java_web初学笔记之<Tomcat服务器的简单配置>
- 阿里云CentOS7.0服务器配置(java+mariadb+tomcat+svn+ftp)
- linux配置Java环境之tomcat服务器 (附sqlserver驱动)
- java_Web09-软件密码学基础和配置tomcat的https连接器和tomcat服务器的管理平台
- 配置解压版Tomcat服务器教程 Java
- linux vps 配置搭建java服务器环境(jdk+tomcat+mysql)
- CentOS配置Java Web 服务器 Tomcat(使用二进制压缩包配置)