IDEA环境下spring web项目极简流程

1 篇文章 0 订阅

本文介绍了在IDEA开发环境下使用Spring框架建立web项目的流程,能够实现简单的资源请求访问,主要对mvc配置参数进行了说明,供大家参考讨论。

添加基本代码并成功运行

  • 新建web项目,并添加maven和spring支持,配置好tomcat(基本方式自行百度);
  • 编写代码,尝试启动。

报错:java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener
解决方案:http://blog.csdn.net/Slow_Wakler/article/details/54809467,手动在Project Structure的Artifacts中Output Layout的WEB-INF下创建lib路径,并添加所有依赖jar包。

  • 重新启动,成功。

额外说明
如果不通过IDEA开发环境添加spring支持,而是采用手动添加spring xml配置文件以及更新web.xml文件中的相关配置信息来添加spring框架,配置了多个spring xml配置文件,相互间不会感应到bean以及其他配置,不方便开发,实际运行不会报错。这时候打开xml配置文件,可能会在页面顶部出现“create spring facet”的提示,直接点击,然后点击弹框中的ok即可。如果上述方式不行,就重新添加一下spring支持。

设置主页

通过在web.xml文件中配置如下字段即可,list从前到后索引,存在的第一个页面作为主页返回至页面,如果资源存在但不具备访问权限,会返回404错误。

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

访问静态资源

当设置主页时,明明资源文件存在,但实际访问的时候,却报了404错误。究其原因发现:WEB-INF路径下的资源是不能被直接访问的,必须通过配置mvc:view-controller进行重定向,或者添加@controller @RequestMapping注释返回重定向路径才能够访问。
完美解决方案:
http://blog.csdn.net/suyu_yuan/article/details/52775828
https://www.cnblogs.com/cxyj/p/3885338.html

针对静态资源的访问权限问题,我们通常在web.xml中配置或者在spring配置文件中配置类似这样的语句即可。

配置的时候如果粗心,可能出现报错:通配符的匹配很全面, 但无法找到元素 ‘mvc:resources’ 的声明。需要在xsi:schemaLocation中增加,http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd,参考:http://blog.csdn.net/zhengyeqing520/article/details/6091656

mvc配置参数

在spring web开发中,用于处理请求与响应之间调度的主要就是mvc配置参数,包含以下内容:

  • mvc:resources 用于处理静态资源的访问。
  • mvc:view-controller 一般还得加上viewResolver(视图解析器:有多个类供选择,将视图名翻译为url,并将请求传递给RequestDispatcher显示视图)的配置才能发挥作用,常用配置如下:
<bean id="defaultViewResolver"  class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="2"> 
        <property name="viewClass"  value="org.springframework.web.servlet.view.JstlView"/> 
        <property name="contentType" value="text/html"/> 
        <property name="prefix" value="/WEB-INF/jsp/"/> 
        <property name="suffix" value=".jsp"/> 
</bean> 

两种用法:

1)、重定向
即如果当前路径是/ 则重定向到/admin/index;

2)、view name
如果当前路径是/ 则交给相应的视图解析器直接解析为视图。

  • mvc:annotation-driven 简单方便,功能完全可由mvc:view-controller 实现,但是mvc:view-controller则更进一步。
  • 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案。 会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。

  • mvc:interceptors 拦截器,拦截用户的请求并进行相应的处理。

  • mvc:default-servlet-handler 静态资源默认servlet处理器,可指定servlet名称。简单方便,功能完全可由mvc:resources 实现,但是mvc:resources则更进一步。

编写http请求,并测试

直接在controller中编写post或者get请求,但访问后出现404,这个404是针对对应的jsp文件不存在而报的。

进而提出问题:为啥Controller中返回String 会去匹配jsp文件?原因:没有加@ResponseBody注释并且配置了viewResolver的suffix为“.jsp”,便会产生这个问题。这个注解就是将方法的返回值作为reponse的body部分。

到此,即完成了一个简单spring web项目建立,能够实现静态资源访问、动态请求响应!

==================================
==疑问?帮助?批评?欢迎评论 | QQ:593159978==
==================================

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值