java web的MVC框架,el表達式,servlet,jstl表達式

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典範,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯彙集到一個部件裏面,在改進和個性化定製界面及用戶交互的同時,不須要從新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。數據庫

模型通常有兩類,一種是跟數據庫的表結構對應的一個類,還有一種,有時候咱們頁面顯示的內容須要多表鏈接才能查到,這時候就須要定義一個模型類,用來在數據庫讀取時存放須要的數據。服務器

在一次請求中,服務器將請求信息發送至Servlet,Servlet處理請求而且將響應內容傳給服務器。jsp

  所以servlet充當着控制器(controller)的角色。url

  jsp頁面就是視圖(view)層。spa

  模型層就是用戶定義的模型類。設計

當咱們須要在jsp頁面顯示數據庫數據時,通常是先到一個servlet進行取數據處理,把取到的數據設到request中去,而後請求轉發到jsp頁面,jsp頁面經過el表達式便可獲取數據。code

說的通俗一點就是當咱們點擊了一個超連接,超連接不要寫xxx.jsp,而應該寫某個servlet 的url,這個servlet 進行查詢數據庫處理,把獲得的數據設置到request 以後進行forword跳轉到jsp頁面進行顯示。blog

下面是本身的項目中的一個例子(代碼順序按照執行順序):排序

 

當須要訪問一個頁面時,先請求對應的servlet,例子中是ViewResultDetailServlet:get

<td><a href="<%=request.getContextPath()%>/ViewResultDetailServlet?competitionid=<%=officermsg.getId()%>&competitionname=<%=officermsg.getCompetitionname() %>">查看詳情</a></td>

ViewResultDetailServlet的代碼:

/** * 給admin/viewResultDetail.jsp頁面的傳輸數據 */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int competitionid = 0; String competitionname = null; try{ competitionid=Integer.parseInt(request.getParameter("competitionid")); competitionname=request.getParameter("competitionname"); }catch(Exception e){ response.sendRedirect(request.getContextPath()+"/admin/viewResultSummary.jsp"); e.printStackTrace(); } request.setAttribute("competitionid", competitionid); request.setAttribute("competitionname", competitionname); ArrayList<TeamScoreMsg> teamScoreMsg = TeamApplyMsgDaoImpl.getTeamApplyMsgList(competitionid,2);//按什麼排序 1隊長學號 2成績
        request.setAttribute("teamScoreMsg", teamScoreMsg); request.getRequestDispatcher("admin/viewResultDetail.jsp").forward(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); }

 

viewResultDetail.jsp

<table class="table table-border table-bordered table-bg table-hover table-sort">
                <thead>
                    <tr class="text-c">
                        <th width="100px">隊長學號</th>
                        <th width="100px">隊長</th>
                        <th width="100px">隊伍名稱</th>
                        <th width="100px">所屬學院</th>
                        <th width="200px">隊員</th>
                        <th width="100px">隊員人數</th>
                        <th width="50px">成績</th>
                        <th width="50px">獲獎信息</th>
                    </tr>
                </thead>
                <tbody>
                     <c:forEach items="${teamScoreMsg }" var="teamScoreMsg">
                    <tr class="text-c">
                        <td>${teamScoreMsg.captainNum}</td>
                        <td>${teamScoreMsg.captainName}</td>
                        <td>${teamScoreMsg.teamName}</td>
                        <td>${teamScoreMsg.xueyuan}</td>
                        <td>
                        <c:forEach items="${teamScoreMsg.members}" var="student">
                        <p>${student.studentnum}&nbsp;&nbsp;${student.name}&nbsp;&nbsp;${student.xueyuan}</p>
                        </c:forEach>
                        </td>
                        <td>${teamScoreMsg.members.size()}</td>
                        <td>${teamScoreMsg.score}</td>
                        <td>${teamScoreMsg.grade}</td>
                    </tr>
                    </c:forEach>             
                    
                </tbody>
                <tfoot>
                    
                </tfoot>
            </table>
相關文章
相關標籤/搜索