javaweb之jsp笔记

    1.JSP简介

  • JSP是一种用于开发包含动态内容的web页面技术,是一个重要的混合解决方案
  • JSP实际上是一个精心设计的SErvlet

     2.JSP工作原理

  • 在服务器端有一个JSP容器负责获得对JSP文件的请求,当一个JSP文件第一次被请求时,容器首先会把这个JSP文件转换成一个Servlet。在转换过程中,如果发现文件有语法错误,将会中断。JSP引擎会把该java文件变异成相对应的.class文件,因为这个过程会消耗一定时间,所以第一次访问或改动时,访问时间会比较长。
  • 接下来,JSP引擎会穿件一个该SErvlet的实例,并执行该实例的jspInit()方法,然后创建并启动一个新的线程,新线程调用实例的jspServlet()方法
  • 浏览器在调用JSP文件时,Servlet容器会把浏览器的请求和对浏览器的回应封装成HttpServletRequest和HttpServletResponse对象,同事调用对应的Servlet实例中的jspService()方法,把这两个对象作为参数传递到jspService方法中。jspSErvice()方法执行后会将HTML内容返回给客户端

      3.JSP文件中的内容

<%@这是一个指令%>

<%!这是一个声明%>//定义变量和方法,只在当前页面有效

<%这是一个脚本%>//在web服务器相应请求时会执行

            声明和脚本的区别:声明的代码将在转换时被赋值到JSP Servlet类的主体中,并且他们可以用于声明某些字段、类型和方法;                                  脚本将被复制到_jspService方法体中。该方法中的所有局部变量都可以在脚本中使用。

<%=这是一个表达式%>//返回String类型的结果值,并将结果值输出到浏览器;不能用分号来作为表达式的结束符;将被复制到_jspService方法体中f

                “”<%=”是一个完整的标记,中间不能有空格

<%--这是JSP注释语句%>//不会发送到客户端浏览器

<!--这是HTML/XML注释语句-->//可以被发送到客户端

  •     基本元素:规范JSP网页所使用的java代码,包括JSP注释、声明、表达式和脚本段

   jSP代码段 可以包含任意合法的java语句 ,该代码在服务器处理请求时被执行

          语法格式:<%符合语法的代码块%>

           在代码中定义的变量是局部变量,在声明中定义的变量是页面的全局变量

  •     指令元素(编译指令):是针对JSP引擎的,包括include、page指令和taglib指令

       用于设置整个JSP页面的相关属性

         <%@ page%>

page指令的属性
属性说明设置值示例
language

指定用到的脚本语言(默认java)

<%@page language="java"%>
import导入包或类<%@page import="java.util.Date"%>
pageEncoding指定页面所用编码UTF-8
extendsJSP转换成Servlet后继承的类java.Servlet.http.HttpServlet
session指定该页面是否参与到Http会话中true/false
buffer设置out对象缓冲区大小8kb
autoflush设置是否自动刷新缓冲区true/false
isThreadSafe设置该页面是否是线程安全true/false
info设置页面的相关信息网站主页面
erropage设置当前页面出错后要跳转的页面/erro/jsp-error.jsp
conterType设计相应jsp页面的MIME类型和字符编码text/html;charset=gbk
isErroPage设置是否是一个错误处理页面true/false
isELignord设置是否忽略正则表达式true/false
注意:在一个页面可以使用多个page指令,但出import外,每个舒兴国只能使用一次 

         <%@ include file="相对路径"%> //静态过程

         <%@ taglib url="taglibURL" prefix="tabPrefix" %>  //tagilb指令允许用户使用标签库自定义新的标签

                         url属性指定目标标签库所属的URL命名空间,其值可以是相对路径、绝对路径或标签库描述文件:属性perfix定义了标签的前缀

  •     动作指令:属于服务器端的JSP元素,它用来被标记并控制Servlet引擎的行为

        用于运行脚本动作,包括:

                 jsp:include指令  用于在请求的处理阶段包含来自一个Servlet或JSP页面的相应,当执行到该总做标签时才加载包含文件的字节码。和变异指令的include不同,里面的include包含的过程是静态的,而jsp:include指令则是动态的方式(动态包含文件)当被包含的jsp文件有修改时,jsp引擎会及时发现并 重新编译。这也是include动作指令与include编译指令的最大不同

                  语法:<jsp:include page="文件路径"/>

                          或者<jsp:include page="文件路径>

                                       <jsp:param name="parameterName1" value="参数值" />

                                       <jsp:param name="parameterName1" value="参数值" />

                                        ....

                                 </ jsp:include>

                 jsp:forward指令 可用于停止当前页面的执行转发至其他JSP。

                 jsp:param指令 用于设置参数,不能单独使用,主要用在<jsp:include>和<jsp:forward>中

                 jsp:plugin指令 连接客户端 的Applet混合Bean插件 

                 jsp:useBean 指令用来在jsp页面内创建一个JavaBean实例,其语法格式如下:

                                        <jsp:useBean id="javabean名字" scope="有效范围" class="javabean的类名"/>

                jsp:setProperty指令  设置JavaBean的属性值,语法格式:

                                       <jsp:getProperty name="beanName" property="*"/>

                                       <jsp:getProperty name="beanName" property="properName"/>

                                       <jsp:getProperty name="beanName" property="properName" value="BeanValue"/>

                                       <jsp:getProperty name="beanName" property="properName" param="paramName"/>

                                       其中,name属性值对应jsp:useBean指令中的id值;

                                           property="*"表示所有名字和Bean实行名字匹配的请求参数都将被传递给相应属性的setter方法

                                          当property有具体指时表示匹配一个Bean属性;

                                          value属性表示使用指定的值来设置属性;

                                          param属性表示根据request对象中的参数来匹配属性

             jsp:getProperty指令  获取JavaBean值得属性值并输出(String),语法格式如下:

                                       <jsp:getProperty name="beanName" property="属性名"/>

                                        其中,name属性的值对应jsp:useBean指令中的id值,property指定要获取的属性名。该动作实际上                                       是调用Bean的getter方法

 

JSP内置对象

  1. request对象    request代表着从用户发送过来的请求,可以获取客户端用户提交的数据或参数

                主要方法: setAttribute(String name,Object obj)    设置属性及属性值

                                    getAttribute(String name)                   获取指定属性的值(没有返回空)获取的是对象类型

                                    getParameter(String name)               获取name指定参数的参数值(客户端传送给服务器端的参数值)

                                      (1)使用jsp的forward或include动作,利用参数自动做实现传递参数

                                      (2)在jsp或html页面利用表单传递参数

                                      (3)追加在网址后的参数传递或追加在超链接后的参数

                                    getParameterValues(String name)     获取指定参数的所有值

                                    removeAttribute(String name)            删除请求中的属性   

                                    getSession([Boolean create])              返回和请求相关的session,create可选,true时,若客户端没有创                                                                                                   建session则创建新的session 

                                    setCharacterEncoding("UTF-8")        规定编码格式       

     2.response对象

                                    sendRedirect(String url)                    使用指定的重定向位置url向客户端发送重定向响应

                                    setHeader(String name,String value)   使用给定的名称和值设置一个相应报头,如果已存在则覆盖(实现                                                                                                                                                                      页面的定会跳转或刷新)

       重定向sendredirect(String url)和转发<jsp:forward page=""/>的区别:

              (1)只能使用<jsp:forard>在本网站内跳转,而使用response跳转到任何一个地址页面

              (2)<jsp:forward>带着request中的信息跳转;sendRedirect不带request信息跳转

     3.session对象​​​​​​

            session(会话)含义:用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间成为一次会话

             long setMaxInactiveInterval()        用于返回session对象的生存时间(s)

             boolean isNew()       用于判断目前session是否为新的session

             viod invalidate          用于session对象

     4.out对象

           用于向客户端输出相应信息

          print() 可以输出任意类型的数据

     5.page对象

     6.application对象

             用于保存应用程序中的共有数据,在服务器启动时自动创建;所有访问同一网站的用户,都有相同的application对象,之言关闭服务器,该对象才会被收回。

              Object   getAttribute(String attriname)       获取指定属性值

              void setAttribute(String attriname,Object attrivalue)       设置一个新的属性并保存值

              void removeAttribute(String attribute)      从application对象中删除指定的属性 

              Enumeration getAttributeNames()      获取application对象中所有属性的形成

     7.config对象

     8.pageContext对象

     9.exception对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP(JavaServer Pages)是一种服务器端的动态网页开发技术,它可以将 Java 代码嵌入 HTML 页面中,从而实现动态网页的生成。 JSP 的基本原理是将 JSP 页面翻译成 Servlet,在服务器端执行 Servlet 代码,再将执行结果返回给客户端。因此,我们在使用 JSP 开发网页时,需要先了解 Servlet 的相关知识。 JSP 的语法基本上就是 HTML 标签加上 Java 代码。以下是一些基本的 JSP 标签: 1. <% ... %>:嵌入 Java 代码,可以用于定义变量、写循环、判断语句等。 2. <%= ... %>:输出 Java 代码的执行结果。 3. <%-- ... --%>:注释,不会被翻译成 Servlet。 4. <jsp:include ... />:包含其他 JSP 页面或 HTML 页面。 5. <jsp:forward ... />:将请求转发到其他资源(JSP 页面、Servlet 或 HTML 页面)。 6. <jsp:useBean ... />:创建 JavaBean 对象。 7. <jsp:setProperty ... />:为 JavaBean 对象设置属性。 8. <jsp:getProperty ... />:取得 JavaBean 对象的属性值。 在 JSP 页面中,我们还可以使用 EL 表达式和 JSTL 标签库来简化代码编写,提高开发效率。 EL(Expression Language)表达式是一种简化的表达式语言,可以用于取值、赋值、计算等操作。例如,${name} 表示取得名为 name 的变量的值。 JSTL(JavaServer Pages Standard Tag Library)是一套标签库,提供了循环、条件判断、格式化、国际化等常用功能的标签。例如,<c:forEach> 标签可以用于循环遍历集合,<c:if> 标签可以用于条件判断。 除了以上标签库,JSP 还支持自定义标签库。我们可以通过编写标签处理器来扩展 JSP 的功能。 JSP 的优点是可以将 Java 代码嵌入 HTML 页面中,使得网页的开发更加灵活和方便。但是,由于 JSP 页面需要翻译成 Servlet,因此会增加服务器的负担和响应时间。此外,JSP 页面中夹杂着 Java 代码,也不利于代码的维护和调试。因此,在开发大型网站时,建议使用 MVC 设计模式,将业务逻辑和视图分离,使得代码更加清晰和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值