2017一月
23

转载自:http://blog.csdn.net/jdjdndhj/article/details/54691894

搭建IntelliJ IDEA+maven+jetty+SpringMVC 开发环境(二)

分类:框架学习笔记web开发技术

(29) (0) 举报 收藏

上一篇我们已经新建完了项目,并使用maven成功导入了所需要的jar包,接下来我们就开始对项目进行配置并完成代码书写。

三、配置SpringMVC框架环境
1、配置spring-xxxx.xml(名字任取)
   在项目resources文件夹下新建一个xml文件,命名为spring-springmvcConfig.xml,这个文件名称可以任取。
新建xml文件如下:

[html] view plain copy print?
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. 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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  7. </beans>

<?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"xmlns:mvc="http://www.springframework.org/schema/mvc"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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
</beans>

spring mvc框架从名称上就可以知道,他和其他的MVC框架结构类似。由三部分组成:model、views、controller,model一般就是一些基本的Javabean,views部分就是页面部分,controller用于处理一些请求。
在xml配置中,我们可以配置指定controller所处的包,让系统自动扫描该包下的所有controller,

[html] view plain copy print?
  1. <!--指明 controller 所在包,并扫描其中的注解-->
  2. <context:component-scan base-package="com.promonkey.controller"/>

 <!--指明 controller 所在包,并扫描其中的注解--><context:component-scan base-package="com.promonkey.controller"/>   

如果我们使用注解实现的话还需要开启注解配置:

[html] view plain copy print?
  1. <!--开启注解-->
  2. <mvc:annotation-driven/>

  <!--开启注解--><mvc:annotation-driven/>

配置完controller后开始配置views层,下面配置视图解析器:

[html] view plain copy print?
  1. <!--关于controller如何找到视图文件,这里需要详细的说明。在 controller 的一个方法中,返回的字符串定义了所需访问的jsp的名字(如上面的index)。在jspViewResolver中,有两个属性,一个是prefix,定义了所需访问的文件路径前缀,另一是suffix,表示要访问的文件的后缀,这里为 .jsp。那么,如果返回字符串是 xxx ,SpringMVC就会找到 /WEB-INF/pages/xxx.jsp 文件。-->
  2. <!--ViewResolver 视图解析器-->
  3. <!--用于支持Servlet、JSP视图解析-->
  4. <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  5. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  6. <property name="prefix" value="/WEB-INF/pages/"/>
  7. <property name="suffix" value=".jsp"/>
  8. </bean>

<!--关于controller如何找到视图文件,这里需要详细的说明。在 controller 的一个方法中,返回的字符串定义了所需访问的jsp的名字(如上面的index)。在jspViewResolver中,有两个属性,一个是prefix,定义了所需访问的文件路径前缀,另一是suffix,表示要访问的文件的后缀,这里为 .jsp。那么,如果返回字符串是 xxx ,SpringMVC就会找到 /WEB-INF/pages/xxx.jsp 文件。--><!--ViewResolver 视图解析器--><!--用于支持Servlet、JSP视图解析--><bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>

在web项目中我们需要经常访问一些静态文件,例如js、img、css等,

[html] view plain copy print?
  1. <!-- 静态资源(js、image等)的访问 -->
  2. <mvc:default-servlet-handler/>

 <!-- 静态资源(js、image等)的访问 --><mvc:default-servlet-handler/>

完整配置如下:

[html] view plain copy print?
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. 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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
  7. <!--指明 controller 所在包,并扫描其中的注解-->
  8. <context:component-scan base-package="com.promonkey.controller"/>
  9. <!-- 静态资源(js、image等)的访问 -->
  10. <mvc:default-servlet-handler/>
  11. <!--开启注解-->
  12. <mvc:annotation-driven/>
  13. <!--关于controller如何找到视图文件,这里需要详细的说明。在 controller 的一个方法中,返回的字符串定义了所需访问的jsp的名字(如上面的index)。在jspViewResolver中,有两个属性,一个是prefix,定义了所需访问的文件路径前缀,另一是suffix,表示要访问的文件的后缀,这里为 .jsp。那么,如果返回字符串是 xxx ,SpringMVC就会找到 /WEB-INF/pages/xxx.jsp 文件。-->
  14. <!--ViewResolver 视图解析器-->
  15. <!--用于支持Servlet、JSP视图解析-->
  16. <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  17. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  18. <property name="prefix" value="/WEB-INF/pages/"/>
  19. <property name="suffix" value=".jsp"/>
  20. </bean>
  21. </beans>

<?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"xmlns:mvc="http://www.springframework.org/schema/mvc"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 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"><!--指明 controller 所在包,并扫描其中的注解--><context:component-scan base-package="com.promonkey.controller"/><!-- 静态资源(js、image等)的访问 --><mvc:default-servlet-handler/><!--开启注解--><mvc:annotation-driven/><!--关于controller如何找到视图文件,这里需要详细的说明。在 controller 的一个方法中,返回的字符串定义了所需访问的jsp的名字(如上面的index)。在jspViewResolver中,有两个属性,一个是prefix,定义了所需访问的文件路径前缀,另一是suffix,表示要访问的文件的后缀,这里为 .jsp。那么,如果返回字符串是 xxx ,SpringMVC就会找到 /WEB-INF/pages/xxx.jsp 文件。--><!--ViewResolver 视图解析器--><!--用于支持Servlet、JSP视图解析--><bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>
</beans>

2、配置web.xml
    做过web项目的童鞋都知道,web项目有一个祖宗,必须要进行配置,那就是web.xml。
打开项目中src\webapp\WEB/INF\web.xml,web.xml的版本可自行更新:

[html] view plain copy print?
  1. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  4. version="3.1">
  5. </web-app>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"version="3.1"></web-app>

在web.xml文件中先导入我们之前写好的配置文件,不然系统会找不到springmvc的框架配置文件:

[html] view plain copy print?
  1. <!--Loads Spring Security config file-->
  2. <context-param>
  3. <param-name>contextConfigLocation</param-name>
  4. <param-value>classpath*:spring-springmvcConfig.xml</param-value>
  5. </context-param>

   <!--Loads Spring Security config file--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring-springmvcConfig.xml</param-value></context-param>

配置一个监听器:

[html] view plain copy print?
  1. <listener>
  2. <listener-class>org.springframework.web.context.ContextLoaderListener
  3. </listener-class>
  4. </listener>

<listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>

配置servlet并指定配置文件,用于拦截请求,这里用的/,意思是拦截所有请求,将拦截下来的请求交给controller处理(这一步在上面配置spring-springmvc.xml时已经配置了,请求拦截下来后如何处理):

[html] view plain copy print?
  1. <!-- Spring MVC -->
  2. <servlet>
  3. <servlet-name>springmvc</servlet-name>
  4. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  5. <init-param>
  6. <param-name>contextConfigLocation</param-name>
  7. <param-value>classpath*:spring-springmvcConfig.xml</param-value>
  8. </init-param>
  9. <load-on-startup>1</load-on-startup>
  10. </servlet>
  11. <servlet-mapping>
  12. <servlet-name>springmvc</servlet-name>
  13. <url-pattern>/</url-pattern>
  14. </servlet-mapping>

<!-- Spring MVC --><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:spring-springmvcConfig.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>

很多同学会遇到一个情况,那就是中文乱码。所以这里再配置一个编码过滤器,避免处理一些请求时出现中文乱码:

[html] view plain copy print?
  1. <!--配置字符编码过滤器-->
  2. <filter>
  3. <filter-name>encodingFilter</filter-name>
  4. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  5. <init-param>
  6. <param-name>encoding</param-name>
  7. <param-value>UTF-8</param-value>
  8. </init-param>
  9. <init-param>
  10. <param-name>forceEncoding</param-name>
  11. <param-value>true</param-value>
  12. </init-param>
  13. </filter>
  14. <filter-mapping>
  15. <filter-name>encodingFilter</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>

 <!--配置字符编码过滤器--><filter><filter-name>encodingFilter</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>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

现在我们所有的配置都已经完成了,接下来就是实现一些业务逻辑代码

四、Controller-控制器

在src/main/Java目录下建立包目录com.promonkey.controller(这里的路径要和spring-xxxx.xml文件中扫描controller指定的路径一致)。创建完包目录就新建一个Java文件,命名为MainController。

[java] view plain copy print?
  1. package com.promonkey.controller;
  2. import org.springframework.stereotype.Controller;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestMethod;
  5. /**
  6. * Created by Promonkeyon 2017/1/16.
  7. *
  8. * @Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
  9. */
  10. @Controller
  11. public class MainController {
  12. /**
  13. * @return 处理完该请求后返回的页面,此请求返回 index.jsp页面
  14. * @RequestMapping()注解:用于定义一个请求映射,value为请求的url,值为 / 说明,该请求首页请求,method用以指定该请求类型,一般为get和post;
  15. */
  16. @RequestMapping(value = "/", method = RequestMethod.GET)
  17. public String index() {
  18. return "index";
  19. }
  20. }

package com.promonkey.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;/*** Created by Promonkeyon 2017/1/16.** @Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;*/
@Controller
public class MainController {/*** @return 处理完该请求后返回的页面,此请求返回 index.jsp页面* @RequestMapping()注解:用于定义一个请求映射,value为请求的url,值为 / 说明,该请求首页请求,method用以指定该请求类型,一般为get和post;*/@RequestMapping(value = "/", method = RequestMethod.GET)public String index() {return "index";}
}

关于一些注解的说明:
 (1)@Controller注解:采用注解的方式,可以明确地定义该类为处理请求的Controller类;
 (2)@RequestMapping()注解:用于定义一个请求映射,value为请求的url,值为 / 说明,该请求首页请求,method用以指定该请求类型,一般为get和post;
 (3)return "index":处理完该请求后返回的页面,此请求返回 index.jsp页面。这里返回index,结合上面配置spring-xxxx.xml中的视图解析器,即可跳转到index.jsp页面

五、运行jetty服务器
点开右侧的项目,选择jetty run 双击或者点击上面的启动按钮即可启动jetty服务器。

出现如下提示则表示启动成功:
 
接下来就可以打开 http://localhost:8088 进入网站了(端口设置在上篇配置pop.xml文件时有配置)

搭建IntelliJ IDEA+maven+jetty+SpringMVC 开发环境(一)

搭建IntelliJ IDEA+maven+jetty+SpringMVC 开发环境(二)相关推荐

  1. 搭建IntelliJ IDEA+maven+jetty+SpringMVC 开发环境(一)

    2017一月 16 转载自 http://blog.csdn.net/jdjdndhj/article/details/54572439 原 搭建IntelliJ IDEA+maven+jetty+S ...

  2. 好嗨哟 之 Mac OS 搭建 Eclipse + Tomcat + Maven Web 端开发环境。。。

    LZ-Says:是过往云烟,还是回眸一笑,自在人心. 前言 从上周三临近下班时,接收到接下来要开发接口. 回归 Java 莫名的兴奋,多少还是有点不舍,不过多掌握几门,还是比较不错的. 至少相比曾经的 ...

  3. 使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

    做了三年多的JavaEE开发了,在平时的JavaEE开发中,为了能够用最快的速度开发项目,一般都会选择使用Struts2,SpringMVC,Spring,Hibernate,MyBatis这些开源框 ...

  4. SpringMVC学习(一)——快速搭建SpringMVC开发环境(非注解方式)

    目录 1.开发环境准备 1.1.首先电脑需要安装JDK环境(略) 1.2.准备一个以供开发的tomcat 1.3.准备Maven工具 1.4.准备IDE编译器 1.5.准备一个本地的数据库, 2.搭建 ...

  5. SpringMVC学习(二)——快速搭建SpringMVC开发环境(注解方式)

    文章目录 说明 1.工程搭建 2.注解配置 2.1.context:annotation-config说明 2.2.context:component-scan配置说明 2.3.mvc:annotat ...

  6. 如何使用 IntelliJ IDEA 2017 配置PHP开发环境 及项目搭建

    IntelliJ IDEA 2017 配置PHP开发环境 及项目搭建 本文适用于初学者利用 IntelliJ IDEA搭建 PHP 工程及 PHP开发环境,本人也是初学者,在学习中有所心得,特此罗列如 ...

  7. 【官方搭建入门】JEEWX 捷微开发环境搭建必读

    [官方搭建入门]JEEWX 捷微开发环境搭建必读 下载地址: http://git.oschina.net/jeecg/jeewx 1. 标准开发环境:eclipse + maven + jdk7 + ...

  8. apache geode项目结构_使用IntelliJ IDEA+Maven 创建、开发、管理项目

    前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考. 来源:http://1t.click/ag4d # 前言 本篇开发环境 1.操作系统:Windows 10 X642.Java SDK: ...

  9. IntelliJ IDEA 2019 配置 PHP 开发环境及创建 PHP 项目

    目录 安装 appserv IntelliJ IDEA 2019 配置 PHP 开发环境 IntelliJ IDEA 2019 创建 PHP 项目 安装 appserv appserv-win32-2 ...

最新文章

  1. Java并发编程:JMM和volatile关键字
  2. 剑指offer :从尾到头打印链表
  3. windbg调试masm生成程序的方法
  4. python处理excel字典-python从excel创建字典
  5. android 获取数组大小,看得见的数据结构Android版之数组表(数据结构篇)
  6. python123数值运算代码_Python中的变量、数据类型(数值、列表)操作实例
  7. easyui java管理系统_EasyUI 后台管理系统
  8. linux挂载iso镜像进系统,linux可以加载iso镜像文件到启动项吗
  9. 二叉树——新二叉树(洛谷 P1305)
  10. 第五章、使用复合赋值和循环语句
  11. 总结一下最近面试经常被问到的问题(2019年4月)
  12. docker swarm 部署 sentry9.1.2
  13. 自动采集收录导航源码
  14. 路由追踪测试软件,路由追踪命令是什么 使用路由追踪的技巧
  15. tftp linux 配置管理
  16. bitwise ssh client的使用
  17. 蓝桥杯的比赛流程和必考点
  18. 合肥工业大学机器人技术五十六题
  19. Linux从零学习记录(四)
  20. PDF文件怎么修改,如何替换PDF中的一页

热门文章

  1. 家有路由器,为什么会出现网络拒绝接入而无法上网的情况呢?
  2. iOS14.5 Beta7使用体验感受
  3. 一生只有一个配偶的动物,如果一方死亡了,另一方会怎么办?
  4. 为什么赚不到90后00后的钱?
  5. 吸引人才的十大顶尖运营机制
  6. 聪明女人的七个致富之道,学会它你也能成为人人羡慕的小富婆
  7. 手机开启热点给其他设备上网和用插卡随身路由给其他设备上网有何区别呢?
  8. Java相关资源下载路径
  9. geoiplookup命令没有任何输出问题
  10. mysql查询时间提前五天_mysql选择月份查询该月有付款的数据(间隔x月并提前5天付款)...