zoukankan      html  css  js  c++  java
  • java web的MVC框架,el表达式,servlet,jstl表达式

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    模型一般有两类,一种是跟数据库的表结构对应的一个类,还有一种,有时候我们页面显示的内容需要多表连接才能查到,这时候就需要定义一个模型类,用来在数据库读取时存放需要的数据。

    在一次请求中,服务器将请求信息发送至Servlet,Servlet处理请求并且将响应内容传给服务器。

      因此servlet充当着控制器(controller)的角色。

      jsp页面就是视图(view)层。

      模型层就是用户定义的模型类。

    当我们需要在jsp页面显示数据库数据时,一般是先到一个servlet进行取数据处理,把取到的数据设到request中去,然后请求转发到jsp页面,jsp页面通过el表达式即可获取数据。

    说的通俗一点就是当我们点击了一个超链接,超链接不要写xxx.jsp,而应该写某个servlet 的url,这个servlet 进行查询数据库处理,把得到的数据设置到request 之后进行forword跳转到jsp页面进行显示。

    下面是自己的项目中的一个例子(代码顺序按照执行顺序):

    当需要访问一个页面时,先请求对应的servlet,例子中是ViewResultDetailServlet:

    <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>
  • 相关阅读:
    让思考成为一种习惯:今年,我大四了
    asp.net core源码飘香:Logging组件
    asp.net core源码飘香:Options组件
    asp.net core源码飘香:Configuration组件
    asp.net core源码飘香:从Hosting开始
    webpack code split实现原理
    css specificity
    todo:read
    React Render Props 模式
    recompose mapProps 函数指南
  • 原文地址:https://www.cnblogs.com/w-honey/p/10596817.html
Copyright © 2011-2022 走看看