java web 之 SpringMVC4.x配置
Q Q:408365330 E-Mail:egojit@qq.com
综述:
有一段时间没做web开发了,最近一直在做Android和IOS开发,但是有个项目需要用同时考虑跨平台必须要用java web做服务端接口。没办法,刚开始写代码那会做的是ASP.NET web开发,现在只能赶鸭子上架了。java 语言倒是挺熟的(android开发一直在用)。但是Java web开发需呀掌握的技术还是蛮多的。凭着我以前做asp.net开发的经验,首先得选好几个框架, MVC框架,ORM工具,IOC和AOP框架。 首先个人特别喜欢MVC模式,所以必不可少选一个MVC框架(既然别人已经造好轮子了,肯定不会傻到自己去实现MVC模式)。java开源生态圈,可选择的余地非常大,比较出名的莫过于Struts2和SpringMVC.我选择了SpringMVC.没有其它原因,只是它小巧易用性能也相当不错,而且和Spring这ioc框架无缝对接。ORM 我考虑选择mybatis,不用说大家都知道它的优势,半自动ORM,性能必须好o IOC和AOP框架不用选了,就Spring了。毕竟以前都混迹于ASP.NET生态圈中,突然到JAVA web生态圈,必须得做些记录,首先记录下SpringMVC配置和第一个程序。然后就HelloWold了。
SpringMVC配置和第一个HelloWord
一、导入jar包:
eclipse和tomcat配置和集成就不记录了。首先在myeclipse中新建一个web项目(为了学习暂时就不用maven去管理项目了jar包了,全部手动去配置和导入)。
如上图:红色圈中是要我们自己手动添加的,config目录是放SpringMVC相关配置的。lib就是我们放jar包的地方,Views是MVC中的View层也就是视图文件目录。
将这些jar包拷贝到lib目录中,myeclipse会自动帮助我们处理我这里是MyEclipse10.x。
二、web.xml配置
1 <!-- 调度用Servlet --> 2 <servlet> 3 <servlet-name>DispatcherServlet</servlet-name> 4 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 5 <init-param> 6 <param-name>contextConfigLocation</param-name> 7 <param-value>WEB-INF/config/spring-mvc.xml</param-value> 8 </init-param> 9 <load-on-startup>1</load-on-startup> 10 </servlet> 11 <!-- URL映射 --> 12 <servlet-mapping> 13 <servlet-name>DispatcherServlet</servlet-name> 14 <url-pattern>/</url-pattern> 15 </servlet-mapping> 16 <servlet-mapping>
重点是这些配置,首先是配置一个Servlet来处理客户端请求,那么是不是什么请求都由着Servlet来处理呢?答案是肯定的,
<servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
<url-pattern>/</url-pattern>就决定了所有的文件都由这个Servlet来处理。但是我们就疑惑了,我们的静态文件比如.jpg,.js.css这些文件,当然是有它处理。那客户端肯定不能请求了,别急,后面我们有方法处理。桥到船头自然直。
<load-on-startup>1</load-on-startup>
这个就不做过多解释了,就理解成有这个配置它就和tomcat环境以前启动吧。
<param-name>contextConfigLocation</param-name><param-value>WEB-INF/config/spring-mvc.xml</param-value>
这个配置很清晰了,这就是配置SpingMVC的文件,这就是为什么我们手动添加config目录,后面我们会将SpringMVC的配置放进这个目录。
三、SpringMVC配置文件spring-mvc.xml的配置
在config目录中新建这个配置文件。添加如下代码:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" 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" 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.egojit" /> <!-- 配置返回类型 --> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </mvc:message-converters> </mvc:annotation-driven> <!-- 视图名称的解析 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="100" p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/views/" p:suffix=".jsp" /> </beans>
就不做过多解释,代码中有注释。
<!-- 视图名称的解析 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="100" p:viewClass="org.springframework.web.servlet.view.JstlView" p:prefix="/WEB-INF/views/" p:suffix=".jsp" />
就解释下这个,这个就是配置mvc 这个c层的目录,也就是View视图的目录路径。 并且配置了后坠是.jsp
四、代码Controller和HelloWorld:
首先仔细看下图:
package com.egojit; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class testController{ @RequestMapping("/test/index") private String Index(){ return "ok"; } }
我通过注解的方式新建了一个Controller.
并且通过@RequestMapping("/test/index")注解映射了URL 它对应的URL是 http://localhost:8080/test3/test/index
return "ok"表示返回了views视图目录中的ok.jsp文件(看上图的红圈)。这有一个完美的HelloWorld展现在我们面前了。如下图
这样SpringMVC就可以用了,会用了后面深入不是分分钟的事情嘛,
后记:
如果有什么问题希望各位网友指正,比较小弟是初次做java web开发。案例程序可以进CSDN我的资源中去下载,无须积分。jar包和源码都放在上面,点击传送