JavaWeb——EL技术,JSTL技术,JavaEE开发模式

EL技术

EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。

EL最主要的作用就是从域中取出数据,格式${EL表达式}

  • EL获得pageContext域中的值:${pageScope.key};
  • EL获得request域中的值:${requestScope.key};
  • EL获得session域中的值:${sessionScope.key};
  • EL获得application域中的值:${applicationScope.key};.
  • EL从四个域中获得某个值${key};

同样是依次从pageContext域,request域,session域,application域中 获取属性,在某个域中获取后将不在向后寻找

EL内置(11个)对象

1)接收传来的参数

param与paramValues  // param.参数名

相当于request.getParameter()  request.getParameterValues()

2)获取请求头信息

header,headerValues  // header.请求头参数

相当于request.getHeader(name)

3)获取全局初始化参数

initParam  // initParam.参数名

相当于this.getServletContext().getInitParameter(name)

web.xml文件格式

<context-param>
    <param-name>abc</param-name>
    <param-value>鑫哥棒棒哒!</param-value>
</context-param>

4)Cookie

cookie  // cookie.name,cookie.value

相当于request.getCookies()---cookie.getName()---cookie.getValue()

5)PageContext

PageContext.request.contextPath  // 获取当前WEB应用名称

相当于

<%=pageContext.getRequest().getContextPath%> 这句代码不能实现

其它功能:获得其他八大对象

PageContext.request/response/cookie/session

名称

类型

描述

out

javax.servlet.jsp.JspWriter

用于页面输出

request

javax.servlet.http.HttpServletRequest

得到用户请求信息,

response

javax.servlet.http.HttpServletResponse

服务器向客户端的回应信息

config

javax.servlet.ServletConfig

服务器配置,可以取得初始化参数

session

javax.servlet.http.HttpSession

用来保存用户的信息

application

javax.servlet.ServletContext

所有用户的共享信息

page

java.lang.Object

指当前页面转换后的Servlet类的实例

pageContext

javax.servlet.jsp.PageContext

JSP的页面容器

exception

java.lang.Throwable

表示JSP页面所发生的异常,在错误页中才起作用

判断是否为空

${empty user}

JSTL技术

JSTL(JSP Standard Tag Library),JSP标准标签库,可以嵌入在jsp页面中使用标签的形式完成业务逻辑等功能。jstl出现的目的同el一样也是要代替jsp页面中的脚本代码。JSTL标准标准标签库有5个子库,但随着发展,目前常使用的是他的核心库Core。

标签库

标签库的URI

前缀

Core 

http://java.sun.com/jsp/jstl/core

c

I18N

http://java.sun.com/jsp/jstl/fmt

fmt

SQL

http://java.sun.com/jsp/jstl/sql

sql

XML

http://java.sun.com/jsp/jstl/xml

x

Functions

http://java.sun.com/jsp/jstl/functions

fn

a.下载标签库的两个jar包

b.导入标签库

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

1、if条件判断

格式:

<c:if test="条件判断">标签

其中test是返回boolean的条件,JSTL中没有 else。

2、for循环

格式:

<c:forEach>标签

使用方式有两种组合形式:

第一种形式

第二种形式

<c:forEach items="${strList }" var="str">
	${str }<br/>
</c:forEach>

JavaEE开发模式

模式在开发过程中总结出的“套路”,总结出的一套约定俗成的设计模式 

MVC模式

M:Model---模型 javaBean:封装数据
V:View-----视图 jsp:单纯进行页面的显示
C:Controller----控制器 Servelt:获取数据--对数据进行封装--传递数据-- 指派显示的jsp页面

产生背景:

对用户界面进行管理的程序的职责混乱导致代码难以维护。

解决方案:

将对数据的操作M与对视图V的操作分离开,用C逻辑作为二者的粘合剂。

JavaEE三层架构

web层:与客户端交互

service层:复杂业务处理

dao层:与数据库进行交互

开发实践时 三层架构通过包结构体现

产生背景

由于原有业务的复杂度提升,客户端和服务器端的职能需要调整,来实现负载均衡和高内聚低耦合的思想,使系统具有良好的伸缩性。

解决方案:

客户端的应用程序用于展示,是展示层,业务层进行逻辑运算的支持,数据层存储和操作数据。由于这种架构对原有程序进行了分层,不同的层运行在不同的机器上,所以可以非常自然地支持分布式开发。

两者之间的区别

关注的重点不同:

  • MVC 关注的重点在于表现层(WEB层)的代码组织方式,通过降低代码间的耦合度,使代码更改维护。
  • 3-tires 关注系统的分布,便于提升系统性能,增加系统功能。

原文地址:https://www.cnblogs.com/x54256/p/8452669.html