JSP(1)

1.JSP是什么?

       JSP------java server pages【java服务器页面】

       运行在服务器上,包含java语言代码,动态网页就是JSP。这里的动态网页不是指网页中的元素形状/位置发生变化,而是指网页中元素的内容发生变化。

2.JSP页面中的元素

2.1静态元素

       html标签-------------提供页面的显示效果

 

2.2 jsp指令

       格式:<%@指令名称  属性1=”属性值1”......%>

       作用:在jsp页面中声明的一些由浏览器执行的附加信息

2.2.1 page指令

 

1.contentType="text/html; charset=utf-8":设置当前jsp页面的内容类型

       即当前页面文本和HTML的内容字符编码为utf-8

              2.language="java" :指定语言

                    

              3.pageEncoding="utf-8":设置当前jsp页面的字符编码

                     除页面文本和HTML的内容,其他内容编码设置为utf-8

              4.import="java.util.Date":导入java类库的依赖包【可以出现多个】

 

              5.isELIgnored="false"---是否启用EL表达式语言 “${表达式}”,false可用,true不可以

 

              6.isErrorPage="false"---是否是一个错误页面,如果是那么就可以使用exception的JSP内置对象

 

2.2.2 include指令

       [包含其他的资源进入本jsp页面]---常见属性

       file="被包含的文件路径":被包含进入本jsp页面的文件

 

问题:jsp还是要include指令或者jsp动作include,这里会有中文乱码显示的问题。

解决方式:

       在web.xml配置jsp

 

<jsp-config>

        <jsp-property-group>

            <url-pattern>*.html</url-pattern>

            <url-pattern>*.txt</url-pattern>

            <page-encoding>UTF-8</page-encoding>

        </jsp-property-group>

    </jsp-config>

2.2.3.aglib指令

在jsp页面中使用JSTL【jsp的标准标签库】标签的时候,用来导入标签库

       【这个指令暂时不处理,我们在后面学习JSTL时候,会详细介绍】

2.3 Java代码片段

       格式:<%  java程序 %>

       作用:嵌套在html中的java程序【提供动态数据】

       相当于java类中的方法,里面可以有变量,方法内部类

 

2.4 java表达式

格式:<%= 表达式/变量/方法 %>

       作用:计算某种表达式的结果,或者变量/方法的结果。动态输出结果,即调用变量或者方法

 

 

2.5 jsp声明

       格式:<%! 类/变量/方法 %>

作用:在jsp页面中定义一些自己需要的java变量/方法/类

       相当于java中的类,里面可以有方法,变量,类

 

2.6 jsp动作

格式:<jsp:动作名称 动作属性.....></jsp:动作名称>

       作用:将一些常用的java程序封装,方便调用

常用的include和forward,一个是本jsp页面包含那个文件路径,一个是跳转到文件路径

    <jsp:include page="my.txt"></jsp:include>    类似于include指令

    <jsp:forward page="test1.jsp"></jsp:forward>    

 

2.7 jsp注释

              <!--  --> html静态元素注释

              <%-- --%> jsp动态元素的注释

3.jsp页面的执行过程

1.jsp本质上就是一个Servlet程序。

Jsp在执行的时候会被转换成Servlet程序。

 

当我们请求一个jsp页面的时候,服务器收到jsp页面的请求以后,会先将被访问的jsp文件转换成Servlet文件,继续编译转换以后的Servlet文件得到Servlet文件对应的字节码文件,接着执行这个编译以后的字节码文件,将运行结果封装到响应对象中,返回给客户端浏览器。

缺点:第一次访问jsp页面会比较慢一些。

4.两个区别

4.1 include指令与include动作区别

[<%@include file=”” %>]

[<jsp:include page=""></jsp:include>]

1.include指令执行时将被导入页面的jsp代码完全融入,两个页面融合成一个Servlet;而include动作则在Servlet中使用include方法来引入被导入页面的内容。因此include指令执行时不需编译,速度快;include动作需要加载执行,速度慢。

2.include指令执行时导入页面的编译指令会起作用;而include动作执行时被导入页面的编译指令则失去作用,只是插入被导入页面的body内容。

3.include指令通过file属性指定被包含的文件,放在页面的顶部,file属性不支持任何的表达式;include动作是通过page属性来指定被包含的文件的,page属性支持jsp表达式。

4.2 Servlet和JSP的区别

1、Servlet在Java代码中可以通过HttpServletResponse对象动态输出HTML内容。

2、JSP是在静态HTML内容中嵌入Java代码,然后Java代码在被动态执行后生成HTML内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Java-请多指教

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

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

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

打赏作者

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

抵扣说明:

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

余额充值