jsp研究(一)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

用jsp开发了程序好些时间了,但感觉对jsp的掌握还是不够。现在先分析一下*.jsp文件编译后的*_jsp.java 文件。

先写一个简单的my.jsp文件如下:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>baiming</title>

</head>

<body>

hello

</body>

</html>

****************************************************************

把改文件方到 tomcat根目录\webapps\ROOT 下。

运行tomcat,在地址栏里输入http://localhost:8080/my.jsp

在 tomcat根目录workCatalinalocalhost_orgapachejsp 下就会生成my_jsp.java文件。

我们现在来看看这个文件:

package org.apache.jsp;

import javax.servlet.*;

import javax.servlet.http.*;

import javax.servlet.jsp.*;

import java.sql.*;

public final class my_jsp extends org.apache.jasper.runtime.HttpJspBase

implements org.apache.jasper.runtime.JspSourceDependent {

private static java.util.Vector _jspx_dependants;

public java.util.List getDependants() {

return _jspx_dependants;

}

public void _jspService(HttpServletRequest request, HttpServletResponse response)

throws java.io.IOException, ServletException {

JspFactory _jspxFactory = null;

PageContext pageContext = null;

HttpSession session = null;

ServletContext application = null;

ServletConfig config = null;

JspWriter out = null;

Object page = this;

JspWriter _jspx_out = null;

try {

_jspxFactory = JspFactory.getDefaultFactory();

response.setContentType("text/html; charset=gb2312");

pageContext = _jspxFactory.getPageContext(this, request, response,

"", true, 8192, true);

application = pageContext.getServletContext();

config = pageContext.getServletConfig();

session = pageContext.getSession();

out = pageContext.getOut();

_jspx_out = out;

out.write("\r\n");

out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"rn'http://www.w3.org/TR/html4/loose.dtd">rn");

out.write("<html>\r\n");

out.write("<head>\r\n");

out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">\r\n");

out.write("<title>baiming</title>\r\n");

out.write("</head>\r\n");

out.write("\r\n");

out.write("<body>\r\n");

out.write("hello\r\n");

out.write("</body>\r\n");

out.write("</html>\r\n");

} catch (Throwable t) {

if (!(t instanceof SkipPageException)){

out = _jspx_out;

if (out != null && out.getBufferSize() != 0)

out.clearBuffer();

if (pageContext != null) pageContext.handlePageException(t);

}

} finally {

if (_jspxFactory != null) _jspxFactory.releasePageContext(pageContext);

}

}

}

你会发现jsp里使用的8个隐含的对象。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航