springmvc的配置和实现_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
2
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3556 | 回复: 1   主题: springmvc的配置和实现        下一篇 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-9-17 0:15:02 | [全部帖] [楼主帖] 楼主

从创建工程开始,一步步来,先创建web.xml

先要配置一个servlert,跟struts2差不多,struts2配置的是一个filter

意思都差不多。

配置的时候最麻烦的地方就是<servlet-class></servlet-class>


很难记住类名。

我认为这也是spring难学的原因之一。

好多类啊~~,完全不知道怎么用。没事,一步步来呗。能用一个是一个。

既然是用spring,那肯定要引入springjar包。

我是从spring官网下的,有源码的那种,

北京联动北方科技有限公司

每个功能都分得很详细,需要什么用什么,���们是使用mvc,所以我引用了spring-webmvc.jar.

北京联动北方科技有限公司

Servlet就要用这个类,名字也比较像,我确实是没有刻意去记他,但是 你翻翻jar包,还是能比较快速的找到所要的类的,大致留个印象在脑海就可以了。

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>


好,这样就完成了servlet的配置,就是用来转发的作用,转发给另一个类,然后另一类,再根据你在xml配置的路径 所对应的control

struts还是非常相似的。

我们这么配置个servlet肯定是不可以的,还需要个配置文件,配置分发请求给对应的Control的类,还需要配置一个根据返回值显示jsp的类。

创建配置文件springmvc.xml

配置上述2bean

首先是handler

这个时候又要想用什么class了。。。(感觉记住所所有类名是不可能的,还是说在脑子里留个印象)

北京联动北方科技有限公司

我随便找了下,可以使用SimpleUrlHandlerMapping

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/user.do" value="userControl"></entry>
</map>
</property>
</bean>


上面意思就是说,当你请求urluser.do 的时候,我就请求id=userControlbean

所以我们还需要创建个userControlbean

首先我们要创建个UserControl,用来处理用户请求,这个UserControl必须要实现Controller

public class UserControl implements Controller{
      @Override
      public ModelAndView handleRequest(HttpServletRequest arg0,
      HttpServletResponse arg1) throws Exception {
            return new ModelAndView("user");
      }
}


就像struts里面的action差不多。

这个先不多说。

下面把这个类的bean配置一下。

<bean id="userControl" class="com.javalong.springmvc.control.UserControl">
</bean>


就这样简单的写下就可以了,没有什么属性需要注入。

下面我们再来想个问题。

public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
      return new ModelAndView("user");
}


这个方法中,返回值什么意思啊?

既然说跟struts里面的action差不多,那么不难想象,这个返回值,其实是为了转发给对应的jsp

springmvc中,你需要配置一个bean来解析,你要转发的jsp

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="suffix" value=".jsp"></property>

<property name="prefix" value="/jsp/"></property>

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>

</bean>

前面2个属性,就是配置前后缀,没什么好说的,后面一个就是

配置上后,可以在jsp中 使用jstl

好,到这里就都配置好了~

还差一个地方就是,我们要创建一个jsp

北京联动北方科技有限公司

应为我定义了个前缀/jsp/,所以我建了个文件夹,然后return new ModelAndView("user");

user,后缀是.jsp,所以合起来就是user.jsp.这应该没什么好说的。

Jsp内容非常简单:

<%@page pageEncoding="utf-8" contentType="text/html; charset=utf-8"%>
<html>
<head>
</head>
<body>


欢迎关注~java_along~

</body>
</html>


就显示一段文字。

下面我们部署到tomcat中,试试可以不可以。

访问:报错

北京联动北方科技有限公司

一看就知道少jar包。

导入spring-context-4.1.0.RELEASE.jar

访问,报错

北京联动北方科技有限公司

导入spring-beans-4.1.0.RELEASE.jar

访问 报错

北京联动北方科技有限公司

导入spring-core-4.1.0.RELEASE.jar

启动报错:

北京联动北方科技有限公司

导入commons-logging.jar

访问,报错

北京联动北方科技有限公司

这个错误就是jar包问题了。错误说找不到/WEB-INF/spring-servlet.xml,这个就比较奇怪了,这是一个什么文件啊,我在其他地方啊没用到,我需要你找嘛,你就找不到~~~

因为在web.xml里面配置servlet的时候,是需要配置你springmvc配置文件的路径的,如果你不配置,那么你的文件名就默认叫servlet-name再加上-servlet.xml,并且在/WEB-INF

下面我们配置下路径。

<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:springmvc.xml</param-value>
</init-param>
</servlet>


加个初始化变量contextConfigLocationclasspath:springmvc.xml这个意思就是类路径下,springmvc.xml,准确点,应该是bin目录下的springmvc.xml,但是因为src编译后就会到bin目录下,所以一般写classpath,你放在src目录下也是没错的。

下面我们访问下~~~

北京联动北方科技有限公司

导入spring-expression-4.1.0.RELEASE.jar

访问 报错

北京联动北方科技有限公司

导入jstl-1.1.2.jar

运行 报404错误~~

因为我们在web.xml配置了/* 就是所有请求都要通过handler,也就是最后访问的/jsp/user.jsp的请求也经过handler,结果handler发现没有配置对应的controller,所以报了个404,我们在web.xml配置为*.do就可以了

访问成功~~

北京联动北方科技有限公司

大功告成~~~~~

希望大家多多关注java_along~~~




赞(0)    操作        顶端 
java_along
注册用户
等级:上尉
经验:771
发帖:36
精华:0
注册:2014-2-17
状态:离线
发送短消息息给java_along 加好友    发送短消息息给java_along 发消息
发表于: IP:您无权察看 2014-9-17 0:16:16 | [全部帖] [楼主帖] 2  楼

哎 感觉想换个工作,愿意高薪聘请的举手 嘿嘿~~



赞(0)    操作        顶端 
总帖数
2
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论