菜鸟学Android笔记(四十一):JSP指令元素——page指令
来源:互联网 发布:sql replace 正则 编辑:程序博客网 时间:2024/05/02 02:20
JSP有三大指令,分别是page、include、taglib
这些指令的作用互不相同,下面将首先介绍page指令
一、page指令的作用
主要用来设定JSP页面的全局属性,语法格式:
<@page 属性1=“属性1” 属性2=“属性2”%>二、常用的属性及作用
1、language属性、extends属性、import属性
这三个属性比较简单,language属性目前只有java值,extends属性主要指生成的Servlet继承哪个父类,import属性主要是导包
三者格式分别是:
<@page language=“java” extends=“pack.class” import=“java.util.*” %>2、autoFlush属性、buffer属性、info属性
暂时不讲
3、session属性
这个主要用来指定JSP页面是否可以使用session对象,默认是true
如何看出?新建一个1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP '1.jsp' starting page</title> </head> <body> This is my JSP page. <br> </body></html>那么我们看翻译过来的Servlet就会看到有session,
final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; final javax.servlet.ServletContext application; final javax.servlet.ServletConfig config; javax.servlet.jsp.JspWriter out = null; final java.lang.Object page = this; javax.servlet.jsp.JspWriter _jspx_out = null; javax.servlet.jsp.PageContext _jspx_page_context = null;
如果将session设置为false时,那么上面的session就会消失
4、isThreadSafe属性
用来指定是否支持多线程的使用,默认为true,表示支持多线程的使用
假如我们设置为false时,那么翻译过来的servlet又有什么变化?
之前的头部是这样:
public final class _1_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent{}现在变成了这样
5、errorPage属性和isErrorPage属性
这两个属性都是处理异常的,errorPage属性表示当前文件如果出现异常会跳转到指定的文件,isErrorPage属性则是指定该文件是否是能够处理异常的JSP文件
假设1.jsp是异常文件,error.jsp要跳转到的文件
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1" errorPage="error.jsp" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP '1.jsp' starting page</title> </head> <body> <% int i=1/0;%> </body></html>error.jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'error.jsp' starting page</title> </head> <body> 你出错啦~~ <br> </body></html>
这时就会跳转到error.jsp文件
假如在error.jsp文件中添加 isErrorPage=false,那么就跳转不到error.jsp文件中来
扩展:我们可以在web.xml配置通用的错误跳转文件
<error-page> <error-code>500</error-code> <location>/error/500.jsp</location> </error-page> <error-page> <error-code>400</error-code> <location>/error/400.jsp</location> </error-page> <error-page> <exception-type>java.lang.Throwable</exception-type> <location>/error/400.jsp</location> </error-page>6、pageEncoding属性和contentType属性
JSP页面的东西要经过几个步骤才能被浏览器访问
第一是:JSP页面写完后要保存
第二是:JSP页面要编译成Servlet
第三是:编译后的Servlet要服务器发送给客户端才能浏览
在这其中如果涉及到中文,就会出现乱码
保存的时候,如果用UTF--8保存,而编译的时候用GBK编译就会乱码(默认是ISO-8859-1)
假如我们用UTF-8保存,那么我们要指定编译用pageEncoding="UTF-8"指定编译的是UTF-8码表
但假如发送的是GBK码表也是不行的,所以我们应该设置contentType="text/html;charset="UTF-8"
但myecilpse是非常智能的,假如设置pageEncoding="UTF-8",那么保存和发送都是用UTF-8码表
- 菜鸟学Android笔记(四十一):JSP指令元素——page指令
- JSP:JSP指令元素:page指令,include指令,taglib指令
- JSP:JSP指令元素:page指令,include指令,taglib指令
- JSP:JSP指令元素:page指令,include指令,taglib指令
- Jsp之指令元素(page)
- JSP指令元素:page指令,include指令,taglib指令
- JSP指令元素:page指令,include指令,taglib指令
- JSP指令元素:page指令 include指令 tag lib指令。
- JSP学习笔记---page指令
- JSP指令--Page指令
- JSP语法——page指令
- JSP页面元素简介及page指令
- JSP的指令元素:page; include; taglib
- Jsp指令---page(页面)指令
- JSP系列二:JSP指令元素:page指令,include指令,taglib指令
- ---Jsp(四)page指令
- JSP学路漫漫 之 1.1 指令标签 (1) page指令
- Hello JSP!——指令元素之page篇(最后有疑问求解,感激不尽)
- Sublime - php 代码格式化插件
- An overview of memory management in QEMU
- iOS archive(归档)的总结
- android使用ImageLoader显示圆角图片
- 特征向量物理意义
- 菜鸟学Android笔记(四十一):JSP指令元素——page指令
- extjs-->form
- Mac之终端常用操作指令(一)
- JPanel绘图
- FATAL: Module iptable_nat not found解决办法
- android 电视端应用不同分辨率的适配
- Myeclipse将控制台日志输出到文件中和显示更多的日志信息
- thinkphp中如何导入js和css文件
- 简述 IOS中的LazyLoad思想