JSP学习总结

什么是JSP:

  在前台可以写后台的java代码

  在HTML页面当中内嵌java代码,目的是:将静态页面转变为动态页面(数据);

jsp与servlet的区别:

  一个jsp页面就是一个servlet程序

  jsp具备servlet一切特性,同时比servlet方便(标签语言)。

  jsp包含,jsp常用指令,jsp基本语法,jsp原理

  jsp的九大内置对象(非常重要)

jsp程序在第一次请求时需要转化和编译,所以第一次请求的响应比较慢,从第二次开始效率就很高了。

JSP语法:

  <%! %> :申明全局变量(成员变量),可以声明方法

  <% %> :申明局部变量

  <%= %> :输出(不能是表达式,不加分号)


JSP内置对象(很重要)

  是web容器创建的一组对象,使用时不需要使用new关键字修饰,可以直接使用。

JSP的九大内置对象

  五个常用的内置对象:

    1、out(缓冲的输出流,向客户端发送文本数据)

      <% out.println("dsdsdsd") ; %>

    2、request(请求对象)

    3、response(响应对象)

    4、session(会话对象)

    5、application(上下文对象)

  四个不常用的内置对象:

    6、page(当前页面)

    7、exception(异常对象)

    8、config(web.xml的配置)

    9、PageContext ( 页面运行环境)

web程序的请求与响应

  缓冲区,保存临时数据(Buffer)

  注:解决乱码问题

 


JSP 标签

  介绍:

    JSP标签也叫作Jsp Action元素,在页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护。

 JSP常用标签

  • <jsp:include>标签
  • <jsp:forward>标签

  • <jsp:param>标签 

 


 

JSP中使用JavaBean--标签 

  

  • 广义概念: java类

 

  

  • 狭义概念: 符合javaEE 标准的具有特定功能的java类

 

       要有成员属性,get/set方法。

 JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:

  • <jsp:useBean>标签:作用于JSP页面中查找或者实例化一个JavaBean(实体类)组件。
    • 语法:  <jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
      • id”属性:指定实体类实例对象的引用名称和存储在域范围中的名称。(类似 A a = new A() == id="a" 的关系) 
      • "class"属性:指定实体类的完整类名(必须含有包名)
      • “scope”属性:指定实例对象(beanName)存储的域范围,值为page、request、session或者application,默认为page
  • <jsp:setProperty>标签:用于在JSP页面中设置一个实体类组件的属性。
    • 语法格式一:<jsp:setProperty name="beanName" property="propertyName" value="string字符串"/>

    • 语法格式二:<jsp:setProperty name="beanName" property="propertyName" value="<%= expression %>" />

    • 语法格式三:<jsp:setProperty name="beanName" property="propertyName" param="parameterName"/>

    • 语法格式四:<jsp:setProperty name="beanName" property= "*" />

      • name属性用于指定JavaBean对象的名称。 

      • property属性用于指定JavaBean实例对象的属性名。

      • value属性用于指定JavaBean对象的某个属性的值,value的值可以是字符串,也可以是表达式。为字符串时,该值会自动转化为JavaBean属性相应的类型,如果value的值是一个表达式,那么该表达式的计算结果必须与所要设置的JavaBean属性的类型一致。  

      • param属性用于将JavaBean实例对象的某个属性值设置为一个请求参数值,该属性值同样会自动转换成要设置的JavaBean属性的类型。  

          
  • <jsp:getProperty>标签:在JSP页面中获取实体类的属性。
    • 语法:<jsp:getProperty name="beanInstanceName" property="PropertyName" />  
      • name属性用于指定JavaBean实例对象的名称,其值应与<jsp:useBean>标签的id属性值相同。 
      • property属性用于指定JavaBean实例对象的属性名。
      • 如果一个JavaBean实例对象的某个属性的值为null,那么,使用<jsp:getProperty>标签输出该属性的结果将是一个内容为“null”的字符串。  

   一个简单的小demo帮助理解下:

/**
   实体类Persion 属性 
*/
package me.gacl.domain;

public class Persion {
    private String name;
    private String sex;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    
}

jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%--
	尝试JSP对JavaBean的操作,实现<jsp:useBean>标签的使用。
 --%>
<jsp:useBean id="persion" class="me.gacl.domain.Persion" scope="page"></jsp:useBean>
<%
	persion.setName("王小二");
	persion.setSex("男");
	persion.setAge(18);
%> 

<jsp:useBean id="persion1" class="me.gacl.domain.Persion" scope="page"></jsp:useBean>
<jsp:setProperty property="name" name="persion1" value="王小妹"/>
<jsp:setProperty property="sex" name="persion1" value="女"/>

<%--在Persion的属性里age为int类型,但是在value=12编译将会出错,一下为正确方式。 --%>
<jsp:setProperty property="age" name="persion1" value="12"/>

 
<!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=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<p>useBean的使用方法</p>
	<h2>姓名:<%=persion.getName() %></h2><br>
	<h2>性别:<%=persion.getSex() %></h2><br>
	<h2>年龄:<%=persion.getAge() %></h2><br> 
	<hr>
	<p>jsp:setProperty标签使用demo</p>
	persion1姓名:<%=persion1.getName() %><br>
	persion1性别:<%=persion1.getSex() %><br>
	persion1年龄:<%=persion1.getAge() %>
	
	<hr>
	<p>jsp:getProperty(获得属性) 标签使用demo</p>
	<h2>persion1姓名:<jsp:getProperty name="persion1" property="name"></h2>
       <h2>persion1性别:<jsp:getProperty property="sex" name="person"/></h2>
       <h2>persion1年龄:<jsp:getProperty property="age" name="person"/></h2>
     
</body>
</html>

  

posted @ 2017-08-02 15:56  Zero豪  阅读(309)  评论(0编辑  收藏  举报