jsp周末总结
来源:互联网 发布:剑三毛毛捏脸数据 编辑:程序博客网 时间:2024/05/18 14:46
jsp java server page做动态页面 是j2ee的一套规范 jsp=java+jsp+html+cssJSP的作用是来替换servlet显示信息的功能 jsp本质上讲就是servlet只不过jsp擅长控制跳转 业务处理 jsp擅长前台展示 javaBean、jsp组成 jsp除了做界面还要做控制层MVC模式:将控制层与视图层分离 1、M(Model模型)---JavaBean,java类包含三层架构 2、V View 视图层 jsp,html显示 3、C Controller控制器 servlet控制和转发请求first.jsp---显示当前时间 1、翻译阶段 jsp--.java 当容器接受客户端的第一次对jsp请求后 先判断jsp是否存在,不存在则返回404,存在则先编译为一个servlet 2、编译阶段 将编译后的servlet的源文件编译成一个字节码文件 然后由容器将其装载进虚拟机并实例化 3、执行阶段 调用翻译后的servlet的对应init()、service方法、destory() 补充: ①如果被请请求的jsp源文件内容发生变化,那么要重新将jsp翻译成servlet,再编译,再装载和实例化,最后运行servlet ②如果第二次请求jsp时 此时若被请求的jsp已经有对应的servlet实例,那么久直接运行该servletscript.jsp jsp中的元素:脚本元素、指令元素、动作元素 1、脚本元素:嵌套java代码 a、声明、语法:<%声明中的内容%> 作用:在servlet中声明一些成员变量、成员方法和内部类 注意:不能使用表达式和隐含对象 b、表达式 <%=expression%> 作用:将pression输出到out流中 expression可以是算数逻辑 常量 关系表达式 变量 有返回值的方法。 注意expression都一律被转换为字符串后再写到out输出流中 expression中不能有分号jsp中的9种隐含对象 page当前的jsp页面, pageContext 当前jsp页面的上下文 request 封装请求的信息 response 封装响应 session 会话 application 指web应用就是servletContext out 输出流 config 配置信息 exception 异常信息 当isErrorPage=true 时 才可以使用该对象 特点:表达式翻译进servlet后变成了out.print(exception) 该代码处于-jspservice方法中脚本(Scriptlet) 语法<%java code%> 作用:在jsp中嵌入任何java代码 不能嵌入成员变量 成员方法 所以在此模块声明的变量为局部变量 任何逻辑的代码都可以放在脚本标签中 如for循环、匿名内部类 连接数据库 创建对象等 特点:脚本被编译进servlet的jspservice方法中 指令元素:指令用来提供整个jsp网页相关的信息 并且用来设定jsp页面的相关属性 page指令 可以写多个page标签 多个import 语法<%@page attributeName=""%> 作用:利用page指令中的属性可以和容器进行通信,这些属性的设置,对整个jsp都有影响。 page指令中的属性: language=java 定义编程语言 目前只能是java contentType="text/html,charset=UTF-8" 定义response中的内容类型和编码格式 和jsp页面的编码格式 isErrorPage="true|false" 默认为false import=""导包 session="true|false"规定是否可以使用session 默认为false buffer="none|8kb|sizekb"默认8kb 指定到客户端输出流的缓冲模式 如果是none则不缓冲,如果指定数值 那么输出就用不小于这个值得缓冲区进行缓冲 autoflush=“true|false” 默认为true true:当缓冲区满时到客户端的输出被刷新false false:当缓冲区满时出现异常 表示缓冲溢出 isThreadSafe="true|false" 用来设置jsp文件是否能支持多线程的使用 如果为true 那么一个jsp能够处理多个用户的请求 反之则一次只能处理一个请求 info=“text” 关于jsp页面的信息 定义一个字符串 可以使用getServletinfo获得 extends=“。。。。” 继承某个父类 isELIgnored="true|false" 指定EL表达式语言是否可以忽略 如果true则忽略 反之可以使用EL include指令 <%@include file="url"%>称之为静态导入(静态包含) 作用在一个页面中导入另一个页面的内容 特点:jsp翻译为servlet后就将被导入的页面内容嵌入到servlet中 导入时间发生在翻译阶段 被导入的资源 html xml jsp等 优点执行效率高 之翻译一次 缺点 如果导入多个页面 当其中一个页面内容发生变化 就需要将所有页面都翻译一次 teglib指令 <%@ taglib uri="" prefix=""%> 指定在jsp中要使用的标签库描述文件 *.tld 的路径 动作元素 jsp自带的标准标签 语法<jsp:tagName/> 动态导入 动态包含 语法<jsp:include page="url" fluse="true|false"/>或者<jsp:include page="url" flush="true|false">{<jsp:param,,/>} </jsp:include> 特点:动态导入发生在执行阶段 也就是运行servlet的时候才动态生成被导入的页面内容,然后嵌入到调用页面,最后将两个页面一起,返回给客户端 注意:在翻译阶段并没有生成被导入的页面的内容。没有跳转 请求还是同一个 缺点:执行效率没有静态导入高 优点:如果没有导入页面内容发生变化 调用页面不必重新编译 foward(服务器内部跳转) 语法<jsp:foward page="url"/>或者 <jsp:foward page="url">{<jsp:param\\\>}* </jsp:forward> jsp中的注释 <!----> 只能注释html和xml中的静态内容 不能注释脚本元素 指令元素 和动作元素 如果注释 他们还是会被编译执行 隐藏注释 <%-- --%> 可以注释jsp中的所有内容 脚本注释 <% ///**//** */ %> 三种注释的区别 servlet源文件 客户端页面源文件 浏览器显示html/xml 出现 出现 不显示隐藏注释 不出现 不出现 不显示 脚本注释 出现 不出现 不显示EL:通过el标签来取数据和输出数据 简化代码,尽量在jsp中不适用java代码语法:${输出数据或对象 } webContent/WebRoot 文件夹:el jsp:el.jsp一、el中的表达式 a、算数表达式 +、-、*、/ b、关系运算符 ==或eq、!=或ne、<或lt、> 或gt、<=或le、>= ge c、逻辑运算符 &&或and、||或or、!或not d、判空运算符 empty <%empty name>二、表达式可以使用的隐含对象 a、pageContext jsp页面的上下文,唯一一个jsp和el都有的隐含对象 ${pageContext.servletContext/session/getrequest } b、param 把请求中的参数和单个值 进行映射 ${param.name } c、paramValues把请求中的参数和一个array值进行映射 获取多选框的值 ${paramValues.hobby } d、cookie 把请求中的cookie和单个值进行映射 ${cookie.name } e、initParam把web应用上下文的初始化参数和单个值进行映射 ${initParam.name } f、pageScope把page范围中的key和value进行映射 ${pageScope.name } g、把request范围内的key和value映射 ${requestScope.name} h、sessionScope session范围内key、value映射 ${sessionScope.name} i、applicationScope application范围内key value映射 ${applicationScope.name} 如果没有指出范围,默认从page request session application开始查找,若找不到就往更大的范围找jsp中使用javabean 创建和使用javabean对象的时候尽量不使用java代码 javaBean 提供属性 构造器 set get方法 实现序列化 1、语法 jsp中获得或者创建javaBean对象 <jsp:useBean id="user" class="包名+类名" scope="page|request|session|application"/> id user的对象引用 class 包+类名 scope scope默认为page user对象的存放范围 作为该对象放置在scope中的属性名 scope.setAttribute("",); 2、执行流程 user!=null可以使用该对象 在页面上输出其属性值 简化jsp代码,且JAvaBean永远不会为null 设置javaBean对象中的属性值 (1) 方式一语法: <jsp:setProperty name="对象引用" property="propertyName" value="">例如: <jsp:setProperty name="user"property="name" value="jack"/>执行流程: user.setName("jack");(2) 方式二语法: <jsp:setProperty name="对象引用" property="propertyName"/> 例如: <jsp:setProperty name="user" property="name"/> name: 它的值和标签useBean中id的值对应, 表示User对象的引用。 property: 它的值和setName()有关。执行流程:a) String value = request.getParameter("name");b) 若value != null, user.setName(value);c) 若value == null,不调用setName()。用途: 将表单中提交的字段信息封装到JavaBean对象的属性中。(3) 方式三语法: <jsp:setProperty name="对象引用" property="propertyName" param=""> param="paramName"/>例如: <jsp:setProperty name="user" property="name" param="username"/>执行流程: a) String value = request.getParameter("username");b) 若value != null, user.setName(value);c) 若value == null, 不调用user.setName();(4) 方式四语法: <jsp:setProperty name="对象引用" property="propertyName" value="<%=\"zhangsan\" %>"> 或者value='<%="中国" %>'例如: <jsp:setProperty name="user" property="age" value="<%=30%>"/>执行流程: user.setAge(30);(5) 方式五语法: <jsp:setProperty name="对象引用" property="*"/>例如: <jsp:setProperty name="user" property="*"/>"*"匹配了id name password age gender address(根据User中所有set方法的property进行匹配)(6) 方式六语法: <jsp:setProperty name="对象引用" property="name" value="${}"/>例如: <jsp:setProperty name="user" property="address" value="${address}"/> 使用el表达式来获取address的值,从四大范围中 查找address对象,如果找到调用user.setAddress(address); 输出javaBean对象中的属性值 <jsp:getProperty name="对象引用" property=“propertyName”/> <jsp:getProperty name="user" property="name"/> 执行流程 1、Object o = user.getName(); 2、将0全部换位s 3、out.print(s);4、使用标签<jsp:useBean>的四种方式1) <jsp:useBean id="对象引用" class="包名+类名" scope=""> scope="page|request|session|application"/>特点: 通过new来创建一个对象2) <jsp:useBean id="对象引用" type="JavaBean实现的接口或继承的父类" scope="page|request|session|application"/>特点: 如果scope中所引用的对象不存在,不会去自动构造一个对象例如: List list = new ArrayList();session.setAttribute("list",list);<jsp:useBean id="list"type="java.util.List" scope="session"/>或者<jsp:useBean id="list"class="java.util.ArrayList" scope="session"/>3) <jsp:useBean id="对象引用" class="包名+类名" type="JavaBean实现的接口或继承的父类" scope="page|request|session|application"/>特点: 通过new来创建一个对象4) <jsp:useBean id="对象引用" beanName="包名+类名" >type="JavaBean实现的接口或继承的父类" scope="page|request|session|application"/> 特点: 通过反射构造一个对象
阅读全文
0 0
- jsp周末总结
- 周末总结。
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- 周末总结
- web周末jsp
- 周末学习总结
- 周末总结_杂谈
- 周末总结_读书
- 【周末技术总结】git
- 周末总结tow
- 周末总结--第八周
- vm虚拟机 实现ubuntu共享文件,复制粘贴
- C++ 向函数传递数组
- ssh项目心得之传值
- 全文检索技术Lucene入门和学习、与数据库数据结合的demo实现
- NPOI导出WPF DataGrid控件显示数据
- jsp周末总结
- 三维坐标系中旋转矩阵R的作用和演示
- 存储系统python api扩展模块开发
- 【OpenCV】基于OpenCV的双目视觉测试
- Java 并发编程(八)Future和Callable,CompletionService的使用
- 论文代发费用
- 作业.输出全部希腊字母
- angularjs获取json解析(http)
- 多图上传