JSP:java server page,java服务器端页面,是简化Servlet编写的一致技术,它将JAVA代码和HTML语句混合在同一文件中编写,
只对网页中要动态产生的内容采用JAVA代码来编写,而对固定不变的静态内容采用普通静态
HTML页面的方式编写。
在JSP页面中编写的JAVA代码需要嵌套在<%%>内,嵌套在<%%>之间的JAVA代码
被称为脚本片段,没有嵌套在<%%>之间的内容被称为JSP的模板元素。
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'index.jsp' starting page
<% System.out.println("hello world");%>
在控制台输出:hello world
JSP文件就像普通的html文件一样,它们可以放置在WEB应用程序中的除了WEB-INF
及其子目录外的其他任何目录中,JSP页面的访问路径与普通HTML页面的访问路径形式
是一样的。
JSP本质上是一个Servlet.
运行原理:WEB容器(Servlet引擎)接收到以.jsp结尾的URL的访问请求时,它将该访问
请求交给JSP引擎去处理。
每个JSP页面在被第一次访问时,JSP引擎将他翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet
的class类文件,然后再由web容器(Servlet引擎)像调用普通servlet程序一样的方式来装载和解释执行这个由j
sp页面翻译成的servlet程序。
JSP规范没有明确要求JSP中的脚本程序代码必须采用JAVA语言,JSP中的脚本程序代码可以采用JAVA语言之外
的其他脚本语言来编写,但是,JSO页面最终必须转换成JAVA servlet程序。
可以在WEB应用程序正式发布之前吗,将其中所有的JSP页面预先编译成SERVLET程序。
JSP隐藏对象:未声明就可以直接使用的对象
================================================================
原文地址:http://blog.csdn.net/unei66/article/details/10343717
1.out输出流对象(*)
隐藏对象out是javax.servlet.jsp.JspWriter类的实例。服务器向客户端输出的字符类内容可以通过out对象输出。可以直接把字符串打印到浏览器上。
<% out.println("hello sasa");%>
2.request (HttpServletRequest)请求对象(*)
隐藏对象request是javax.servlet.ServletRequest类的实例。代表客户端的请求。request包含客户端的信息以及请求的信息,如请求哪个文件,附带的地址栏参数等。每次客户端请求都会产生一个request实例。
JSP页面:
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'index.jsp' starting page
<% String name=request.getParameter("name");
System.out.println(name);%>
控制台输出:sasa
3.response (HttpServletReponse)响应对象
隐藏对象response是javax.servlet.ServletResponse类的实例,代表服务器端的响应。服务器端的任何输出都是通过response对象发送到客户端浏览器。每次服务器端都会产生一个response实例。
4.config 配置对象
隐藏对象config是javax.servlet.ServletConfig类的实例,ServletConfig封装了配置在web.xml中初始化JSP的参数。JSP中通过config获取这些参数。每个JSP文件都有一个config对象。若需要访问当前JSP配置的初始化参数,需要通过映射的地址才行。
在web.xml配置index.jsp
index
/index.jsp
test
testValue
index
/index.jsp
尝试获取参数test的值:
<% String value=config.getInitParameter("test");
System.out.println(value);%>
输出:testValue
5.session 会话对象(*)
隐藏对象session是javax.servlet.http.HttpSession类的实例。session与cookie是记录客户访问信息的两种机制,session用于服务器端保存用户信息,cookie用于客户端保存用户信息。Servlet通过request.getSession()获取session对象,而在JSP中可以直接使用。如果JSP中配置了<%@ page session="false" %>,则隐藏对象session不可用。每个用户对应一个session对象。
6.application 应用程序对象(*)
隐藏对象application是javax.servlet.ServletContext类的对象。application封装了JSP所在的Web应用程序的信息,例如web.xml中配置的全局的初始化信息。Servlet中application对象通过ServletConfig.getServletContext()来获取。整个Web应用程序对应一个application对象。
<% String user=application.getInitParameter("user");
System.out.println(user);%>
输出结果:sasa
7.page 页面对象
隐藏对象page为javax.servlet.jsp.HttpJspPage类的实例,page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。page相当于普通java类中的关键字this。
<% out.println(this);%>
<% out.println(page);%>
8.pageContext 页面上下文对象(*)
隐藏对象pageContext为javax.servlet.jsp.PageContext类的实例。pageContext对象代表当前JSP页面编译后的内容。通过pageContext能够获取到JSP中的资源,可以从中获取到其他8个隐藏对象。
<%ServletRequest req=pageContext.getRequest();
System.out.println(req==request);%>
输出结果:true
9.exception 异常对象
隐藏对象exception为java.lang.Exception类的对象。exception封装了JSP中抛出的异常信息。要使用exception对象,需要设置<%@ page isErrorPage="true" %>。隐藏对象exception通常被用来处理错误页面。
============================================================================