【JSP】JSP的介绍和基本原理
JSP简介
JSP, Servlet 和 JSP引擎
JSP转换为Servlet的细节
public void _jspService()
{
//..... try {
response.setContentType("text/html; charset=UTF-8");
pageContext = _jspxFactory.getPageContext(
this,
request,
response,
null, /*page指令配置的error page 的URL*/
true, /*page质量配置的是否使用session*/
8192, /*page指令配置的out对象的缓存大小(kb)*/
true); /*page指令配置的out对象是否autoFlush*/ //.....
}
JSP转译后的Servlet的继承结构
JSP转译后的java文件在tomcat home下的work目录下找到。

public interface Servlet {
public void init(ServletConfig config) throws ServletException;
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
public void destroy();
public String getServletInfo();
public ServletConfig getServletConfig();
}
public interface JspPage extends Servlet {
public void jspInit();
public void jspDestroy();
}
public interface HttpJspPage extends JspPage {
public void _jspService(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException;
}
public abstract class HttpJspBase extends HttpServlet implements HttpJspPage {
private static final long serialVersionUID = 1L;
protected HttpJspBase() {
}
@Override
public final void init(ServletConfig config)
throws ServletException
{
super.init(config);
jspInit();
_jspInit();
}
@Override
public String getServletInfo() {
return Localizer.getMessage("jsp.engine.info");
}
@Override
public final void destroy() {
jspDestroy();
_jspDestroy();
}
/**
* Entry point into service.
*/
@Override
public final void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
_jspService(request, response);
}
@Override
public void jspInit() {
}
public void _jspInit() {
}
@Override
public void jspDestroy() {
}
protected void _jspDestroy() {
}
@Override
public abstract void _jspService(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException;
}
JSP的生命周期
【JSP】JSP的介绍和基本原理的更多相关文章
- jsp标签的介绍
cankao:http://www.cnblogs.com/xdp-gacl/p/3788369.html jsp常用的标签有以下3个 1.<jsp:include>标签 2.<js ...
- java.lang.NoClassDefFoundError: org/apache/jsp/jsp/Container_jsp
1.错误描述 八月 20, 2014 7:10:18 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.servi ...
- jsp jsp属性范围
jsp提供了4中属性分别是 当前页:一个属性只能在一个页面中取得,跳转淘其他页面无法取得. 一次服务器请求:一个页面中设置的属性,只要经过了服务跳转,而跳转之后的页面可以继续取得 一次回话:一个用户设 ...
- jsp jsp标签
JSP标签页称为Jsp Action(JSP动作元素),用于在Jsp页面中提供业务逻辑功能,避免在Jsp页面中直接编写java代码,造成jsp页面难以维护. jsp常用标签 jsp:include标签 ...
- JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术
JSP JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术.从这一点来看,非常类似Microsoft ASP.PHP等技术.借助形式上的内容和外观表现的分 ...
- JSP<jsp:forward>与<%@ include%>
JSP<jsp:forward>与<%@ include%><jsp:include> <jsp:forward file="forwardTo_p ...
- <jsp:include page="${pageContext.request.contextPath/index.jsp" ></jsp:include> 引发的错误
路径引发的错误 如下使用项目路径对jsp页面进行获取,会报javax.servlet.ServletException: File "/web/dbwx/web/public/page_to ...
- JavaWeb——JSP,JSP指令,注释
什么是JSP JSP原理 JSP页面中的java代码服务器是如何执行的 Web服务器在调用jsp时会给jsp提供一些什么java对象 JSP执行过程 JSP页面的元素包括 JSP模版元素 JSP脚本片 ...
- JSP的简单介绍
什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写htm ...
随机推荐
- 关于xml里的encoding
创建一个xml时 如果<?xml version="1.0" encoding="GB2312" ?>更改encoding的值为UTF-8,保存后 ...
- jquery.form 和MVC4做无刷新上传DEMO
jquery.form 和MVC4做无刷新上传DEMO HTML: <script src="~/Scripts/jquery-1.10.2.min.js"></ ...
- 源码分析八(org.springframework.util包之StringUtils类))
一:spring框架util包中的StringUtils类主要是处理关于字符串 的功能方法,下面直接结合代码分析: //判断字符串是否为空,如果为nul或者""则返回true,否则 ...
- Centos7.3.1611安装mysql5.7.18 rpm教程 并设置datadir
一.卸载MariaDB CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了mysql相关的软件包.因为MariaDB和MySQL可能会冲突,故先卸载MariaDB. 1. ...
- python使用类作为装饰器
1.普通就是一个函数作为装饰器,也可以用类名作为装饰器. 因为类和函数都是callable的,都可以使用括号来调用运行他. 2.上上篇的缓存一段时间的还是函数作为装饰器,类只是充当了比模块更下一级的命 ...
- Android 程序打包及签名(转)
为什么要签名??? 开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的. 由于开发商可能通过使用相同的Package Name来 ...
- DOS 配置IP地址
@echo off :startIP set /p source=STATIC Y or N or E: echo source:%source% if "%source%" == ...
- AcceptEx 以及 获取远程IP与port
// 獲取本地以及遠程的IP和port setsockopt(clientfd, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char *)&listenfd ...
- firefox 好用的插件
firefox一直是各位渗透测试必备的利器,这里整理了34款Firefox插件和几款Chrome的插件,其中包含渗透测试.信息收集.代理.加密解密等功能. Firefox插件 1:Firebug Fi ...
- Ansible 如何查看模块文档
[root@localhost ~]$ ansible-doc -l # 列出所有模块 [root@localhost ~]$ ansible-doc cron # 查看指定模块的文档