使用Intellij IDEA从零使用Spring MVC

简介: 原文:使用Intellij IDEA从零使用Spring MVC使用Intellij IDEA从零使用Spring MVC 黑了Java这么多年, 今天为Java写一篇文章吧. 这篇文章主要是想帮助那些刚接触到Java, 同时想从事Java WEB GUI开发的人.
原文: 使用Intellij IDEA从零使用Spring MVC

使用Intellij IDEA从零使用Spring MVC

黑了Java这么多年, 今天为Java写一篇文章吧.

这篇文章主要是想帮助那些刚接触到Java, 同时想从事Java WEB GUI开发的人. 对我而言, 我很早就有想尝试用Java写WEB的想法, 可是没有一次成功过, 不管是用struts, 还是纯JSP, 总是配置不好, tomcat不能正确的运行我的程序.

自打那以后, 我一直在抱怨Java的application, 尤其是要部署于tomcat的, 太难了, 太复杂了. 而且还没有什么文档是专门讲这个, 全部都是讲如何用eclipse配置SSH, 然后开发, 然后部署. 对于一个不想使用eclipse的人, 简直无从下手.

好了, 不多说废话了, 今天我要讲的是Srping MVC的使用和tomcat的部署, 以及如何用maven来管理dependency. 我用的工具是Intellij IDEA, 不过我会说明程序的目录结构是什么样的, 这样不管你用什么IDE, 都可以参考.

  1. 建立一个空的java项目, 在select type那里, 选择maven module, 项目名字什么的, 随便起一个
  2. 在下一个页面里, 什么都不改, 什么都不选, 点finish
  3. 默认打开了pom.xml, 这个是maven的配置文件, 为了让程序能够自动倒入spring mvc和jsp, selvlet等的依赖, 我们在里面加入如下配置:

    <properties><java-version>1.7</java-version><org.springframework-version>3.1.3.RELEASE</org.springframework-version></properties><dependencies><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${org.springframework-version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${org.springframework-version}</version></dependency><!-- servlet jsp and jstl --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.0</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency></dependencies>
  4. 等待Intellij自动导入里面写的包

  5. 确保我们有一个跟src目录平级的web目录, 然后在里面简历一个目录叫WEB-INF. 说到这里, 就要说一下tomcat的webapp目录结构了. 首先要有一个WEB-INF目录, 然后在WEB-INF里, 有classes目录: 存放所有代码的目录; lib目录: 存放所有jar文件; web.xml文件, 存放webapp的配置.
  6. 编辑web.xml文件, 改成如下内容:

    <?xml version="1.0" encoding="UTF-8"?><web-appxmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"version="3.0"><!-- Handles all requests into the application --><servlet><servlet-name>appServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>appServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>

    这段的内容, 是将url跳转到appServlet配置里, 在appServlet的配置里, 使用servlet-context.xml.

  7. servlet-context.xml内容如下:

    <?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
           http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd"><!-- Scans the classpath of this application for @Components to deploy as beans --><context:component-scanbase-package="me.davidx.LearnJava"/><!-- Configures the @Controller programming model --><mvc:annotation-driven/><!-- Resolves view names to protected .jsp resources within the /WEB-INF/views directory --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><propertyname="prefix"value="/WEB-INF/views/"/><propertyname="suffix"value=".jsp"/></bean></beans>

    这段的大概意思是, 自动扫描包”me.davidx.LearnJava”来找到controller定义. 同时, controller都使用@Controller来定义. bean里的定义, 表明所有的View文件都到/WEB-INF/views目录来找, 后缀都为.jsp.

  8. 在me.davidx.LearnJava包里, 定义一个HomeController类, 这里给一个范例:

    package me.davidx.LearnJava.controllers;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;@ControllerpublicclassHomeController{@RequestMapping("/home")publicString home(Model model){
            model.addAttribute("message","hello, world");//return "WEB-INF/views/home.jsp";return"home";}}
  9. 看完了controller的定义, 我们再来看看view文件: home.jsp:

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ page session="false" %>
    <html><head><title>Home</title></head><body><h1><c:outvalue="${message}"/></h1><h2>Again!</h2></body></html>

    这里使用了jstl, 以前写过jsp的童鞋, 应该一看就明白了.

  10. 代码工作都完成啦, 下面就是部署了.
目录
相关文章
|
19天前
|
Java 开发工具 Maven
IntelliJ IDEA安装教程(超详细)
IntelliJ IDEA安装教程(超详细)
78 1
|
24天前
|
XML IDE 开发工具
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
别看你风吹头顶凉但你绝对没有过这样方便的插件Intellij IDEA 自带的 Vim
40 0
|
1月前
|
缓存 前端开发 Java
Spring MVC 面试题及答案整理,最新面试题
Spring MVC 面试题及答案整理,最新面试题
90 0
|
18天前
|
JavaScript Android开发
Spring-boot-devTools无效解决办法,idea中devtools不起作用
Spring-boot-devTools无效解决办法,idea中devtools不起作用
|
1月前
|
SQL JavaScript Java
springboot+springm vc+mybatis实现增删改查案例!
springboot+springm vc+mybatis实现增删改查案例!
26 0
|
1月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
42 1
|
14天前
|
数据采集 前端开发 Java
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
数据塑造:Spring MVC中@ModelAttribute的高级数据预处理技巧
23 3
|
14天前
|
存储 前端开发 Java
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
会话锦囊:揭示Spring MVC如何巧妙使用@SessionAttributes
14 1
|
14天前
|
前端开发 Java Spring
数据之桥:深入Spring MVC中传递数据给视图的实用指南
数据之桥:深入Spring MVC中传递数据给视图的实用指南
29 3
|
14天前
|
JSON Kubernetes Go
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用
25 0
无缝集成:在IntelliJ IDEA中利用Kubernetes插件轻松管理容器化应用