一遍过JSP【JAVAEE基础】

1.JSP:动态网页(就是在html中嵌套java代码)

  动态网页:随着 时间、地点、用户操作的改变而改变,使用到服务端脚本语言(JSP)

2.JSP页面元素:HTML、java代码(脚本Scriptlet)、指令、注释
页面脚本

  1.
	   <%  
		局部变量、java语句(编译后:service方法中)
	   %>
  2.
      <%!  
		全局变量、定义方法(编译后:Servlet成员变量位置)
      %>
  3.
      <%= 输出表达式 %>

指令

  1.page指令
  <%@ page contentType="text/html;charset=UTF-8" language="JSP页面使用的脚本语言" import="导入类" %>

  2、taglib指令
	作用:导入标签库
	语法:<%@taglib  uri="文件的uri名称"  prefix="前缀(简写)"%>

  3、include指令
	作用:在当前页面用于包含其他页面
	语法: <%@include  file="common/header.jsp%>

注释

  html注释<!-- -->
  java注释//   /**/
  jsp注释<%-- --%>

3.jsp执行流程:

   jsp ->java(Servlet文件) ->class

4.JSP九大内置对象:
内置对象:在jsp中,不需要创建,可以直接使用的对象

jsp
5.JavaBean(Java类)

   定义:(满足以下两点)
      1.public修饰的类,含有public无参构造函数
      2.所有属性都是private,并提供set/get。

   作用:
      1.减轻jsp的复杂度
      2.提高代码的复用度

   使用层面分为两大类:
     1.封装业务逻辑的JavaBean(登录逻辑 LoginDao.java 等)   可以将jsp中的JDBC代码,封装起来。
     2.封装数据的JavaBean(实体类,Student.java  Person.java)   对应于数据库中的一张表。

6.通过MVC设计模式了解JavaBean

 M:  Model 模型 (负责各个功能) javaBean
 V:  View  视图 (负责页面的显示,以及与用户的交互)  html/css/js/jsp
 C:  Controller 控制器 (接受请求,将请求跳转到模型进行处理,模型处理完毕后,再将处理的结果返回给请求处) Servlet/jsp

。。。
7.三层架构

与MVC设计模式的目标一致:都是为了解耦合、提高代码复用;
 区别,二者对项目的理解的角度不同。
  1.三层组成:
    表示层(USL):视图层    
       - 前台:对应于MVC中的View,用于和用户交互、界面的显示(html/css/js/jsp)
       - 后台:对应于MVC中的Controller,用于控制跳转、调用业务逻辑层(Servlet/SpringMVC/Struts2 位于servlet包)

    业务逻辑层(BLL):service层
       - 组装数据访问层,逻辑性的操作(增删改查 位于service包) eg:删:查+删
       
    数据访问层(DAL):dao层
       - 直接访问数据库的操作,原子性的操作(增删改查 位于dao包)

  2.三层间的关系:
    上层将请求传递给下层,下层处理后返回给上层。
    上层依赖于下层(上层持有下层成员变量,有上层的前提必须有下层)

  3.三层优化
    
- 加入接口
    建议面向接口开发:先接口-再实现类
- service、dao加入接口
 - 接口与实现类的         命名规范   
   接口:interface       IXxxService、IXxxDao
       
   实现类:implements    XxxServiceImpl、 XxxDaoImpl

    使用接口/实现类时。推荐写法
   接口 x=new 实现类();


- DBUtil  通用的数据库帮助类,可以简化Dao层的代码量

8.EL: 表达式语言,可以替代JSP页面中的java代码

   传统的 在JSP中用java显示数据的弊端:类型转换、需要处理null、代码参杂-->EL

 - EL示例:
     ${requestScope.student.address.schoolAddress}<br>
     ${域对象.域对象中的属性.属性.级联属性}<br>


 - EL操作符
     点操作符  .      -- 使用方便
     中括号操作符 [""]  -- 功能强大:可以包含特殊字符(. 、 -),获取变量值

  获取map属性
       Map<String,Object> map=new HashMap<>();
       map.put("cn","中国");
       map.put("us","美国");
       request.setAttribute("map",map);
    ${requestScope.map.cn}

  isEmpty运算符:判断一个值存在不存在。

- EL表达式的隐式对象(内置对象)
   - 作用域访问对象
         pageScope requestScope sessionScope sessionScope applicationScope
	 如果不指定域对象,则默认会根据从小到大的顺序,依次取值

   - 参数访问对象:获取表单数据。
	 ${param.xxx}
	 ${paranValues.xxx[]}

   - JSP隐式对象 : pageContext     
     ${pageContext.xxx} 通过pageContext间接获取jsp的隐式对象。

9.JSTL:比EL更强大

   1.引入两个jar包:jstl.jar standard.jar
   2.引入taglib  <%@ taglib uri="...core"> prefix="c" %>
   。。。。。。。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章