jsp-servlet篇(三)

1.JSP原理分析及语法

查看 _jsp.java 源码路径: F:\apache-tomcat-9.0.14\work\Catalina\localhost\ROOT\org\apache\jsp

JSP语法

  1. 注释
    1. <!-- html注释-->    html注释,在网页源代码中可以看到
    2. <%-- jsp注释--%>   在网页源代码中看不到。
  2. 输出数据到页面     <%= hello %>

        3.JSP中的Java脚本片段

      2,3 方式都在_japService() 里面。

<%

    语句1;

    语句2;

%>

  4.定义类的成员 ,

<%!

    String str;

    void testMethod(){}

%>

 

JSP中写Java代码相当恶心 和 Servlet中写html代码有一拼。

2.Jsp的三大指令

1)include指令

作用: 在当前页面用于包含其他页面
语法: <%@include file=”common/header.jsp”%>
注意:
  1)原理是把被包含的页面(header.jsp)的内容翻译到包含页面(index.jsp)中,合并成翻译成一个java源文件,再编译运行,这种包含叫静态包含(源码包含)
  2)抽出去的jsp中只需要<%@page ... %>   和内容即可。

(2)page指令

作用: 告诉tomcat服务器如何翻译jsp文件
  语法: <%@ page
      language=”java”              该属性用于设置JSP页面使用的语言,目前只支持Java语言
      import=”java.util.*”           导包,多个包之间用逗号分割 。
      pageEncoding=”utf-8”     定义JSP页面的编码格式,可解决中文乱码问题 
      contentType=”text/html; charset=utf-8” 服务器发送浏览器的数据类型和内容编码
      errorPage=”error.jsp”     当前页面发生错误跳转到错误页面。
      isErrorPage=”false”       该属性可以将当前页面定义为错误页面来处理另一个页面转发而来的错误,即异常处理。设置为true以后可以使用exception对象.
      buffer=”8kb”                  用于设置out对象所使用的缓冲区大小,默认大小是8KB,单位只能是8的倍数。
      session=”true”               定义JSP页面是否使用session会话对象,其值是boolean类型,默认值为true. 
      isELIgnored=”false”      该属性用于定义些页面是否忽略EL表达式的使用
    %>


(3)taglib指令

作用:导入标签库
语法:<%@taglib uri=”tld文件的uri名称” prefix=”简写” %>

3.  jsp 7个动作指令


动作指令与编译指令不间,编译指令是通知 Servlet 引擎的处理消息,而动作指令只是运行时的脚本动作。编译指令在将JSP 编译成 Servlet 时起作用:处理指令通常可替换成 Java脚本,是 JSP脚本的标准化写法。

 JSP7 个 动作指令如下 :

jsp:forward: 执行页面转向,将请求的处理转发到下一个页面。
jsp:param: 用于传递参数,必须与其他支持参数曲标签一起使用。
jsp:include: 用于动态引入一个 JSP 页面。
jsp:p1ugin: 用于下载 JavaBean 或 Applet 到客户端执行。
jsp:useBean: 使用 JavaBean。
jsp:setProperty: 修改 JavaBean 实例的属性值。
jsp:getProperty: 获取 JavaBean 实例的属性值。

4. JSP九大内置对象(不需要创建就可以直接使用):

  1. out  :    等同于 response.getWriter(),用来向客户端(浏览器)发送文本信息,
  2. request:    就是指HttpServletRequest类的对象
  3. response:   就是指HttpServletResponse类的对象
  4. session:     是HttpSession类的对象,
  5. application:是ServletContext类的对象
  6. page:        指当前页面的对象,类似于"this"
  7. config:       ServletConfig类的对象
  8. exception:   只能在错误页面中使用该对象,即在page指令中设置了isErrorPage="true",才可用
  9. pageContent:页面的上下文对象,是一个域对象

5. 谈谈JavaBean

什么是javaBean?

1. 简单理解JavaBean遵循一定的规范JAVA语言写成的可重用组件().

       1):类必须使用public修饰.

       2):必须保证有公共无参数构造器.  (一般就是可以通过反射轻松的创建对象)

       3):包含了属性的操作(给属性赋值,获取属性值). 

      注意:javaBean的属性(字段+set/get方法)

2. 广义的JavaBean:

       1):复杂:GUI,比如Button,Panel,Window.

       2):简单:domain,dao,service组件,封装数据,操作数据库,逻辑运算等.

3. JavaBean中的成员:

       1):方法:Method

       2):事件:event

       3):属性:property

4. JavaBean的自省(内省)机制

自省和反射很相似。大家都是通过字节码来映射出自身的元素!

反射映射出整个类,属性自省就映射出属性的全部,就是名字,getter 和setter 方法。

public class TestJavaBean {
    @Test
    public void test1() throws Exception{
        //static BeanInfo getBeanInfo(Class<?> beanClass);  //获取指定字节码对象的javaBean信息对象
        BeanInfo info= Introspector.getBeanInfo(Student.class,Object.class);
      PropertyDescriptor[] propertys= info.getPropertyDescriptors();//获取所有属性的描述器
        for (PropertyDescriptor pd : propertys) {
            System.out.println(pd);//打印每一个属性描述器。
            System.out.println(pd.getName());//属性对象的名称
            System.out.println(pd.getPropertyType());//属性对象的类型
            System.out.println(pd.getReadMethod());//属性对象的读方法  getXxx()
            System.out.println(pd.getWriteMethod());//属性对象的写方法  setXxx()
            System.out.println("-----------------------");
        }
    }
}    

猜你喜欢

转载自www.cnblogs.com/gshao/p/10354292.html