• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
让往事随时间飘散
博客园    首页    新随笔    联系   管理    订阅  订阅
Servlet的认识

第七章Servlet基础

1、Servlet 是一个 Java程序,是在服务器上运行以处理客户端请求并做出响应的程序

2、Servlet体系结构:

①接口:

Servlet概述

定义了所有Servlet需要实现的方法

Servlet接口的常用方法:

 

ServeltConfig概述

在Servlet初始化过程中获取配置信息,一个Servlet只有一个ServletConfig对象

ServletConfig的常用方法

 

②抽象类:

1)GenericServlet概述

提供了Servlet与ServletConfig接口的默认实现方法

GenericServlet的常用方法

2)HttpServlet概述

继承于GenericServlet

处理HTTP协议的请求和响应

HttpServlet的常用方法

 

 

 

Servlet的生命周期:

实例化 Servlet 容器创建 Servlet 的实例

初始化 该容器调用 init() 方法

请求处理 如果请求 Servlet,则容器调用 service() 方法

服务终止 销毁实例之前调用 destroy() 方法

3、Servlet的应用:

创建Servlet

实现doPost()或doGet()方法

部署Servlet

编辑部署描述文件web.xml(添加<servlet>和<servlet-mapping>)

启动Tomcat,访问Servle

总结:

1)Servlet的应用:

创建Servlet:实现doPost()或doGet()方法

部署Servlet:编辑部署描述文件web.xml

启动Tomcat,访问Servlet

2)Servlet初始化参数配置

<init-param>

            <param-name>initParam</param-name>

            <param-value>Hello Servlet</param-value>

</init-param>

3)Servle上下文参数配置

<web-app>

    <context-param>

        <param-name>contextParam</param-name>

        <param-value>Hello Servlet</param-value>

    </context-param>

    <!--省略其他配置-->

</web-app>

getServletContext().getInitParameter("contextParam")

 

 

1、什么是EL

Expression Language(表达式语言)

2、EL的功能

替代JSP页面中的复杂代码

3、EL的特点

自动转换类型

EL得到某个数据时可以自动转换类型

使用简单

4、EL表达式:

${ EL exprission }

使用变量名获取值

获取对象的属性值

获取集合

5、使用变量名获取值

${变量名}:

Eg:<%  request.setAttribute("username","LiYang"); %>

姓名: ${requstScope.username}

6、变量属性范围名称

 

 

7、获取对象的属性值

点操作符

${user.name}

[ ]操作符

${user["name"]}

Eg:<%

    User user = (User )request.getAttribute("user");

    user.getName();

%>

8、获取集合-List:

<%

    List names = new ArrayList();

    names.add(0, "LiYang");

    names.add(1,"WangHua");

    request.setAttribute("names",names);

%>

姓名:${names[0]}<br/>

姓名:${names[1]}<br/>

9、获取集合-Map:

<%

    Map names = new HashMap();

    names.put("one","LiYang");

    names.put("two","WangHua");

    request.setAttribute("names",names);

%>

姓名:${names.one}<br/>

姓名:${names["two"] }<br/>

10、${  EL exprission }

关系操作符

逻辑操作符

Empty操作符

 

变量 a不存在,则${empty a}返回的结果为true

${not empty a}或${!empty a}返回的结果为false

 

 

11、EL隐式对象:作用域访问对象,参数访问对象,JSP隐式对象

作用域访问对象:pageScope,requestScope,sessionScope,applicationScope

参数访问对象:param,paramValues

JSP隐式对象:pageContext

12、EL隐式对象介绍:

 

 

 

 

13、什么是JSTL?

JSP标准标签库(JavaServerPages Standard Tag Library)

14、JSTL 的优点:

提供一组标准标签

可用于编写各种动态 JSP 页面

JSTL通常会与EL表达式合作实现JSP页面的编码

15、JSTL的环境内搭:

使用JSTL的步骤:

在工程中引用JSTL的两个jar包和标签库描述符文件

在JSP页面添加taglib指令

使用JSTL标签

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

16、JSTL标准标签库内的标签:

通用标签:set  out  remove

条件标签:  if   choose

迭代标签:  forEach

17、

①set:设置指定范围内的变量值

//将value值存储到范围为scope的变量variable中

<c:set var="index" value=" 8 " scope="  request  "/>

//将value值设置到对象的属性中

<c:set value="value" target="target" property="property" />

 

<%

    User user = new User();

    request.setAttribute("user", user);

%>

<c:set target="${user}" property="name" value="defaultName " />

②out:计算表达式并将结果输出显示

不指定默认值:

<c:out value="value" />

指定默认值

<c:out value="value" default="default" />

<%

    User user = new User();

    request.setAttribute("user", user);

%>

<c:set target="${user}" property="name" value="defaultName " />

<c:out value="${user.name}" default="noUserName" />

通用标签的使用:

//引入使用核心标签的指令

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

<body>

//set 标签用于给变量设置值和作用范围

//scope= "page|request|session|application"

<c:set var= "example" value="${100+1}" scope="session"  />

//out 标签在页面上显示信息或变量值

<c:out value="${example}"/>

//remove 标签用于删除作用域内的变量

<c:remove var= "example" scope="session"/>

</body>

③条件标签的应用

<body>

<c:set var="isLogin" value="${empty sessionScope.user}"/>

<c:if test="${isLogin}">

…登录表单

</c:if>

<c:if test="${! isLogin}">

已经登录!

</c:if>

</body>

④choose:实现Java语言中if-else if-else语句的功能

<c:choose var="varName" scope="scope">

<c:when test="condition">

主体内容

  </c:when>

<c:otherwise>

主体内容

</c:otherwise>

</c:choose >

⑤ forEach:实现对集合中对象的遍历

<%

List products = GoodsDao.getAllProducts();

request.setAttribute("products", products);

%>

…

<!-- 循环输出商品信息 -->//循环遍历集合

<c:forEach var="product" items="${requestScope.products}" varStatus="status">

<!-- 如果是偶数行,为该行换背景颜色 -->//判断奇偶

<tr <c:if test="${status.index % 2 == 1 }">style=""</c:if>>

//输出商品信息

        <td>${product.name }</td>

        <td>${product.area }</td>

        <td>${product.price }</td>

    </tr>

</c:forEach>

⑥通过迭代标签遍历Map

<%

    Map<String,String> map=new HashMap<String,String>();

    map.put("tom", "美国");

    map.put("lily", "英国");

    map.put("jack","中国");

    request.setAttribute("map", map);

%>

<c:forEach var="entry" items="${map}">

     ${entry.key}

     ${entry.value}<p>

</c:forEach>

⑦ forEach:指定迭代的次数

<c:forEach  begin="start"   end="end"  step="count">

 

…循环体代码…

</c:forEach>

<c:forEach  begin="1"   end="5"  step= "2">

<c:out value="*"></c:out>

</c:forEach>

总结:

EL表达式的语法有两个要素:$ 和 {}

EL表达式可以使用“.”或者“[]”操作符在相应的作用域中取得某个属性的值

JSTL核心标签库中常用的标签有如下三类。

通用标签;<c:set>、<c:out>、<c:remove>

条件标签;<c:if>、<c:choose>、<c:when>、<c:otherwise>

迭代标签:<c:forEach>

EL表达式与JSTL标签结合使用,可以减少JSP中嵌入的Java代码,有利于程序的维护和扩展

 

posted on 2017-03-28 19:36  让往事随时间飘散  阅读(193)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3