java自学之路-----JSP_基础语法
来源:互联网 发布:淘宝商业的竞争环境 编辑:程序博客网 时间:2024/05/02 04:59
JSP{
Java Server Page
1.和Servlet技术一样都是sun公司定义的一种用于开发动态web资源的技术
2.允许在页面内编写java代码,允许获得web开发常用的对象,实现与浏览器的交互
3.jsp就是特殊的servlet,会被翻译成servlet文件(编写jsp时,通过码表将页面存到硬盘中,服务器翻译的时候会查另一个码表转成servlet程序)
4.长期实践中,servlet作为web中的控制组件使用,jsp作为数据显示模板来使用
语法:<!-- 在jsp中写java代码 ,最终jsp会被翻译成.java文件--> <% Date date = new Date(); out.write(date.toLocaleString()); %>
模板元素:页面中的HTML代码,用于定义页面的结构和外观
脚本表达式:用于将程序数据输出到客户端,实际就是调用了out.print(....)将数据输出。格式:<%=... %>
脚本片段:用于在jsp页面编写多行java代码,只能出现java代码不能出现其他模板元素,JSP会将片段中的内容原封不动的写到servlet文件中。格式:<% ...%>
一个jsp页面可以由多个脚本片段,并且所有的片段都可以互相访问
声明:jsp页面编写的所有代码,默认会被翻译到servlet的service方法中,如果是使用声明语句,则会被翻译到方法外.格式:<%! ... %>
作用:用于定义jsp页面翻译后的servlet程序的静态代码块,成员变量和方法
注释:jsp被翻译成servlet程序时,会忽略jsp页面的注释内容。格式:<%--.... --%>
指令:为jsp引擎设计的,不产生任何可见的输出内容,而是告诉该页面如何处理不属于jsp语法的其余部分。格式:<%@指令 属性名=“值”.....%>
page:<%@page contentType="text/html;charset=utf-8" %>,告诉服务器该页面采用的编码。可以防止jsp页面任意位置
language="java",——说明jsp页面嵌套的是什么语言的代码
extends=“package.class”——翻译后的servlet继承那个类(不需要修改)
import=“java.util.Date,java.sql.*”——导入一些java类到jsp页面,jsp引擎会自动导入部分包
session=“true”——是否在该页面获取session对象,false表示该页面不会自动获得session(需要输入代码手动获得)。该属性是由于session生命周期较长,避免浪费服务器资源
buffer=“8kb”——定义jsp页面的缓冲区大小
autoFlush=“true”——是否自动刷新
isThreadSafe=“true”——是否线程安全。指定为false那么久无法同时访问该页面
errorPage=“/errors/error.jsp”——指定出错误时转向的处理页面,属性值为使用的绝对路径,/斜杠开头代表web应用。在web.xml文件中指定整个web应用程序错误处理页面,使用<error-page>,优先级低
isErrorPage="false"——指定该页面是否为错误处理页面。置为true那么该jsp页面就会自动创建exception对象
contentType=“text/html;charset=utf-8”——让服务器告诉浏览器以什么码表打开该文件
pageEncoding=“utf-8”——通知服务器用哪种码表翻译jsp为servlet(eclipse默认将文件保存方式,浏览器打开方式都定义为该码表)
isELIgnored=“true”——默认是否支持el表达式
include:静态包含,用于引入其他jsp页面,如果引入了那么jsp会将两个jsp翻译为一个servlet,编译时包含,性能较好
动态包含,request.getRequestDispatcher("").include("");多个页面翻译为多个servlet,在访问的时候再进行包含,运行时包含
taglib:导入自定义标签,用于在jsp页面使用自定义的标签
标签:成为jsp动作元素,用于jsp页面中提供业务逻辑的功能,避免在jsp页面直接写java代码
<!--用于将首页置为某个servlet,因为在配置文件中不能将首页设置为servlet--> <jsp:forward page="/servlet/ServletDemo"> <!--用于在转发或应用是将参数传递--> <jsp:param value="name" name="halm"/> </jsp:forward> <!--用于包含,动态包含和pageContext.include()一样--> <jsp:include page="/1.jsp"></jsp:include>
运行原理:
1.每个jsp页面在第一次被访问的时候,web容器会将请求传给jsp引擎(一个java程序)处理。jsp引擎会先将jsp页面翻译为一个jspServlet(就是一个servlet),再按照servlet的调用方式进行调用
2.由于jsp第一次访问需要翻译为servlet,所以会比较慢,但之后的访问,如果jsp引擎发现jsp没有发生变化就会直接调用,不再翻译
3.jsp引擎在调用jsp对应的jspServlet时,会传递或创建9个与web开发相关的隐私对象供servlet使用。
九大隐私对象:
request :请求对象
response :响应对象
application :ServletContext对象
config:ServletConfig对象
out :用于向客户端发送文本数据,通过pageContext的getOut方法返回的JspWriter对象,也是将数据写到response容器中,与response的out对象非常相似。page指令的buffer属性就是设置这个流的缓冲区大小。
page :本jsp页面对象,-》this
session :会话对象
exception:异常对象
pageContext :代表jsp页面的运行环境,封装了对其他八大隐私对象的引用,本身是一个页面范围内的域对象(用于自定义标签开发),最小范围的域对象
<% pageContext.getAttribute("name",pageContext.REQUEST_SCOPE); // 获得request内部name的值 pageContext.getAttribute("name");//获得本域对象name的值 pageContext.findAttribute("name");//查找4个域对象name的值。顺序pageContxt.request.session.application %>
}
- java自学之路-----JSP_基础语法
- 自学Python之 基础语法
- 自学Java之路-Java关键字基础
- java自学之路-----数据库基础应用
- java自学之路-----jdbc_基础
- java自学之路-----Servlet_基础
- PHP自学教程之PHP语法基础
- 自学笔记之java基础
- Java自学笔记之语法小述
- java基础之语法
- Java之语法基础
- Java基础之语法
- Java基础之语法
- JAVA基础 之 语法基础
- Java基础之基础语法
- java基础之语法基础
- 自学java之路
- 自学JAVA之路`~
- iOS开发笔记 整理(全)
- spring mvc DispatcherServlet详解之---视图渲染过程
- 用二叉树来理解树状数组
- Java简易绘图板
- 相遇在天 相守在人
- java自学之路-----JSP_基础语法
- 黑马程序员-----------android自学第一天总结
- 适配iOS7之—UITableView和UISearchBar(待续)
- 世上最心痛的距离
- POJ 1185炮兵阵地
- linux下安装配置ant
- iOS7适配,求iOS8文档
- 【招聘曝光】网上淘宝刷单兼职靠谱吗 刷钻兼职日结工资是真的吗
- Qt StyleSheet的使用