JavaWeb JSP技术(上)
来源:互联网 发布:linux mysql源码安装 编辑:程序博客网 时间:2024/05/16 12:47
一,JSP
JSP(Java Server Pages)代替servlet 简化输出,实质就是servlet。
第一次运行JSP的过程:
第二次访问同一个页面index.jsp,如果没有更改index.jsp 不会再转换了 直接调用 servlet的service方法,如果更改了index.jsp 就重新转换。
二,JSP的五个组成部分
(一)模版元素2个
html 和xml
XML=Extensible Markup Language
作用:
1. 当做配置文件使用 web.xml
2. 保存数据(当做数据库使用 txt xml)
(二)注释元素 3个
1.html注释
会显示在客户端源码中
2.JSP注释
<%–我是JSP注释,不会显示到浏览器的源文件中,只存在于JSP文件中,转换成的servlet中没有该注释内容–%>
3.java注释
java注释,不会显示到浏览器的源文件中,JSP中有,转换成的servlet源文件中也有
(三)指令元素 3个
1.page指令(页面指令)
< %@page %>
常用的指令元素的属性
(1)import 导入 相当于java的import
(2)errorPage 和isErrorPage
errorPage 表示用来处理错误的页面
处理错误的页面 如果想使用exception内置对象 必须要 加一个 isErrorPage=”true” 这时 exception内置对象才会被创建
(3) pageEncoding 和contentType
contentType : 相当于 servlet中的
response.setContentType(“text/html;charset=utf-8”);
作用:
1.设置服务器输出的编码方式是utf-8(生成页面的编码) 默认是ISO-8859-1 Latin-1 西欧文字 1个字节 256
2.提示浏览器使用utf-8解码
2.include 指令(静态包含)
<%@include file="reused.jsp"%>
3.taglib
<%@taglib prefix="c" uri="taglibURI" %>
(四)脚本元素 3个
1.声明
<%! 成员变量或成员方法%>
被转换成servlet中的成员变量和成员方法
2.JSP表达式
<%="你好,世界"%>相当于<% out.println("你好,世界");%>
转化成servlet中的JspWriter out;
3.scriptlets
<% int a = 10;%>
多一个<% %> 会合成一个 一起转换成Servlet中的service(_jspService)
在<%%>里定义的变量是局部变量,这样同名的局部变量把实例变量隐藏了,想访问实例变量要加this.a
(五)动作元素 7个
1.动态包含
<jsp:include page="reused.jsp" flush="true"> <jsp:param name="username" value="zzy"/> </jsp:include>
flush: 表示在reused页面包含进来之前,是否刷新include1.jsp页面,一定要改成true
2.传参
“`
< jsp:param name=”username” value=”zzy”/>
3.转发
转发
< jsp:forward page=”msg.jsp”/>
重定向
<%
response.sendRedirect(“msg.jsp”);
%>
4.< jsp:useBean>、< jsp:setProperty>、< jsp:getProperty>三个
5.< jsp:plugin>
可以使用它来插入Applet或者JavaBean
转发和重定向的区别 3个
(1)转发它是服务器的内部行为 URL地址不变 一个请求一个响应
重定向服务器的外部行为,强制用户发出另一个请求,两个请求,两个响应,URL地址改变
(2)由于转发是服务器的内部行为,只能转发到本服务器上的其他资源(jsp、servlet) 不能跳到其他服务器的资源 如百度; 重定向由于是服务器的外部行为,可以跳转到其他服务器的资源。
(3)转发以后的代码不会被执行(因为转换后的servlet中有句return,表示结束该方法,所以后面都不执行了)
重定向 后的代码仍然会被执行
静态包含和动态包含的区别 3个
(1) 静态包含是将被导入页面的代码完全融入,两个页面融合成一体,转换成一个servlet
动态包含中 页面和 被导入页面 会转换成两个servlet,在servlet中使用include那句话把运行结果导入
(2)静态包含 被导入页面的指令元素也会被导入;
动态包含指令元素不会被导入
这样如果静态包含 页面 和 被导入的页面定义了不同的contentType,由于静态包含指令元素也会被导入,这样会发生contentType冲突的情况,而动态包含不会.
(3)动态包含还可以传参
- JavaWeb JSP技术(上)
- Javaweb 深入JSP技术(三)
- JavaWeb学习笔记(10)--JSP技术
- JAVAweb开发技术-------(三)JSP
- javaweb----JSP技术
- JavaWeb笔记之JSP技术
- JavaWeb学习笔记 ---- Jsp基础知识归纳篇(上)
- JavaWeb学习笔记 ---- Jsp基础知识归纳篇(上)
- javaweb基础(JSP)
- JavaWeb(五)--JSP
- JavaWeb(七) JSP
- JavaWeb入门实战—JSP技术
- JavaWeb-10(会话技术之session&JSP)
- javaweb入门笔记(6)-JSP技术
- JAVAweb开发技术-------(三)JSP (封装自己的标签库)
- JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
- JavaWeb学习(三):jsp
- JavaWeb-JSP
- 如何学好设计模式?
- POJ - 2674 Linear world(弹性碰撞)
- Git教程4——Git分支
- Dijkstra+堆优化 模板
- 浅析 AngularJS 全球化最优方案(二)
- JavaWeb JSP技术(上)
- Android控制文字水平间距android:letterSpacing
- 浏览器页面加载性能
- 解决Windows下载(Downloads)目录打开速度异常慢的问题
- 浅析 AngularJS 全球化最优方案(三)
- Maven入门
- js,easyui关闭当前的窗口!
- 浅析 AngularJS 全球化最优方案(四)
- 锐速Linux和谐版一键包