JSP和Servlet[2]

JavaBean组件

JavaBean 是使用 Java 语言开发的一个可重用的组件,在 JSP 开发中可以使用 JavaBean 减少重复代码,使整个JSP 代码的开发更简洁。

1.jsp:useBean创建javaBean

<jsp:useBean id="实例化对象名称" scope="保存范围" class="类完整名称"/>
Scope,一共有 page,request,session 和 application4 个属性范围,默认是 page;

2.jsp:setProperty设置javabean属性值

<jsp:setProperty property="属性名称" name="实例化对象的名称" value="属性值" param="参数名称"/>
Property=”*” 自动匹配所有

3.jsp:getProperty获取javabean属性值

<jsp:getProperty property="属性名称" name="实例化对象的名称"/>

4.javabean的保存范围

Javabean 的保存范围有 page,request,session.application,默认是 page;

5.javabean删除

Page 范围:pageContext.removeAttribute(“javaBean Name”);
request 范围:request.removeAttribute(“javaBean Name”);
session 范围:session.removeAttribute(“javaBean Name”);
application 范围:application.removeAttribute(“javaBean Name”);

EL表达式

作用:使JSP写起来更加简单

1.语法结构

${expression}

2.EL表达式访问4种范围属性

寻找值的顺序:page->request->session->application

JSP自定义标签

(以后整理)

JSP标准标签库

1.JSTL简介

JSP 标准标签库(JSP Standard Tag Library,JSTL)是一个实现 Web应用程序中常见的通用功能的定制标记库集,这些功能包括迭代和条件判断、数据管理格式化、XML 操作以及数据库访问。

使用JSTL标签库前需要导入两个包,分别是jstl.jar和standard.jar。

2.JSTL核心标签库

c:out 内容输出标签;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <%
12     pageContext.setAttribute("people","张三");
13 %>
14 <h2><c:out value="${people}"></c:out></h2>
15 <h2><c:out value="${people2}" default="某人"></c:out></h2>
16 </body>
17 </html>

c:set 用来设置 4 中属性范围值的标签;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <c:set var="people" value="张三" scope="request"></c:set>
12 <h2><c:out value="${people}"></c:out></h2>
13 <jsp:useBean id="people2" class="cn.cslg.model.People" scope="page"></jsp:useBean>
14 <c:set property="id" target="${people2 }" value="007"></c:set>
15 <c:set property="name" target="${people2 }" value="王二小"></c:set>
16 <c:set property="age" target="${people2 }" value="16"></c:set>
17 <h2>编号:${people2.id }</h2>
18 <h2>姓名:${people2.name }</h2>
19 <h2>年龄:${people2.age }</h2>
20 </body>
21 </html>

c:remove 用来删除指定范围中的属性;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <c:set var="people" value="张三" scope="request"></c:set>
12 <h2><c:out value="${people}" default="没人啊"></c:out></h2>
13 <c:remove var="people" scope="request"/>
14 <h2><c:out value="${people}" default="没人啊"></c:out></h2>
15 </body>
16 </html>

c:catch 用来处理程序中产生的异常;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <c:catch var="errMsg">
12     <%
13         int a=1/0;
14     %>
15 </c:catch>
16 <h2>异常信息:${errMsg }</h2>
17 </body>
18 </html>

c:if 用来条件判断;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <jsp:useBean id="people" class="cn.cslg.model.People" scope="page"></jsp:useBean>
12 <c:set property="id" target="${people }" value="007"></c:set>
13 <c:set property="name" target="${people }" value="王二小"></c:set>
14 <c:set property="age" target="${people }" value="16"></c:set>
15 <c:if test="${people.name==‘王二小‘ }" var="r" scope="page">
16     <h2>是王二小</h2>
17 </c:if>
18 <c:if test="${people.age<18 }">
19     <h2>是未成年</h2>
20 </c:if>
21 </body>
22 </html>

c:choose、c:when、c:otherwise 用来多条件判断;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <jsp:useBean id="people" class="cn.cslg.model.People" scope="page"></jsp:useBean>
12 <c:set property="id" target="${people }" value="007"></c:set>
13 <c:set property="name" target="${people }" value="王二小"></c:set>
14 <c:set property="age" target="${people }" value="19"></c:set>
15
16 <c:choose>
17     <c:when test="${people.age<18 }">
18         <h2>小于18</h2>
19     </c:when>
20     <c:when test="${people.age==18 }">
21         <h2>等于18</h2>
22     </c:when>
23     <c:otherwise>
24         <h2>大于18</h2>
25     </c:otherwise>
26 </c:choose>
27 </body>
28 </html>

c:forEach 用来遍历数组或者集合;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ page import="cn.cslg.model.*"%>
 4 <%@ page import="java.util.*"%>
 5 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 7 <html>
 8 <head>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>Insert title here</title>
11 </head>
12 <body>
13 <%
14     String dogs[]={"小黑","小黄","小白","小小"};
15     pageContext.setAttribute("dogs",dogs);
16 %>
17 <c:forEach var="dog" items="${dogs }">
18     ${dog }
19 </c:forEach>
20 <hr/>
21 <c:forEach var="dog" items="${dogs }" step="2">
22     ${dog }
23 </c:forEach>
24 <hr/>
25 <c:forEach var="dog" items="${dogs }" begin="1" end="2">
26     ${dog }
27 </c:forEach>
28 <hr/>
29 <%
30     List<People> pList=new ArrayList<People>();
31     pList.add(new People(1,"张三",10));
32     pList.add(new People(2,"李四",20));
33     pList.add(new People(3,"王五",30));
34     pageContext.setAttribute("pList",pList);
35 %>
36 <table>
37     <tr>
38         <th>编号</th>
39         <th>姓名</th>
40         <th>年龄</th>
41     </tr>
42     <c:forEach var="p" items="${pList }">
43         <tr>
44             <td>${p.id }</td>
45             <td>${p.name }</td>
46             <td>${p.age }</td>
47         </tr>
48     </c:forEach>
49 </table>
50 </body>
51 </html>

c:fortokens 分隔输出;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <%
12     String str1="www.google.com";
13     String str2="张三,李四,王五";
14     pageContext.setAttribute("str1",str1);
15     pageContext.setAttribute("str2",str2);
16 %>
17 <c:forTokens items="${str1 }" delims="." var="s1">
18     ${s1 }
19 </c:forTokens>
20 <hr/>
21 <c:forTokens items="${str2 }" delims="," var="s2">
22     ${s2 }
23 </c:forTokens>
24 </body>
25 </html>

c:import 导入页面;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <c:import url="c_forEach.jsp"></c:import>
12 <c:import url="c_if.jsp"></c:import>
13 </body>
14 </html>

c:url 生成一个 url 地址;

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <c:url value="http://www.google.com" var="url">
12     <c:param name="name" value="admin"></c:param>
13     <c:param name="age" value="3"></c:param>
14 </c:url>
15 <a href="${url }">CBA</a>
16 </body>
17 </html>

c:redirect 客户端跳转

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <c:redirect url="target.jsp">
12     <c:param name="name" value="abc"></c:param>
13     <c:param name="age" value="26"></c:param>
14 </c:redirect>
15 </body>
16 </html>

3.JSTL国际化标签库

fmt:setLocale 设定用户所在的区域;
fmt:formatDate 对日期进行格式化;
fmt:requestEncoding 设置所有的请求编码;
fmt:bundle fmt:message 读取国际化资源;
fmt:formatNumber 格式化数字;
fmt:formatDate 格式化日期;
fmt:timeZone 设置临时时区;

4.JSTL SQL标签库

Sql:setDataDource 设置 JDBC 连接;
sql:query 数据库查询操作;
Sql:update 数据库添加,修改,删除操作;
Sql:transaction 数据库事务;

5.JSTL XML标签库

x:parse 解析 xml;
x:out 输出 xml 文件的内容;
x:set 把 xml 读取的内容保存到指定的属性范围;
x:if 判断指定路径的内容是否符合判断的条件;
x:choose x:when x:otherwise 多条件判断;
x:forEach 遍历

6.JSTL函数标签库

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 5 <html>
 6 <head>
 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 8 <title>Insert title here</title>
 9 </head>
10 <body>
11 <%
12     pageContext.setAttribute("info","www.google.com");
13 %>
14 <h2>查找google位置:${fn:indexOf(info,"google")}</h2>
15 <h2>判断google是否存在:${fn:contains(info,"google")}</h2>
16 <h2>截取:${fn:substring(info,0,5)}</h2>
17 <h2>拆分:${fn:split(info,".")[1]}</h2>
18 </body>
19 </html>
时间: 2024-10-16 23:57:52

JSP和Servlet[2]的相关文章

JSP和Servlet[1]

Servlet与JSP简介 Servlet是用Java编写的服务器端程序.其主要功能在于交互式地浏览和修改数据,生成动态Web内容.狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者. JSP经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.JSP更擅长表现于页面显

jsp和servlet的区别

servlet是服务器端的程序,动态生成html页面发到客户端,但是这样 程序里有许多out.println(),java和html语言混在一起很乱.所以 后来推出了jsp.其实jsp就是servlet,每一个jsp在第一次运行时被 转换成servlet文件,再编译成.class来运行. 有了jsp,因此在MVC模式中servlet不再负责生成html页面,转而担任 控制程序逻辑的作用,控制jsp和javabean之间的流转. Servlet与Jsp的区别 * Servlet中没有内置对象,原来

转 高性能、高弹性JSP和Servlet性能优化

高性能.高弹性JSP和Servlet性能优化 2009-01-05 10:00 执木 网络转载 字号:T | T 本文讲述了开发高性能.高弹性的JSP页面和Servlet的性能优化技术.其意思是建立尽可能快的并能适应数量增长的用户及其请求.在本文中,你将学习已经实践和得到证实的性能调整技术,它将大大地提高你的Servlet和Jsp页面的性能,进而提升J2EE的性能. AD:WOT2015 互联网运维与开发者大会 热销抢票 你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访问量?本文讲

jsp与servlet的区别

Servlet与Jsp的区别 * Servlet中没有内置对象,原来Jsp中的内置对象都是必须通过HttpServletRequest对象,或由 HttpServletResponse对象生成. * 对于静态的HTML标签,Servlet都必须使用页面输出流诼行输出. 总之,Jsp是Servlet的一种简化,使用Jsp只需要完成程序员需要输出到客户端的内容,至于Jsp中的 Java脚本如何镶嵌到一个类中,由Jsp容器完成.而Servlet则是个完整的Java类,这个类的Service 方法用于生

jsp和servlet

1.讲下servlet的执行流程. Servlet的执行流程也就是servlet的生命周期,当服务器启动的时候生命周期开始,然后通过init()<启动顺序根据web.xml里的startup-on-load来确定加载顺序> 方法初始化servlet,再根据不同请求调用doGet或doPost方法,最后再通过destroy()方法进行销毁. 2.Jsp的重定向和转发的流程有什么区别 重定向是客户端行为,转发是服务器端行为 重定向时服务器产生两次请求,转发产生一次请求,重定向时可以转发到项目以外的

jsp和servlet学习总结

一.Jsp与servlet的区别: jsp是java代码嵌入html中,用java代码控制来html. Servlet完全是JAVA程序代码构成,用来流程控制和事务处理 jsp更擅长表现于页面显示,servlet更擅长于逻辑控制. Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到. 二.如何配置一个servlet使它运行 1.servlet的名字,包类 <servle

JSP 和 Servlet 有哪些相同点和不同点, 他们之间的联系是什么?

jsp和servlet的区别和联系:1.jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的java类)2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.Jsp是Servlet的一种简化

JSP和servlet有什么区别?

JSP和servlet有什么区别? JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达. JSP编译后是"类servlet". Servlet和JSP最主要的不同点: 1.  Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来. 2. JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件. 3. JSP侧重于视图,Servlet主要用于控制逻辑

jsp、Servlet相关知识介绍(转)

1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器) 在如下两种情况下会进行对象实例化. 第一种情况: 当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,才会创建实例. 第二种情况: 容器在启动时,或者新部署了某个应用时,会检查web.xml当中,servlet是否有 load-on-starup配置.如果有,则会创建该servl

面试之jsp、Servlet相关知识——生命周期, 区别等

1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器) 在如下两种情况下会进行对象实例化. 第一种情况: 当请求到达容器时,容器查找该servlet对象是否存在,如果不存在,才会创建实例. 第二种情况: 容器在启动时,或者新部署了某个应用时,会检查web.xml当中,servlet是否有 load-on-starup配置.如果有,则会创建该servl