美文网首页
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

    什么是JSP JSP(Java Server Page)是Java服务器端动态页面技术。是sun公司制订的一种服务...

  • MVC与JavaEE开发

    【目录】1 什么是MVC2 Java EE开发  2.1 JavaWeb开发:Servlet+JSP+Javabe...

  • 前后端分离概述

    1.传统的javaweb开发 在传统的开发中,开发流程为:前端 -> html静态页面 -> 后端 -> JSP ...

  • JavaWeb之JSP

    概念: 简化 Servlet 编写的一种技术,将 Java 代码和 HTML 语句混合在同一个文件中编写,只对网页...

  • JavaWeb之JSP

    概念:1)JSP(Java Server Page)是Java服务器端动态页面技术。是sun公司制订的一种服务器端...

  • JavaWeb之 JSP

    JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! page -- 最复杂 pageEncoding和...

  • JavaWeb之jsp

    jsp就是一个可以写java代码的html,jsp的本质是一个Servlet,因为tomcat会把jsp编译成一个...

  • JavaWeb之JSP

    八、JSP 目录:什么是JSP、JSP原理、JSP基础语法、JSP指令、9大内置对象、JSP标签 JSTL标签 E...

  • JavaBean和EL

    一、JavaBean的概念 二、JavaWeb的开发模型 三、JSP中操作JavaBean的动作元素 *****开...

  • Java Web 从入门到"改行"(2)--

    1.Servlet 简介: JavaWeb应用开发的核心技术就是JSP、Servlet与JavaBean。Serv...

网友评论

      本文标题:JavaWeb开发之JSP

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