JSP的工作原理:
客户端发送请求——> 服务器(Server)————> 如果JSP页面是第一次请求,编程成Servlet ——> Servlet 动态生成HTML页面返回客户端
注意:Servlet 是单例模式,所以所有客户端访问的是同一个Servlet。
JSP与Servlet的区别:
1、Servlet作为web应用中的控制器组件来使用;
2、JSP技术作为数据显示模板来使用;
3、Servlet 负责响应请求、产生数据,并把数据通过转发技术到JSP,JSP来显示。
JSP的3个编译指令:
1、page : <%@page contentType="text/html; charset=gb2312"%>;
2、include : <%@ include file="fileURL"%>;
3、taglib 指令
JSP的7个动作指令:
1、jsp:forward : 执行页面转向,将请求的处理转发到下一个页面;
2、jsp:param : 用于传递参数,必须与其他支持参数的标签一起使用;
3、jsp:include : 用于动态引入一个JSP页面;
4、jsp:plugin : 用于下载JavaBean或Applet到客户端执行;
5、jsp:useBean : 创建一个JavaBean实例;
6、jsp:setProperty :设置JavaBean实例的属性;
7、jsp:getProperty : 输出JavaBean实例的属性值。
JSP的9个内置对象:
1、application 对象 存放全局变量,它开始于服务器的启动,直到服务器关闭。
<%=application.getAttribute("count")%>
2、config对象 配置信息如(web.xml);
3、exception对象 异常;
4、out对象,是JspWriter类的实例,是向客户端输出内容常用的对象;
<body>
<%
for(int i = 0; i < 2000; i++)
out.println(i + "{" + out.getRemaining() + "}");
%>
</body>
5、page对象;指向当前JSP页面本身;
6、request对象, 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求
请求方式 : <%=request.getMethod()%>
请求资源 :<%=request.getRequesstURI()%>
请求用的协议:<%=request.getProtocol()%>
请求的文件名:<%=request.getServletPath()%>
请求的服务器端口:<%=request.getServerPort()%>
请求服务器的IP:<%=request.getServetName()%>
客户端IP地址: <%=request.getRemoteAddr()%>
客户端主机名:<%=request.getRemoteHost()%>
表单提交来的值:<%=request.getParameter("qet")%>
转发 : request.getRequestDispather('a.jsp').forward(request, response);
7、response对象 包含响应客户请求的相关信息;
输出字符流和图片;
重定向: response.sendRedirect('a.jsp');
8、session 对象, session对象指向的是客户端与服务器的一次会话,从客户连接到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession 类的实例;
9、pageContext对象,提供了对JSP页面内容所有对象和名字空间的访问,也就是说他可以访问到本页面所在的Session,也可以取本页面所在的application的某一属性值,相当于页面中所有功能的集成,它的本类名叫:pageContext。