jsp基础

一、jsp简介

        JSP全称是Java Server Page,它和Servlet一样,也是sun公司推出的一套开发动态web资源的技术,称为JSP/Servlet规范。JSP的本质其实就是一个Servlet。

        1、jsp和HTML以及servlet的使用场景

类别适用场景
HTML只能开发静态资源,不能包含java代码,无法添加动态数据。
Servlet写java代码,可以输出页面内容,但是很不方便,开发效率极低。
JSP它包括了HTML的展示技术,同时具备Servlet输出动态资源的能力。但是不适合作为控制器来用。

  二、jsp简单入门

        1、创建javaWeb工程

        2、web下创建index.jsp文件

 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>JSP的入门</title>
  </head>
  <body>
      这是第一个JSP页面
  </body>
</html>

        3、jsp说明

                写在之前: 明确JSP就是一个Servlet。是一个特殊的Servlet。

        4、jsp的原理:

 三、jsp应用

        1、jsp语法

                1、Java代码块

                        在jsp中,可以使用java脚本代码。形式为:<% 此处写java代码 %>但是,在实际开发中,极少使用此种形式编写java代码

                代码:

<!--Java代码块-->
<% out.println("这是Java代码块");%>

                2、jsp表达式

                        在jsp中,可以使用特定表达式语法,形式为:<%=表达式%>

                      jsp在翻译完后是out.print(表达式内容);

                      所以:<%out.print("当前时间);%>和<%="当前时间"%>是一样的。

                      在实际开发中,这种表达式语法用的也很少使用。

                代码:

<!--JSP表达式-->
<%="这是JSP表达式"%><br/>
就相当于<br/>
<%out.println("这是没有JSP表达式输出的");%>

                3、jsp声明

                    在JSP中也可以声明一些变量,方法,静态方法,形式为:<%! 声明的内容 %>

                 使用JSP声明需要注意:

<%!
    需要注意的是: 写在里面的内容将会被tomcat翻译成全局的属性或者类方法。
%> 

                 代码演示

<!--JSP声明-->
<%! String str = "声明语法格式";%>
<%=str%>

                4、jsp注释

                        在使用JSP时,它有自己的注释,形式为:<%--注释--%>

                代码演示

<%--JSP注释--%>
<!--HTML注释-->

                5、语法的实例

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP语法</title>
</head>
<body>

<!--Java代码块-->
<% out.println("这是Java代码块");%>
<hr/>

<!--JSP表达式-->
<%="这是JSP表达式"%><br/>
就相当于<br/>
<%out.println("这是没有JSP表达式输出的");%>

<hr/>
<!--JSP声明-->
<%! String str = "声明语法格式";%>
<%=str%>

<hr/>

<%--JSP注释--%>
<!--HTML注释-->

</body>
</html>

四、jsp指令

        1、page指令

        <%@ page 属性名=属性值 属性名=属性值 … %>

属性名作用
contentType响应正文支持的类型和设置编码格式
language使用的语言,默认是java
errorPage当前页面出现异常后跳转的页面
isErrorPage是否抓住异常,如果为true则页面中就可以使用异常对象,默认是false
import导包 import=“java.util.ArrayList”
session是否创建HttpSession对象,默认是true
pageEncoding翻译jsp时所用的编码格式
isElgnored是否忽略EL表达式,默认是false

        2、include指令

        语法格式:<%@include file="" %>该指令是包含外部页面。 属性:file,以/开头,就代表当前应用。

                1、根据指令的不同分为以下两种:

                        1 静态包含   2 动态包含

                2、语法格式( 静态包含)

<%@ include file="文件相对 url 地址" %>

                3、语法格式(动态包含)

1 <jsp:include page="文件相对 url 地址" />
2 <jsp:include page="文件相对 url 地址"></jsp:include>

        3、taglib指令

            语法格式:<%taglib uri="" prefix=""%>

            作用:该指令用于引入外部标签库。html标签和jsp标签不用引入。

            属性:

                uri:外部标签的URI地址。

                prefix:使用标签时的前缀。

             代码演示:使用JSTL标签库

<%@ page contentType="text/html; charset=gb2312"%>
<%--声明页面中将要引用的标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>taglib指令使用示例</title>
</head>
<body>
    <%--使用JSTL标签输出字符串 --%>
    <c:out value="Hello World!"  />
</body>
</html>

五、九大隐式对象

什么是隐式对象呢?它指的是在jsp中,可以不声明就直接使用的对象。它只存在于jsp中,因为java类中的变量必须要先声明再使用。其实jsp中的隐式对象也并非是未声明,只是它是在翻译成.java文件时声明的。所以我们在jsp中可以直接使用。

隐式对象名称类型备注
requestjavax.servlet.http.HttpServletRequest请求对象
responsejavax.servlet.http.HttpServletResponse响应对象
sessionjavax.servlet.http.HttpSession会话范围内
applicationjavax.servlet.ServletContext整个应用范围内共享
pageJava.lang.Object当前jsp对应的servlet引用实例
configjavax.servlet.ServletConfig配置对象
exceptionjava.lang.Throwable异常对象
outjavax.servlet.jsp.JspWriter字符输出流,相当于printwriter
pageContextjavax.servlet.jsp.PageContext很重要,页面范围

         1、PageContext对象

              1、简介

                它是JSP独有的对象,Servlet中没有这个对象。本身也是一个域(作用范围)对象,但是它可以操作其他3个域对象中的属性。而且还可以获取其他8个隐式对象。

              2、生命周期

                它是一个局部变量,所以它的生命周期随着JSP的创建而诞生,随着JSP的结束而消失。每个JSP页面都有一个独立的PageContext。

        2、四大域对象

域对象名称范围级别备注
PageContext页面范围最小,只能在当前页面用因范围太小,开发中用的很少
ServletRequest请求范围一次请求或当期请求转发用当请求转发之后,再次转发时请求域丢失
HttpSession会话范围多次请求数据共享时使用多次请求共享数据,但不同的客户端不能共享
ServletContext应用范围最大,整个应用都可以使用尽量少用,如果对数据有修改需要做同步处理

六、MVC模型

       1、jsp演变历史

               1、早期只有servlet,只能使用response输出标签数据,非常麻烦

                2、后来又jsp,简化了Servlet的开发,如果过度使用jsp,在jsp中即写大量的java代码,有写html表,造成难于维护,难于分工协作

                3、再后来,java的web开发,借鉴mvc开发模式,使得程序的设计更加合理性

        2、MVC模型

                1、M:Model,模型。JavaBean

                        具体的业务操作,如:查询数据库,封装对象

                2、V:View,视图。JSP

                        展示数据

                3、C:Controller,控制器。Servlet

                        1、获取用户的输入

                        2、调用模型

                        3、将数据交给视图进行展示

 

        3、优缺点

                1、优点:

                        1、耦合性低,方便维护,可以利于分工协作

                2、重用性高

                2、缺点:

                       1、 使得项目架构变得复杂,对开发人员要求高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渣男あ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值