一、在jsp文件中的作用?
1、http-equiv="Content-Type":http-equiv 属性为名称/值对提供了名称。并指示服务器在发送实际的文档之前先在要传送给浏览器的
MIME 文档头部包含名称/值对。
2、当服务器向浏览器发送文档时,会先发送许多名称/值对。虽然有些服务器会发送许多这种名称/值对,但是所有服务器都至少要发送一个:content-type:text/html。
这将告诉浏览器准备接受一个 HTML 文档。
3、使用带有 http-equiv 属性的 <meta> 标签时,服务器将把名称/值对添加到发送给浏览器的内容头部.
content=text/html:text/html是一种标准的文件类型映射说明,
可以叫MIME,是所有平台通行的。
4、text/html之外还有text/css、text/javascript、application/vnd.ms-excel等等。
浏览器是通过Content-Type这个标记来了解文件类型的,而不是后缀名。
说明这是个html文件
charset=UTF-8:编码方式,用的是utf-8编码
二、include静态引入jsp
<body>
<%@ include file="logo.jsp" %>
使用include的时候,会把其他的页面引入到该页面来,并且在翻译成java文件的时候会引入其它页面的翻译之后的内容。所有的jsp页面,会合并到一个jsp中--合并到一个jsp翻译后的一个java文件中。(先合并后翻译)
1、该种方式:引入其他页面的时候,只要求书写要显示的内容。其他body,html,head,都可以不写。要保留编码等信息
2.在多个页面中,不能够重复定义变量。如果重复定义变量之后,程序中会出现错误。
三、taglib指令主要是在页面上引入其他已定义好的标签或者函数
1、使用自己设计的一些标签,然后当页面在运行的时候这些标签背后就会对应一些Java代码,进而达到在页面上通过标签调用Java代码的功能。在jstl-1.2.jar 下面去找c.tld.
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
2、在taglib指令中的属性:
uri:是当前标签对应的Java代码封装之后的名称空间,唯一
prefix:它是当前在页面上可以使用的标签的前缀。
<c:forEach items="${requestScope.testList}" var="str">
<span>${str}</span>
</c:forEach>
四、jsp中9个内置对象
1、pageContext:本JSP的上下文
2、session:为请求的客户创建的session对象
3、exception:表示JSP页面运行时产生的异常
4、application:从Servlet配置对象获得Servlet上下文(如在getServletConfig(),getContext()的调用中)
5、config:本JSP的ServletConfig
6、out向输出流写入内容的对象
7、page:实现处理本页当前请求的类的实例
8、request:触发服务器调用的请求
9、response:对请求的应答
九种内置对象可在jsp翻译之后的java源代码的Service方法里面找到
pageContext:代表当前页面的上下文
域对象:公用的方法:setAttribute(String name,ObjectValue) getAttribute(String name)
常用操作:1、向四个范围存、取数据。(page,request,session,application)四个域对象 (page < request < session < ServletContext(application))范围大小
getAttribute(String name); 从page中取出数据的
getAttribute(String name,int Scope); 从指定的对象取出数据。
findAttribute(String name)非常重要的方法。按照page,request,session,application,由小到大的范围搜索指定的属性,找到就放回,如果都没有,就放回null
五、指令
1、page
page指令的属性有:
1、language="java"是生命当前这个jsp中可以使用编程语言,它默认就是Java。并且目前只支持Java。
2、import="java.util.*"导入其它的包
3、pageEncoding="utf-8"设置当前jsp页面保存时的编码表,还可以告诉浏览器以什么样的方式去解析HTML。
4、contentType="text/html;charset=utf-8"设置response输出的内容的字符集,并且告诉浏览器是用那种字符集去解析当前的HTML的文件,如果设置了pageEncoding那么以pageEncoding的值为主,pageEncoding的优先级高
5、autoFlush="true"它是指使用out方法输出的时候,是否会自动刷新,默认是true会自动刷新
6、buffer=“8kb"当前页面的缓冲区大小
7、errorPage=”"配置页面出现异常时跳转到友好界面 (可以再web.xml中统一配置)
500>
/error500.jsp
8、isErrorPage=“false” true,表示当前页面是错误页面(用来显示错误信息),false正常的页面
如果设置了true,可以使用exception得到错误的信息,如果设置false,exception不可以使用。
9、isELIgnored=“false” 是否运行使用el表达式。
默认是false的可以使用。如果true,表示当前的jsp页面不能够使用el表达式。并且把表达式的原封不动的输出出去。
10、session=“true” 默认是true
当前的页面中是否可以直接使用session对象。当我们第一次访问jsp的时候session对象就已经创建了
如果session =false 这个页面不能使用session。
如果session=true。如果当前会话没有session,那么会自动创建一个session出来。
六、向页面输入内容两种方式:
1、out、print();
2、response.getWriter().print();
out缓冲区的内容在flush 或者缓冲区满的时候输出
reponse输出流的内容直接输出
七、标签
1、jsp:useBean
javabean对象在java中如何描述:
属性私有,并且对每个属性,有getter setter 方法。
要求需要无参的构造方法,并且是public
User user =new User();
user.setUserName;
user.getUserName;
jsp:useBean
jsp:setProperty
jsp:getProperty
2、jsp:include动态引入其他页面 (先翻译再合并)
因为编译成多个文件。所以里面的每个类中的变量都是单独存在的,不能混合使用。不能引入其他页面的定义的变量。
3、jsp:forward标签
代替在Servlet中的请求转发
request.getRequestDispatch("/index.jsp").forward(request,reponse);
<jsp:forward page="/jsp2.jsp"></jsp:forward>
4、jsp的刷新跳转
<meta http-equiv="refresh" content="3;url='login.jsp'"> (写在头文件中)
在HTML里只要涉及文件的地方(如超级链接、图片等)就会涉及绝对路径与相对路径的概念。
1.绝对路径
绝对路径是指文件在硬盘上真正存在的路径。例如“bg.jpg”这个图片是存放在硬盘的“E:\book\网页布局代码\第2章”目录下,那么 “bg.jpg”这个图片的绝对路径就是“E:\book\网页布\代码\第2章\bg.jpg"。那么如果要使用绝对路径指定网页的背景图片就应该使用 以下语句:
2.使用绝对路径的缺点
事实上,在网页编程时,很少会使用绝对路径,如果使用“E:\book\网页布\代码\第2章\bg.jpg”来指定背景图片的位置,在自己的计算机上 浏览可能会一切正常,但是上传到Web服务器上浏览就很有可能不会显示图片了。因为上传到Web服务器上时,可能整个网站并没有放在Web服务器的E盘, 有可能是D盘或H盘。即使放在Web服务器的E盘里,Web服务器的E盘里也不一定会存在“E:\book\网页布局\代码\第2章”这个目录,因此在浏 览网页时是不会显示图片的。
3.相对路径
为了避免这种隋况发生,通常在网页里指定文件时,都会选择使用相对路径。所谓相对路径,就是相对于自己的目标文件位置。例如上面的例子,“s1.htm” 文件里引用了“bg.jpg”图片,由于“bg.jpg”图片相对于“s1.htm”来说,是在同一个目录的,那么要在“s1.htm”文件里使用以下代 码后,只要这两个文件的相对位置没有变(也就是说还是在同一个目录内),那么无论上传到Web服务器的哪个位置,在浏览器里都能正确地显示图片。
再 举一个例子,假设“s1.htm”文件所在目录为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“E:\book\网页 布局\代码\第2章\img”,那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的“img”子目录里,则引用图片的语句应该 为:
注意:相对路径使用“/”字符作为目录的分隔字符,而绝对路径可以使用“\”或“/”字符作为目录的分隔字符。由于“img”目录是“第2章”目录下的子目录,因此在“img”前不用再加上“/”字符。
在 相对路径里常使用“…/”来表示上一级目录。如果有多个上一级目录,可以使用多个“…/”,例如“http://www.cnblogs.com/”代表上上级目录。假设 “s1.htm”文件所在目录为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“E:\book\网页布局\代码”,那 么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的上级目录里,则引用图片的语句应该为:
再举一个例子,假设“s1.htm”文件所在目录为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“E:\book\网 页布局\代码\img”,那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的上级目录里的“img”子目录里,则引用图片的语句 应该为:
4.相对虚拟目录
有关相对路径还有一个比较特殊的表示:“相对虚拟目录”。请看下面的例子:
在这个例子里,background属性的值为“/img/bg.jpg”,注意在“img”前有一个“/”字符。这个“/”代表的是虚拟目录的根目录. 假设把“E:\book\网页布局\代码”设为虚拟目录,那么“/img/bg.jpg”的真实路径为“E:\book\网页布局\代码\img \bg.jpg”;如果把“E:\book\网页布局\代码\第2章”设为虚拟目录,那么“/img/bg.jpg”的真实路径为“E:\book\网页 布局\代码\第2章\img\bg.jpg”
jsp 九大内置对象和其作用详解
JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception
1、request对象
request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。
2、response对象
response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
3、session对象
session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。
4、application对象
application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
5、out 对象
out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
6、pageContext 对象
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
7、config 对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
8、page 对象
page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
9、exception 对象
exception 对象的作用是显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。