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>

java web的MVC框架,el表达式,servlet,jstl表达式的更多相关文章

  1. Java Web自定义MVC框架详解 (转)

    转自:http://blog.csdn.net/jackfrued/article/details/42774459 最近给学生讲Java Web,希望他们能够在学完这部分内容后自己实现一个MVC框架 ...

  2. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  3. 【jframe】Java Web应用程序框架 - 第01篇:Get Started

    jframe是什么? jframe是一个基于MIT协议开源的java web应用程序框架,汇聚了我们团队之于java web应用程序的核心架构思想以及大量最佳实践,并且持续在实际项目中不断完善优化. ...

  4. Web前端MVC框架的意义分析

    前言: Web前端开发是Web技术发展中的一个重要组成部分,在传统的前端开发中由于外界因素的影响导致其开发形式呈现出简单化的特点,即以页面为主体来展示界面中的信息.然而随着科学技术的不断进步,Web前 ...

  5. [转]EL表达式和JSTL表达式实例

    /* **Title:EL表达式和JSTL表达式实例 **Author:Insun **Blog:http://yxmhero1989.blog.163.com/ */ 为了方便写JSP,我们引入了E ...

  6. jsp web JavaBean MVC 架构 EL表达式 EL函数 JSTL

     一.JavaBean概念(非常重要) 1.JavaBean就是遵循一定书写规范的Java类型(开发中:封装数据) a.必须有默认的构造方法,类必须是public的   public class  ...

  7. Java Web(八) MVC和三层架构

    今天终于认识到自己的渺小,想起了一句话,不努力机会来了你也抓不住,不要一直想一步登天,一直沉浸在白日梦的美好之中,一步一个脚印,有多大能力做多大的事情,走程序员的这条路,那么我就想去好公司,一切都以进 ...

  8. (21) java web的struts2框架的使用

    在javaweb开发过程中,如果只使用servlet,jdbc,jsp进行开发,也可以遵从MVC的模式,这时候,servlet相当于control层,属于负责处理业务逻辑的控制器,同时也需要对获取和返 ...

  9. 从零开始学 Java - 搭建 Spring MVC 框架

    没有什么比一个时代的没落更令人伤感的了 整个社会和人都在追求创新.进步.成长,没有人愿意停步不前,一个个老事物慢慢从我们生活中消失掉真的令人那么伤感么?或者说被取代?我想有些是的,但有些东西其实并不是 ...

随机推荐

  1. _string

    -- 游戏提示字符串设置-- 小技巧:可以修改游戏的自定义表相关提示符 1 |cFFF49B00[世界聊天]|r%s:%s2 |cFFFC5900[登录公告]|r|cFFFBF326欢迎%s登录创世魔 ...

  2. (转)关于request.getServletPath(),request.getContextPath()的总结

    文章完全转载自 : https://blog.csdn.net/qq_27770257/article/details/79438987 最近对于request中的几种“路径”有点混淆,查找网上资源都 ...

  3. xls到xml

      protected void btn_ok_Click(object sender, EventArgs e)     {         string x = txtpath.Text;     ...

  4. chat聊天系统项目

    项目名称:实现一个在线聊天系统? 一.需求 1. 海量用户在线聊天系统:2. 用户登录注册:3. 根据用户ID或者Nickname搜索并添加用户:4. 动态知道好友上下线:5. 可以创建群并添加好友到 ...

  5. jquary 选择器,dom操作知识点

    选择器: 1. 基本选择器 1. 标签选择器(元素选择器) * 语法: $("html标签名") 获得所有匹配标签名称的元素 2. id选择器 * 语法: $("#id的 ...

  6. Windows server2008服务器设置多用户登录

    添加用户 右击我的电脑-->管理-->本地用户和组-->新用户 启用远程服务并添加远程用户 启用 右键我的电脑--->属性--->远程设置--->勾上允许远程连接到 ...

  7. Hive - - 分组求最大,最小(加行键)

    Hive - - 分组求最大,最小(加行键) 数据: 1325927 陕西 汉中 084 08491325928 陕西 汉中 084 08491325930 陕西 延安 084 08421325931 ...

  8. yeoman 前端自动化构建工具 generator-fountain-webapp

    直接上我的github地址. https://github.com/631535199/yo-react

  9. Python3 NameError: name 'open' is not defined处理办法

    一.说明 之前默认以为python的open方法用存哪里都没什么区别的,然后昨天直接在"__del__()"中使用今天同事跑程序时反馈程序报错“Python3 NameError: ...

  10. 虚拟机centos7 基础模板制作

    用于新模板制作,主要针对一些基本组件的安装 分区.安装不在此赘述 最小化安装centos7-minimal-1810 1.安装wget yum install wget -y 2.更换aliyun源 ...