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

时间:2023-01-23 20:36:31

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. &lbrack;转&rsqb;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&lpar;八&rpar; MVC和三层架构

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

  8. &lpar;21&rpar; java web的struts2框架的使用

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

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

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

随机推荐

  1. PHP使用命名空间:别名&sol;导入&lpar;Aliasing&sol;Importing&rpar;

    1.导入,就是使用use操作符 2.在一个类中导入了另一个类之后,当前的命名空间仍然是当前类的命名空间 3.注意对命名空间中的名称(包含命名空间分隔符的完全限定名称如 Foo\Bar以及相对的不包含命 ...

  2. POJ 1753 &lpar;开关问题&plus;高斯消元法&rpar;

    题目链接: http://poj.org/problem?id=1753 题目大意:一堆格子,或白或白.每次可以把一个改变一个格子颜色,其上下左右四个格子颜色也改变.问最后使格子全部白或全部黑,求最小 ...

  3. O-C相关04&colon;类方法的概述与定义和调用

    类方法的概述与定义和调用 1, 类方法的概述 类方法(class method)在其他编程语言中常常称为静态方法(例如 Java 或 C# 等). 与实例方法不同的是,类方法只需要使用类名即可调用, ...

  4. 两款【linux字符界面下】显示【菜单】,【选项】的powershell脚本模块介绍

    两款[linux字符界面下]显示[菜单],[选项]的powershell脚本模块介绍 powershell linux  ps1 menu choice Multiselect 传教士 菜单 powe ...

  5. iOS多款源码分享

    iOS精选源码 列表联动,Linkage 电商商品详情 AxcUIKit-控件整合框架,快速简单的使用高级控件 GKNavigationBarViewController-导航栏联动 仿京东的加入购物 ...

  6. Luogu P2183 巧克力

    题目描述 佳佳邀请了M个同学到家里玩.为了招待客人,她需要将巧克力分给她的好朋友们.她有N(1<=N<=5000)块巧克力,但是大小各不一样,第i块巧克力大小为为1*Xi(1<=i& ...

  7. Python学习日记day3&colon;数据类型

    1.数据类型int :如1.2.4等, 用于计算 bool: True , False ,用户判断 str: 储存少量数据,进行操作.如:'fdasklfjfladfl','而而噩噩','1234' ...

  8. freemark标签中输出boolean值

    private boolean showHeader=true; public boolean getShowHeader(){ return this.showHeader; } public bo ...

  9. python 0228

    01 cpu 内存 硬盘 操作系统 CPU:*处理器,相当于人大脑. 飞机 内存:临时存储数据. 8g,16g, 高铁 1,成本高. 2,断电即消失. 硬盘:长期存储大量的数据. 1T 512G等等 ...

  10. SpringBoot打包报错没有主清单

    1,如果你的POM是继承spring-boot-starter-parent的话,只需要下面的指定就行. <properties> <!-- The main class to st ...