学会深入"了解"JSP

这阵子看东西的时候看到

jsp的动态导入(<jsp:include file="">)和静态导入(<%@ include file=""%>)。。

好,我承认了,n久以前看这些的时候觉得没啥,一直跳,虽然有回顾,但始终给漏了点东西。

但是说真的,像:

  1. jsp的内置对象
  2. <%!   %>与<% %>的区别
  3. 再加上上面说到的那个.
其实有时候觉得钻得选方向,如果像网上经常动不动就搬一大块砖让人啃,估计过阵子牙齿掉了,顺便老年痴呆,又忘了不还得重来。
只要 知道jsp本质是个servlet,像tomcat这web容器的根目录里的work目录里能看到生成的代码就够了,没必要搞得太复杂.

像jsp的内置对象

public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
        throws java.io.IOException, javax.servlet.ServletException {

    final javax.servlet.jsp.PageContext pageContext;
    javax.servlet.http.HttpSession session = null;
    final javax.servlet.ServletContext application;
    final javax.servlet.ServletConfig config;
    javax.servlet.jsp.JspWriter out = null;
    final java.lang.Object page = this;
    javax.servlet.jsp.JspWriter _jspx_out = null;
    javax.servlet.jsp.PageContext _jspx_page_context = null;


    try {
      response.setContentType("text/html;charset=ISO-8859-1");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;
内置对象都摆这。变量名冲突也就这样子。编译不通过的原因都在这.

<% %>有! 跟没有的区别是做用域的问题,一个是在service方法中,一个在外面,现在回归基础就能理解有时候那些为什么exception 了



动态跟静态导入也就这样

  <%=basePath %>
 dynamic: <jsp:include page="temp.jsp"></jsp:include>
 static: <%@include file="temp.jsp" %>
  <%=basePath %>



动态导入
 out.write(" dynamic: ");
      org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "temp.jsp", out, false);
      out.write("\r\n");
      out.write(" static: ");
静态导入有兴趣可以去看看

就是像是将两个源文件按位置合并,再转成servlet, so 变量名不能出现重复

ok,基础就到这了。知道的别拍呀!是上网查时那个火呀~~~~!








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值