动态页面技术(JSP/EL/JSTL)

JSP技术

  • JSP脚本和注释
    jsp脚本:
    1)<%java代码%> ----- 内部的java代码翻译到service方法的内部
    2)<%=java变量或表达式> ----- 会被翻译成service方法内部out.print()
    3)<%!java代码%> ---- 会被翻译成servlet的成员的内容

jsp注释: 不同的注释可见范围是不同
1)Html注释: ---可见范围 jsp源码、翻译后的servlet、页面 显示html源码
2)java注释://单行注释 /多行注释/ --可见范围 jsp源码 翻译后的servlet
3)jsp注释:<%--注释内容--%> ----- 可见范围 jsp源码可见

  • Jsp运行原理-----本质jsp就是servlet
    jsp在第一次被访问时会被web容器翻译成servlet。

  • jsp指令
    jsp的指令是知道jsp翻译和运行的命令 三大指令
    jsp的指令是指导jsp翻译和运行的命令,jsp包括三大指令:

  • 1)page指令 --- 属性最多的指令(实际开发中page指令默认)
    属性最多的一个指令,根据不同的属性,指导整个页面特性
    格式:<%@ page 属性名1= "属性值1" 属性名2= "属性值2" ...%>
    常用属性如下:
    language:jsp脚本中可以嵌入的语言种类
    pageEncoding:当前jsp文件的本身编码---内部可以包含contentType
    contentType:response.setContentType(text/html;charset=UTF-8)
    session:是否jsp在翻译时自动创建session
    import:导入java的包
    errorPage:当当前页面出错后跳转到哪个页面
    isErrorPage:当前页面是一个处理错误的页面

  • 2)include指令
    页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中
    格式:<%@ include file="被包含的文件地址"%>

  • 3)taglib指令
    在jsp页面中引入标签库(jstl标签库、struts2标签库)
    格式:<%@ taglib uri="标签库地址" prefix="前缀"%>

jsp内置/隐式对象。 9个隐式对象。四大域

四大域
- ServletContext
- HttpServletRequest
- session
- pageContext

九大隐式对象

  - request            得到用户请求
  - response          服务端向客户端的回应信息
  - session            用来保存用户的信息
  - pagecontext       JSP的页面容器
  - application          所有用户的共享信息
  - out                         用于页面输出
  - config                     服务器配置,可以取得初始化参数
  - page                      指当前页面转换后的servlet类的实例
  - exception              表示jsp页面所发生的异常,在错误页中才起作用

    //获得集合List<Product>
        List<Product> productList =         (List<Product>)request.getAttribute("productList");
        if(productList!=null){
            for(Product product : productList){
                out.write("<div class='col-md-2' style='height:250px'>");
                out.write("<a href='product_info.htm'>");
                out.write("<img src='"+product.getPimage()+"' width='170' height='170' style='display: inline-block;'>");
                out.write("</a>");
                out.write("<p><a href='product_info.html' style='color: green'>"+product.getPname()+"</a></p>");
                out.write("<p><font color='#FF0000'>商城价:&yen;"+product.getShop_price()+"</font></p>");
                out.write("</div>");
            }
        }

推荐阅读更多精彩内容