手把手实战:eclipse 搭建 SpringMvc 框架环境

环境准备

Eclipse
jdk1.8
tomcat 7

步骤总纲

     a.准备好开发环境
    b.下载相关jar包
    c.在eclipse 中创建好工程
    d.引进下载的jar 包
    e.配置xml文件
    f.编写代码及测试


spring mvc 相关jar 包


jsp、servelet 相关jar 包


创建工程及导入jar 包

在 Project Explorer 中  右键-->New -->Dynamic Web Project 


有时候可能你的工作空间中并没有创建过类似的工程,所以在New 的子菜单中并没有 Dynamic Web Project ,
那么你可以点 other ,然后在弹出的对话框中找到Web ,打开其折叠的项就可以找到 Dynamic Web Project。


选择 Dynamic Web Project 后会有对话框弹出,该对话框主要是设置一下工程的基础东西,如工程名、web服务器tomcat 
之类的,本例子采用eclipse 集成的 tomcat 7 (如何把tomcat 7集成到eclipse 中网上有很多教程,也很简单,相信你搜一下就可以知道了)。


填好之后可以直接 finish ,我得到的目录是如下所示。

扫描二维码关注公众号,回复: 1435385 查看本文章



然后,将下载到的所需要的 jar 包全部放到 WebContent/WEB-INF/lib 中去,
然后选中 工程 -->右键 -->Refresh,刷新一下,就可以看到jar 包自动配到环境路径中了。




接下来是xml 的配置文件,本例只需要配置两个xml 文件。一个是 web.xml ,这是所有web 项目都需要配置的;另一个是 spring 相关 所需要配置文件,我这里将其命名为 spring-mvc.xml ,当然你也可叫其他名字,只要在相应配置的地方别把你起的名字搞错就行了。

web.xml 这个文件是放到 WebContent/WEB-INF /路径下的。


web.xml 中的内容如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app version= "3.0"
     xsi:schemaLocation= "http://java.sun.com/xml/ns/javaee
<!--配置springmvc的核心分发器 -->  
<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-*.xml </param-value>
    </init-param>
    <load-on-startup> 1 </load-on-startup>
</servlet>
<!--核心分发器  要拦截哪些url -->  
<servlet-mapping>
    <servlet-name> springMVC </servlet-name>
    <url-pattern> *.do </url-pattern>
</servlet-mapping>
     
</web-app>
首先注意到 version="3.0" , 
这是我创建工程 的时候有相关选项,这里得跟那个选择对应。
<!--有哪些文件是要跟着一起初始化的 -->
    <init-param>
        <param-name> contextConfigLocation </param-name>
        <param-value> classpath:spring-*.xml </param-value>
    </init-param>
这个的意思就是有哪些配置文件要在启动时跟着初始化的,当然我们的另一个xml 文件也是要初始化的。但是web 容器的入口就是web.xml ,其他的xml你不跟它说,它是不知道的。所以在此告知我们src 下的 长得像 spring-*.xml 这样的文件也要初始化。前面我也说过,spring-mvc.xml 这个文件名是我自行起的,你可以叫别的名字,在web.xml 中能清楚告诉人家你的叫什么就行了。

spring-mvc .xml 是放到 src 下的


其内容为

<?xml version="1.0" encoding="UTF-8"?>
    xmlns:jdbc=" http://www.springframework.org/schema/jdbc "  
    xsi:schemaLocation="

   <!-- 开启注解 -->
   <mvc:annotation-driven/>
   
    <!-- 扫描哪些包-->
   <context:component-scan base-package="com.hlm"/>
    
    <!-- 配置视图解析器 -->
     <!--prefix和suffix:查找视图页面的前缀和后缀(前缀[逻辑视图名]后缀),
        比如传进来的逻辑视图名为WEB-INF/jsp/index,则该jsp视图页面应该存放在“WEB-INF/jsp/hello.jsp”; -->
     <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
   </bean>
</beans>

注意,我用到的spring 版本为4.3 所以在该文件开头对应地方也是对应着我4.3的版本。如果你的spring 是其他版本,请对应到你的版本上去。这些都是网上对应的文本,你不确定你写的是不是真有其文件的时候可以复制网址打开浏览器查询一下就知道了


创建所需要的包及文件。我创建了两个包:com.hlm.command 、com.hlm.controller 及一个文件夹 jsp


分别创建两个类

package com.hlm.command;
/**
 * <p>
 * <ul> Users : 对应hlm_users 表的实体 </ul>
 * <li> userName:用户姓名 </li>
 * <li> sex:性别 0 表示女,1表示男 </li>
 * <li> token:注册令牌,手机或邮箱 </li>
 * <li> tokenType:令牌类型。0为手机,1为邮箱 </li>
 * <li> password:密码 </li>
 * </p>
 * @author hlm
 *
 */
public class UsersCommand {
      private String userName ;
      private Integer sex ;
      private String token ;
      private Integer tokenType ;
      private String password ;
     
      public UsersCommand(){
           
     }
      public UsersCommand(String userName ,Integer sex ,String token ,
                           Integer tokenType ,String password ){
            this . userName = userName ;
            this . sex = sex ;
            this . token = token ;
            this . tokenType = tokenType ;
            this . password = password ;
     }
      public String getUserName() {
            return userName ;
     }
      public void setUserName(String userName ) {
            this . userName = userName ;
     }
      public Integer getSex() {
            return sex ;
     }
      public void setSex(Integer sex ) {
            this . sex = sex ;
     }
      public String getToken() {
            return token ;
     }
      public void setToken(String token ) {
            this . token = token ;
     }
      public Integer getTokenType() {
            return tokenType ;
     }
      public void setTokenType(Integer tokenType ) {
            this . tokenType = tokenType ;
     }
      public String getPassword() {
            return password ;
     }
      public void setPassword(String password ) {
            this . password = password ;
     }          
}
package com.hlm.controller;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class UsersController {
           
      @RequestMapping ( "/sigup.do" )                                                               
      public ModelAndView  sigup(HttpServletRequest req ){
            ModelAndView mv = new ModelAndView();
           
           UsersCommand cmd = new UsersCommand( "小明" ,0, "[email protected]" ,1, "123456" );
        
            req .getSession().setAttribute( "user" , cmd );
            mv .addObject( "password" , cmd .getPassword());
            mv .addObject( "userName" , cmd .getUserName());
            System. out .println( cmd .getPassword());
            mv .setViewName( "index" );
        return mv ;
     }
}
两个页面相关的文件如下


<! DOCTYPE html>
< html >
< head >
< meta charset = "UTF-8" >
< title > 登录页面 </ title >
</ head >
< body >
< a href = "sigup.do" > 点我登录 </ a >
</ body >
</ html >
<%@ page language = "java" contentType = "text/html; charset=utf-8"
    pageEncoding = "utf-8" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< title > 登录后的信息 </ title >
</ head >
< body >
  < p > ${password } </ p >
  < p > ${userName } </ p >
</ bod>

所有的配置及代码都写好之后,准备部署到tomcat 让它跑起来了。
找到如下位置,点击蓝色英文字来创建 Server 

如果在整个eclipse 版面中你没有找到上面的Servers 那么你可以到 Window--> Show View -->Servers 中将其找出来。


点击创建服务后,会出现如下弹窗。选择你在eclipse 中配的tomcat 就好了,我这里配的是 tomcat 7。


创建之后还需要设置一下。


然后将我们的工程添加到这个服务上去。






启动成功之后,打开浏览器。我用的是默认端口:8080,如果你改过自己tomcat 的端口,对应输入自己的就行了,然后后面是工程 的名字。
回车之后就是默认的首页 WebContent/index.html 。点击“点我登录”,应该跳转到 WebContent/WEB-INF/index.jsp 。




有时候,如果你视图解析的地方如果配得不正确,它有可能找不到你的jsp 的地址





git 代码地址:https://github.com/mottohlm/springmvctest

猜你喜欢

转载自blog.csdn.net/mottohlm/article/details/80468868
今日推荐