美文网首页
JavaWeb开发之JSP

JavaWeb开发之JSP

作者: 小丸子的呆地 | 来源:发表于2021-07-15 16:17 被阅读0次

    什么是JSP

    JSP(Java Server Page)是Java服务器端动态页面技术。是sun公司制订的一种服务器端的动态页面生成技术规范。

    为什么要使用JSP

    因为直接使用Servlet,虽然也可以生成动态页面。但是,编写繁琐(需要使用out.println来输出),并且维护困难(如果页面发生了改变,需要修改Java代码),所以sun指定了JSP规范。

    JSP与Servlet的关系

    JSP其实是一个以.jsp为后缀的文件,容器会自动将.jsp文件转换成一个.java文件(其实就是一个Servlet),然后调用该Servlet。所以,从本质上讲,JSP其实就是一个Servlet。

    如何写一个JSP文件

    step1:创建一个以“.jsp”为后缀的文件
    step2:在该文件里面,可以添加如下的内容
    1)HTML(CSS、JS):直接写即可
    2)Java代码:
    形式一:Java代码片段:<% Java代码 %>
    形式二:JSP表达式:<%= Java表达式 %>
    形式三:JSP声明:<%! %>
    3)指令

    JSP是如何运行的

    • step1:容器依据.jsp文件生成.java文件(也就是先转换成一个Servlet)
      1)HTML(CSS、JS)放到service方法里,使用out.write输出
      2)<% %>也放到service方法里,照搬,不改动。
      3)<%= %>也会放到service方法里,使用out.print输出。
      4)<%! %>给Servlet添加新的属性或者新的方法。
      这样就把一个JSP变成了一个Servlet容器。
      注意事项:out.writer方法只能输出简单的字符串,对象是没法输出的。优点是把null自动转换成空字符串输出。如:<% out.println(new Date()); %>不能用writer
    • step2:容器接下来就会调用Servlet来处理请求了(会将之前生成的.java文件进行编译、然后实例化、初始化、调用相应的方法处理请求)
    • step3:隐含对象
      1)所谓隐含对象(共9个,详细见JSP总结),指的是在.jsp文件里面直接可以使用的对象,比如out、request、response、session、application(ServletContext上下文)等。
      2)之所以能直接使用这些对象,是因为容器会自动添加创建这些对象的代码(JSP仅仅是个草稿,最终会变为一个Servlet)。

    指令

    1)指令是什么
    通知容器,在将.jsp文件转换成.java文件时,作一些额外的处理,比如导包。
    2)指令的语法
    <%@指令名称 属性名=属性值 %>

    3)page指令(更多属性,见JSP笔记)
    ①import属性:导包
    例如:

    <%@page import="java.util.*"%><!-- 注意:没有分号!-->
    <%@page import="java.util.*,java.text.*"%><!-- 多个包以逗号隔开!都在一个双引号里-->
    

    页面显示系统时间

        current time:<% out.println(new Date()); %><br />
        current time:<%=new Date() %>
    

    注意事项:两个是等价,new Date()会被放入out.print();里
    ②contenType属性:设置response.setContentType的内容
    例如:

    <%@page import="java.util.*" contentType="text/html;charset=utf-8" %><!-- 属性之间用空格隔开 -->
    

    ③pageEncoding属性:告诉容器.jsp的文件的编码格式,这样,容器杂在获取jsp文件的内容(即解码)时,不会出现乱码。最好加入,有些容器默认以ISO 8859-1编码。
    例如:

    <%@page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
    

    注意事项:页面最好添加:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">,会影响到CSS样式,甚至JS。如IE有个混杂模式,即自动降级,为了兼容老的页面。
    4)include指令
    对于页面的公共部分,我们可以使用相同的jsp文件,并使用include指令导入,如此实现代码的优化。
    告诉容器,在将.jsp文件转换成.java文件时,在指令所在的位置插入相应的文件的“内容“。插入的页面并未运行,而是机械的将内容插入。
    例如:

    <%@include file="head.jsp" %>
    

    相关文章

      网友评论

          本文标题:JavaWeb开发之JSP

          本文链接:https://www.haomeiwen.com/subject/kgbkpltx.html