SpringMVC-要求と応答の処理(実戦二)


この文章は応答の処理を述べて、要求の処理について私の第1篇の文章のリンクの住所を見ることができます:https://segmentfault.com/a/11...
前期準備
使用環境
  • JDK:1.8
  • Tomcat:9.0.3
  • Spring:5.2.8
  • Maven:3.6.3
  • コンパイラ:IntelliJ IDEA 2019
  • web.xml構成
    
    
         
          
            mvc
            org.springframework.web.servlet.DispatcherServlet
             
                contextConfigLocation
            classpath:ApplicationContext.xml
             
        
         
            mvc
            *.do
         
    

    ApplicationContext.xmlプロファイル(Springコアプロファイル)
    
    
    
        
         
        
         
    

    レスポンス処理
    オリジナルのサーブレット処理はresponseを直接採用して出力ストリームの直接応答を取得してブラウザに渡し、requestで転送またはリダイレクトする3つの方法があり、現在spring-mvcを使用して応答する処理が行われている
    Stringに戻る
  • 「forward:リソースパス名」:コロンの後ろのリソースパス
  • に転送
  • 「redirect:リソースパス名」:コロンの後ろにリダイレクトされたリソースパス名
  • ":空の列を返すとindexが検索されます.jspリソース
  • のサンプルコードは、
  • です.
    @Controller
    public class UserController {
        
        //         :     list  
        @RequestMapping("test.do")
        public String testFive(User user){
            System.out.println(user);
            return "redirect:welcome.jsp";
        }
    }

    ModelAndView
  • Model、ModelMap、およびModelAndViewの違い
  • ModelおよびModelMapは、返されるパラメータ(key-value)
  • のみを格納します.
  • ModelAndViewは、返されるパラメータを格納することも、リソースパス
  • を格納することもできる.
  • ModelAndViewには、次の2つの重要な属性があります.
  • Object view:ストレージリソースパス
  • ModelMapmodel:返されるパラメータが格納され、mvcフレームワークは格納されたKey-valueデータをrequest役割ドメイン
  • に格納する.
  • コードは次のとおりです.
  • index.jsp:
  • 
    
    
     
     
     cai jin hong
    
    
     
    account:
    password:
    balance:
    address1:
    address2:
  • welcome.jsp:(この場合、JspはrequestScopeの役割ドメインから私たちが保存したaccountを抽出することができます)
  • 
    
    
     Title
    
    
     param:welcome,${param.account}
    requestScope:welcome,${requestScope.account}
  • Java:
  • @Controller
    public class UserController {
         //         :     list  
         @RequestMapping("test.do")
         public ModelAndView testFive(User user){
             //  ModelAndView  
             ModelAndView mv = new ModelAndView();
             //       
             mv.addObject("account", user.getAccount());
             mv.addObject("password", user.getBalance());
             //      
             mv.setViewName("welcome.jsp");
             return mv;
         }
    }

    セッションの役割ドメインに格納
  • まず、request役割ドメイン
  • にパラメータ(Key-value)を格納する必要がある.
  • @SessionAttributes({"key","})注釈によってSession役割ドメイン
  • に格納される
  • のコードは次のとおりです.(この場合、welcome.jspはSessionScopeの役割ドメインからaccountの値を取得できます)
  • @Controller
    @SessionAttributes("account")
    public class UserController {
        //         :     list  
         @RequestMapping("test.do")
         public ModelAndView testFive(User user){
             //  ModelAndView  
             ModelAndView mv = new ModelAndView();
             //       
             mv.addObject("account", user.getAccount());
             mv.addObject("password", user.getBalance());
             //      
             mv.setViewName("welcome.jsp");
             return mv;
         }
    }