熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Springmvc的開發流程--附帶實例

2013-11-23 18:41:37  來源: Java核心技術 
    在開發Spring mvc的時候各種配置下來往往項目跑起來了但是一天不寫第二天又忘記怎麼搭建了所以應該將搭建的思路寫下來這樣開發的時候就會方便許多就像學武一樣有武功秘籍和沒有武功秘籍一樣記住開發流程思路會變得很清晰開發起來也就更加快速

    Spring mvc的開發流程如下
   
配置基礎
   
    >配置目錄結構比如基於eclipse格式還是Maven格式
   
    >配置webxml主要是以下幾個
   
    orgspringframeworkwebservletDispatcherServlet
   
    orgsprntextContextLoadListener
   
    orgspringframeworkwebfilterCharacterEncoding
   
    orgspringframeworkwebutilLogjConfigListener
   
   開發獨立的業務邏輯並在配置文件中進行實例化(當然也可以直接new)
   
   添加web請求入口
   
    如<a href= >登錄</a>
   
    添加HandlerMapping
   
    DispatchServlet接收到web請求後將尋求相應的HandlerMapping進行web請求到具體的Controller實現相應的匹配
   
    實現對應的Controler並添加到配置文件中
   
    只有實現了ControllerDispatcherServlet並不會直到它的存在還需要將該控制器在配置文件中進行配置
   
   添加視圖解析器
   
    DispatchServlet根據Controller中的邏輯視圖命查找相應的視圖實現默認的是orgspringframeworkwebservletviewInternalResourceViewResolver
   
實現相應視圖
   
   
   


    接下來按照上面的描述來建立一個最簡單的Spring mvc項目
   
配置目錄結構
   
    >采用的是eclipse目錄
   
    >配置webxml
   
    <?xml version= encoding=UTF?><webapp xmlns:xsi=instance
   
    xmlns= xmlns:web=app__xsd
   
    xsi:schemaLocation= app__xsd
   
    id=WebApp_ID version=>
   
    <displayname>spring_mvc_</displayname>
   
    <! The front controller of this Spring Web application responsible for
   
    handling all application requests >
   
    <servlet>
   
    <servletname>dispatcher</servletname>
   
    <servletclass>orgspringframeworkwebservletDispatcherServlet</servletclass>
   
    <loadonstartup></loadonstartup>
   
    </servlet>
   
    <! Map all requests to the DispatcherServlet for handling >
   
    <servletmapping>
   
    <servletname>dispatcher</servletname>
   
    <urlpattern>*do</urlpattern>
   
    </servletmapping>
   
    <! Bootstraps the root web application context before servlet initialization >
   
    <listener>
   
    <listenerclass>orgsprntextContextLoaderListener</listenerclass>
   
    </listener>
   
    <welcomefilelist>
   
    <welcomefile>indexjsp</welcomefile>
   
    </welcomefilelist>
   
    <! Reads request input using UTF encoding >
   
    <filter>
   
    <filtername>characterEncodingFilter</filtername>
   
    <filterclass>orgspringframeworkwebfilterCharacterEncodingFilter</filterclass>
   
    <initparam>
   
    <paramname>encoding</paramname>
   
    <paramvalue>UTF</paramvalue>
   
    </initparam>
   
    <initparam>
   
    <paramname>forceEncoding</paramname>
   
    <paramvalue>true</paramvalue>
   
    </initparam>
   
    </filter>
   
    <filtermapping>
   
    <filtername>characterEncodingFilter</filtername>
   
    <urlpattern>/*</urlpattern>
   
    </filtermapping></webapp>
   
    由於只使用Springmvc所以沒有配置ContextLoadListener



    二開發獨立的業務邏輯並添加到配置文件中
   
    package comspringservice;import monsloggingLog;import monsloggingLogFactory;public class UserService {
   
    protected static Log log = LogFactorygetLog(UserServiceclass)
   
    public boolean login(String username String passworld) {
   
    (username + \t + passworld)
   
    if (usernameequals(admin) && passworldequals(admin)) {
   
    return true;
   
    }
   
    return false;
   
    }}
   
    因為只是為了演示思路所以業務邏輯很簡單並在配置文件中進行配置
   
    <?xml version= encoding=UTF?><beans xmlns=
   
    xmlns:xsi=instance xmlns:p=
   
    xmlns:context=
   
    xmlns:mvc=
   
    xsi:schemaLocation= mvcxsd
   
    beansxsd
   
    contextxsd>
   
    <bean id=userService class=comspringserviceUserService></bean></beans>
   
添加web請求入口
   
    <%@ page language=java contentType=text/html; charset=UTF
   
    pageEncoding=UTF%><!DOCTYPE html PUBLIC //WC//DTD HTML Transitional//EN ><html><head><meta httpequiv=ContentType content=text/html; charset=UTF><title>LOGIN</title></head><body>
   
    <form action=logindo method=post>
   
    用戶名 <input type=text name=username id=username /> <br> 密碼
   
    <input type=text name=password id=password /> <br> <input
   
    type=submit value=提交 />
   
    </form></body></html>
   
    我的是logindo注意不是/logindo
   
添加HandlerMapping
   
    <! 定義映射 >
   
    <bean id=handlerMapping
   
    class=orgspringframeworkwebservlethandlerBeanNameUrlHandlerMapping></bean>
   
    采用的是BeanNameUrlHandlerMapping這是Springmvc默認的也可以不配置要求是需要保證視圖模板請求路徑與容器中的HandlerBeanName一致



    五實現對應的Controller並添加到配置文件中
   
    LoginController
   
    package ntroller;import javaxservlethttpHttpServletRequest;import javaxservlethttpHttpServletResponse;import monsloggingLog;import monsloggingLogFactory;import orgspringframeworkwebservletModelAndView;import orgspringframeworkwebservletmvcAbstractController;import comspringserviceUserService;public class LoginController extends AbstractController {
   
    protected static Log log = LogFactorygetLog(LoginControllerclass)
   
    private UserService userService;
   
    public UserService getUserService() {
   
    return userService;
   
    }
   
    public void setUserService(UserService userService) {
   
    thisuserService = userService;
   
    }
   
    @Override
   
    protected ModelAndView handleRequestInternal(HttpServletRequest request
   
    HttpServletResponse response) throws Exception {
   
    ModelAndView mv = new ModelAndView()
   
    boolean isSuccess = userServicelogin(requestgetParameter(username
   
    requestgetParameter(password))
   
    Systemoutprintln(isSuccess)
   
    mvaddObject(login isSuccess)
   
    if (isSuccess) {
   
    mvsetViewName(success
   
    } else {
   
    mvsetViewName(failed
   
    }
   
    Systemoutprintln(mvgetViewName())
   
    return mv;
   
    }}
   
    配置文件
   
    <! 定義控制器 >
   
    <bean name=/logindo class=ntrollerLoginController>
   
    <property name=userService ref=userService></property>
   
    </bean>
   
    注意我請求路徑是logindo所以過根據BeanNameUrlHandlerMapping所以配置文件中的也是/logindo如果請求路徑是/logindo將會出現錯誤
   
添加視圖解析器
   
    <! 定義ViewReSover >
   
    <bean id=viewResolver
   
    class=orgspringframeworkwebservletviewInternalResourceViewResolver>
   
    <property name=prefix value=/WEBINF/views/></property>
   
    <property name=suffix value=jsp></property>
   
    </bean>
   
    七實現相應視圖
   
    <%@ page language=java contentType=text/html; charset=UTF
   
    pageEncoding=UTF%><html><head><meta httpequiv=ContentType content=text/html; charset=UTF><title>Insert title here</title></head><body>Hello Spring MVC<br>歡迎${login}登錄成功</body></html>
   
    到此一個簡單的Springmvc項目就搭建成功了不過要注意的是這七個步驟並不是一定要按照這個順序順序可以有變動但是開發過程中記住這七個步驟思路將會更加清晰


From:http://tw.wingwit.com/Article/program/Java/hx/201311/25579.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.