美文网首页
Web 基础14 JSP入门 语法

Web 基础14 JSP入门 语法

作者: 小熊先生很不开心 | 来源:发表于2018-03-31 08:42 被阅读10次

1.1 JSP简介

1.1.1 JSP概述

  • JSP概述
    • 全称是Java Server Pages,他和Servlet一样,也是Java所提供的一门用于开发动态WEB资源的技术,
    • JSP也是JavaEE的规范之一,JSP的底层其实就是Servlet。
  • JSP的特点
    • 编写JSP就像编写HTML一样
  • JSP和HTML的区别
    • HTML只能向客户端提供静态数据
    • JSP技术允许我们在页面中嵌套Java代码,从而可以向客户端提供动态的数据

1.1.2 JSP与Servlet的区别

  • Servlet本身的缺点
    • 每一个Servlet都需在web.xml进行配置
    • 显示html元素的时候非常麻烦
  • jsp = html + java + jsp自身的东西 本质Servlet
    • 02-08年 基本上开发全部都是用jsp 可读性非常(html里面加了java代码)
    • 缺点 :单纯的jsp页面不适合做这种大型项目

1.2 JSP的原理

  • 原理:
    • 一个JSP文件第一次被客户端访问时(也包括JSP文件修改后的第一次被访问),WEB服务器会把JSP文件翻译成一个Servlet,
    • 客户端访问JSP文件,其实访问的就是JSP文件翻译后的Servlet,
    • JSP的底层原理其实就是Servlet。
jsp原理.png
  • 一些对Servlet和jsp理解
    • jsp本质是一个Servlet,他的运行也需要容器(tomcat)支持
    • 在jsp和Servlet文件中都可以编写java和html代码,不同的是
      • Servlet虽然可以动态的生成页面内容,但是更加偏向于逻辑的控制
      • jsp最终被转换成 Servlet 在jvm里面执行,在jsp里面虽然可以编写java代码,但是他更加偏向于页面内容的展示
      • 在MVC架构模式中,C通常是由Servlet充当,V通常是由jsp充当

1.3 JSP入门案例

在网页上显示当前时间

<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <h1>hello JSP</h1>
    <%
        //脚本片段
        //向客户端发送当前的系统时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String now = sdf.format(new Date());
        //使用内置对象out,可以把数据发送给客户端
        out.println(now);
    %>
</body>
</html>

1.4 JSP默认编码设置

在入门案例案例中可以看到三个编码属性

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
  • contentType服务器端发给客户端的内容编码的设置(与response.setContentType("")作用是相同)
  • pageEncoding 当前jsp页面本身的编码
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  • 是告诉浏览器 生成的页面(这个页面是用来展示服务器发来的数据) 所使用的格式和编码,浏览器会根据此来调用相应的字符集来显示网页内容
  • http-equiv类似我们http的头部协议,他回应浏览器一些有用的信息,以帮助浏览器正确和精确的显示网页内容
  • 建议:工作空间 项目 外加jsp页面 都设置成UTF-8
  • 步骤:window - preference -搜索jsp 把Encoding改成UTF-8即可

1.5 模版元素&脚本片段

  • 模版元素
    • JSP页面中的HTML标签,CSS样式,以及JS都称之为JSP的模版元素,模版元素定义了页面的结构和外观,
    • JSP翻译后的Servlet中,模版元素会被输出流对象直接发送到客户端。
  • 脚本片段
    • JSP页面中可以嵌套Java代码,Java代码要定义在JSP的脚本片段中,也就是<%%>里面,
    • JSP页面中可以有多个脚本片段,
    • 多个脚本片段之间,可以嵌套文本,嵌套HTML的标签,嵌套其他的JSP元素。
    • 注意: 不能在脚本片段里面定义方法,因为方法不能嵌套定义
  • 总结
    • 模板元素其实就是页面上一堆的html代码
    • 在html中添加java代码,java代码就是脚本片段
  • 代码事例
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
    HttpSession s = request.getSession();
    Object username = s.getAttribute("username");
    %>
    <h1>itheima</h1>
    <%
        if(null == username){
    %>
        <a href="LoginUI.jsp">登录</a>
    <%
        }else{
    %>
        <a href="OUT.jsp">注销</a>
    <%
        }
    %>
    <hr />
</body>
</html>

1.6声明

  • 在JSP页面里定义方法,定义成员变量等,<%! %>
  • 注意:不能在声明里面写语句
  • 平时也很少去定义成员变量 ,他是有线程安全问题 用处不大

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <!--声明方法 -->
    <%!
        public int sum(int a,int b) {
            return a + b;
        }
    %>
    
    <%
        int result = sum(1,2);
        out.println(result);
    %>
</body>
</html>

1.7脚本表达式

  • 在JSP页面中将数据发送到客户端,替代JSP页面里的输出语句,
格式:<%=变量/常量/表达式%> //1 + 1
  • 注意:在脚本表达式中不可以写分号

  • 总结: 用syso输出的语句,都可以用脚本表达式输出

  • 代码实例


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <%
        //要使用脚本表达式将当前系统时间发送到客户端
        //获取当前系统时间
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        String now = sdf.format(new Date());
    %>
    
    <!-- 脚本表达式 -->
    <%=now %>
    <%="<h1>hello JSP</h1>" %>
    <%=1 + 1 %>
</body>
</html>

1.8 注释

  • HTML的注释:

  • Java代码的注释://,/**/

  • 脚本片段的注释:<%-- --%>

  • 注意:

    • HTML的注释:被注释的文本和代码,会翻译到Servlet中,然后发送到客户端
    • java的注释:被注释的文本和代码,会翻译到Servlet中,不会发送到客户端
    • jsp的注释: 被注释的文本和代码,不会翻译到Servlet中,不会发送到客户端
  • 建议使用第三个 功能最强大 什么都可以注释,也不会翻译最后html中

1.9 总结

  • 模板元素: Html + css + js 对于模板元素,会被翻译到out.println(参数);
  • 脚本片段;java 原样复制到翻译后的java文件里面,复制到service方法 <% %>
  • java声明;翻译到类中,方法外,成员的位置上,可以用来定义成员变量,成员方法<%! %>
  • 脚本表达式:翻译到out.println(参数),注意不能有分号 <%= %>
  • 注释:HTML的注释 java的注释 jsp的注释 <%-- --%>

相关文章

  • Web 基础14 JSP入门 语法

    1.1 JSP简介 1.1.1 JSP概述 JSP概述全称是Java Server Pages,他和Servlet...

  • 2018-07-18

    jsp基础入门 动态页面 java的web开发 java web技术介绍 java技术来节约相应web互联网领域的...

  • JavaWeb通关知识结构

    Web应用服务器:tomcat 表现层框架:jsp jsp基础语法,指令,内置对象,动作元素和自定义标签jstl ...

  • 【编程之路】第一章 起手式

    本系列包含以下内容: 一、Java 1、语法基础 2、JSP+Servlet 3、Web开发框架 二、PHP 1、...

  • JavaWeb之JSP

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

  • Java学习之_必备知识

    一、语言的入门及进阶 Java基础语法 OO编程思想 集合 IO 异常 泛型 反射 多线程 函数式 二、Web基础...

  • JSP和JSTL

    JSP JSP的基础语法 简介 ​ JSP:Java Server Page SUN 公司提供的动态网页编程技术,...

  • jsp看这篇文章就够了

    一、JSP基础语法 1、JSP模板元素 JSP页面中的HTML内容称之为JSP模版元素。 JSP模版元素定义了网页...

  • Jsp基础语法

    JSP简介 全名 Java Server Pages,服务器端页面,是一个简化的servlet 设计 JSP基础语...

  • jsp基础语法

    jsp指令: page指令:同城位于jsp页面的顶端,同一个页面可以有多个page指令page指令.png inc...

网友评论

      本文标题:Web 基础14 JSP入门 语法

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