第七章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代码,有利于程序的维护和扩展

转载于:https://www.cnblogs.com/qwe234/p/6636491.html

Servlet的认识相关推荐

  1. Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常

    我的servlet代码是 try{ //something response.setStatus(201); out.print("Data successfully saved" ...

  2. JavaEE学习笔记之Servlet

    同一用户的不同页面的共享数据 1.1 cookie技术 1.2 sendRedirect()转向 1.3 隐藏表单 1.4 session技术 ###session技术: 当用户打开浏览器,访问某个网 ...

  3. 【JavaWeb】servlet与http请求协议

    Servlet: 概念: server applet (服务端小程序)运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则. 将我我们自定义一个 ...

  4. 使用最新版(2020)IntelliJ IDEA 创建Servlet项目

    一:选择左上端的File,创建Project,选择创建Web Application 项目: 注:不勾选Create web.xml 二:设置项目名称:helloworld,并创建一个Servlet( ...

  5. 2020了,还要学JSP嘛?入个门呗!毕竟Servlet亲兄弟~

    目录 1.什么是JSP 2.JSP原理 3.JSP基础语法 jsp表达式 jsp脚本片段 jsp声明 jsp注释 4.JSP指令 5.JSP行为 6.9大内置对象 7.EL表达式 格式 变量 [ ]与 ...

  6. 来谈谈Servlet~~

    目录 1.Servlet简介 2.第一个Servlet程序 3.Servlet原理 4.servlet-mapping的配置 5.关于ServletContext 1.共享数据 2.获取初始化参数 3 ...

  7. 使用Servlet完成单表的CRUD

    实现步骤 第一步:准备一张数据库表.(sql脚本) 第二步:准备一套HTML页面(项目原型)[前端开发工具使用HBuilder] 第三步:分析我们这个系统包括哪些功能 第四步:在IDEA当中搭建开发环 ...

  8. 适配器(GenericServlet)改造Servlet

    JavaWeb系列教程 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造Servle ...

  9. 使用IDEA开发Servlet程序

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

  10. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

最新文章

  1. 二叉树的层次遍历 II
  2. (001) RN开发之Mac搭建开发环境
  3. QTableWidget表头样式
  4. Luhn算法验证信用卡的合法性
  5. spring boot(一)创建项目
  6. 绿色运营,数据中心还得靠自动化
  7. 干就行了!!!写程序就像珊瑚,分支太多,哪有那么多复用!
  8. [Leveldb源码剖析疑问]-block_builder.cc之Add函数
  9. code craft_Craft.io,设计和代码
  10. js 指定年月获取最后天
  11. Python Django开发中XSS内容过滤问题的解决
  12. 苹果笔记本python爬取网页后怎么存下来_python 爬取csdn网页并保存博客到本地
  13. Android手机使用Windows应用,微软宣布在你的手机应用上运行安卓APP功能向Windows 10稳定版提供...
  14. java检查页面ajax请求,Java AJAX电子邮件检验示例
  15. HTTP请求方法及幂等性
  16. 从计算机视觉算法实训走向落地尝试
  17. 图像处理之对比度增强
  18. Kotlin协成的简单理解
  19. 四字计算机名称是什么原因,各位大侠 桌面上我的电脑图标下的“我的电脑”四个字成了“的电脑” ,是为什么会事...
  20. Mac:sh: /Users/lipan/Downloads/Django/node_modules/.bin/vue-cli-service: Permission denied

热门文章

  1. BZOJ 3990: [SDOI2015]排序(搜索+剪枝)
  2. 人活系列Streetlights (秩)
  3. 烂泥:CentOS6.5挂载windows共享文件夹
  4. 在cds学到的(非技术)
  5. Visualization Document Feb 12 16:42
  6. cambridge mphil in management result
  7. bootstrap官网
  8. 读源码学C之阅读李恒的bioawk
  9. python 学习源
  10. MATLAB无穷大上的反常积分