JavaWeb 速通JSP

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JavaWeb——服务器渲染技术 JSP 内容分享。

目录

一、JSP快速入门

       1.基本介绍 :

       2.运行原理 :

二、JSP语法

       1.page指令 :

       2.声明脚本 :

       3.表达式脚本 :

       4.Java代码脚本 :

       5.JSP注释 :

三、JSP对象

       1.九大内置对象 :

       2.四大域对象 :

           1° 基本介绍

           2° 应用实例

       3.关于请求转发标签 :


一、JSP快速入门

       1.基本介绍 :

       (1)JSP 全称Java Server Pages,即Java服务器页面;JSP是一种基于Servlet的服务器渲染技术,可以理解为JSP就是对Servlet的包装

       (2) HTML只能为用户提供静态数据,而JSP允许在页面中嵌套 java代码,为用户提供动态数据注意:JSP页面不能像HTML页面一样直接通过浏览器运行, 而必须先启动Tomcat,再通过浏览器地址栏的URL进行访问

       (3) Servlet很难对数据进行排版,而JSP在用Java代码产生动态数据的同时,也很容易对数据进行排版

       2.运行原理 :

       (1)JSP页面本质是一个Servlet程序(即本质就是Java程序),性能与Java关联。

       (2) 第一次访问JSP时,Tomcat服务器会把JSP页面先解析成.java的源文件,并进一步编译成.class的字节码文件,实际执行的就是.class字节码程序。eg : index.jsp ---> index_jsp.java 和 index_jsp.class。

               如下图所示 :

image.gif编辑


二、JSP语法

       1.page指令 :

image.gif 编辑

       language 表示JSP解析后是什么语言文件, 目前只支持java语言。

       contentType 表示JSP返回的数据类型,对应源码中 response.setContentType()中的参数值。

       pageEncoding 属性,表示当前JSP页面文件本身的字符集。

       import 属性的使用与java源代码中类似,可用于导包,导类。

       2.声明脚本 :

       声明脚本的格式是 : <%! java声明 %>可以用Java代码在声明脚本中定义JSP需要的属性、方法、静态代码块和内部类等,即给该JSP文件对应的java类定义成员

       demo.jsp代码如下 :

<%--
    User : Cyan_RA9
    Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>JSP demo</title>
</head>
<body>
    <h1>demo.jsp</h1>
    <%!
        private String name;
        private int age;
        private String gender;
        private static String color;
        public String getName() {
            return this.name;
        }
        public int getAge() {
            return this.age;
        }
        public String getGender() {
            return this.gender;
        }
        static {
            color = "Cyan";
        }
    %>
</body>
</html>

image.gif

       对应生成的.java文件如下图所示 :

image.gif编辑

image.gif编辑

      3.表达式脚本 :

       (1) 表达式脚本的格式是:<%=表达式%>

       (2) 表达式脚本的作用是:在JSP页面上输出数据

       (3) 表达式脚本的注意事项 : 表达式不能以分号结束

       expression.jsp代码如下 :

<%--
    User : Cyan_RA9
    Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Expression</title>
</head>
<body>
    <%
        String name = "Cyan_RA9";
    %>
    public : <%=141 + 130%> <br/>
    name : <%=name%> <br/>
    job : <%="Java Full Stack Developer"%>
</body>
</html>

image.gif

      运行效果 :

image.gif编辑

       4.Java代码脚本 :

        代码脚本的语法格式 :<% java 代码%>

        代码脚本的作用 : 在JSP页面中使用Java代码完成业务需求。

      可以由多个代码脚本块组合成一个完整的Java语句,即允许有多个Java代码脚本

        代码脚本还可以和表达式脚本一起组合使用,在JSP页面上输出数据。

       首先定义一个JavaBean类,Student类代码如下 :

package script;
/**
 * @author : Cyan_RA9
 * @version : 21.0
 */
public class Student {
    private String name;
    private int age;
    private String gender;
    public Student() {
    }
    public Student(String name, int age, String gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                '}';
    }
}

image.gif

               在javacode.jsp页面中,利用List集合存入几个Student对象的信息。

               javacode.jsp代码如下 :

\<%--
    User : Cyan_RA9
    Version : 21.0
--%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="script.Student" %> <%--自动导包--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Java Code script</title>
</head>
<body>
    <%
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("Cyan", 21, "male"));
        students.add(new Student("Five", 22, "female"));
        students.add(new Student("Ice", 20, "male"));
    %>
    <table bgcolor="#e0ffff" border="2px" bordercolor="pink" cellspacing="0" width="300px">
        <tr>
            <th>Name</th>
            <th>Age</th>
            <th>Gender</th>
        </tr>
    <%
        for (int i = 0; i < students.size(); i++) {
            Student student = students.get(i);
    %>
        <tr>
            <td><%=student.getName()%></td>
            <td><%=student.getAge()%></td>
            <td><%=student.getGender()%></td>
        </tr>
    <%
        }
    %>
    </table>
</body>
</html>

image.gif

       运行结果 :

image.gif编辑

       5.JSP注释 :

       JSP中不仅支持HTML格式的注释,还支持自己特有的注释格式 :  <%-- --%>

       此外,在JSP的Java代码脚本中,也可以使用Java的行注释和段注释。

       note.jsp代码如下 :

<%--
    User : Cyan_RA9
    Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Note demo</title>
</head>
<body>
<!-- 这是HTML格式的注释√ -->
<%
    //这是Java代码的行注释;
    /*
        这是Java代码的段注释。
     */
%>
<%-- 这是JSP特有的注释格式√ --%>
</body>
</html>

image.gif


三、JSP对象

       1.九大内置对象 :

       1> JSP 内置对象(指已经创建好的对象, 可以直接使用[inbuild]),即Tomcat在解析JSP页面为Servlet 后,内部提供的九大对象,叫内置对象。

       2> 内置对象可以直接使用,不需要手动定义。

       3>九大内置对象如下——

               ①out 向客户端输出数据,out.println("");

               ②request 处理来自客户端的HTTP请求

               ③response 与回送的HTTP响应相关

               ④session 会话对象

               ⑤application 对应 ServletContext

               ⑥pageContext JSP页面的上下文,是一个域对象,可以使用setAttribue()方法,但作用范围只是本页面

               ⑦exception 异常对象 , getMessage()

               ⑧page 代表JSP这个实例本身

               ⑨config 对应 ServletConfig

       4> 九大内置对象与Servlet的关系图——

image.gif 编辑

       2.四大域对象 :

           1° 基本介绍

       1>pageContext域对象,存放的数据只能在当前页面使用。

       2>request域对象,存放的数据在一次Request请求中有效(eg : 请求转发)。

       3>session域对象,存放的数据在一次会话有效(sessionId)。

       4>application域对象,存放的数据在整个Web应用运行期间有效, 范围更大。

       作用域 : pageContext < request < session < application.

           2° 应用实例

               scope.jsp代码如下 :

<%--
    User : Cyan_RA9
    Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Scope</title>
</head>
<body>
<%-- 由于四个域对象是不同的对象,因此允许出现相同的name。 --%>
<%
    pageContext.setAttribute("color", "cyan");
    request.setAttribute("color", "pink");
    session.setAttribute("color", "cornflower");
    application.setAttribute("color", "lightblue");
    //请求转发
//    RequestDispatcher requestDispatcher = request.getRequestDispatcher("scope2.jsp");
//    requestDispatcher.forward(request, response);
    //请求重定向
    ServletContext servletContext = config.getServletContext();
    String contextPath = servletContext.getContextPath();
    response.sendRedirect(contextPath + "/scope2.jsp");
%>
<h1>四个域对象,在本页面获取数据的情况</h1>
pageContext-color : <%=pageContext.getAttribute("color")%>  <br/>
request-color : <%=request.getAttribute("color")%> <br/>
session-color : <%=session.getAttribute("color")%> <br/>
application-color : <%=application.getAttribute("color")%> <hr/>
</body>
</html>

image.gif

              运行效果 : (本页面访问域对象)

image.gif编辑

              scope2.jsp代码如下 : (外页面访问域对象)

<%--
    User : Cyan_RA9
    Version : 21.0
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>scope2</title>
</head>
<body>
<h1>在scope2页面获取数据的情况:</h1>
pageContext-color : <%=pageContext.getAttribute("color")%>  <br/>
request-color : <%=request.getAttribute("color")%> <br/>
session-color : <%=session.getAttribute("color")%> <br/>
application-color : <%=application.getAttribute("color")%> <hr/>
</body>
</html>

image.gif

               运行效果 : (scope请求转发

image.gif编辑

               运行效果:(scope请求重定向)

image.gif编辑

       3.关于请求转发标签 :

       <jsp:forward page="URL"></jsp:forward>

       注意 : 1> 此处的URL是在服务器端解析的。

                  2> 请求转发标签常用于一个入口页面,转发到其他功能资源。

目录
相关文章
|
2月前
|
存储 前端开发 Java
JavaWeb基础6——Request,Response,JSP&MVC
Request继承体系、获取请求头行体的方法、IDEA使用模板创建Servlet、请求参数中文乱码解决、请求转发、Respones重定向、Response响应字节字符数据、JSP、EL 表达式、JSTL标签、MVC模式和三层架构
JavaWeb基础6——Request,Response,JSP&MVC
|
5月前
|
SQL druid Java
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
34 0
|
5月前
|
SQL 数据可视化 数据库
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
23 0
|
6月前
|
前端开发 JavaScript Java
Jsp在Javaweb中扮演什么角色?
Jsp在Javaweb中扮演什么角色?
56 1
|
6月前
|
SQL 缓存 Oracle
JavaWeb之JSP(下)
这篇文档是关于Java Web中JSP(Java Server Pages)技术的主要内容包括:JSP的常用命令使用,EL表达式的概念,和使用,JSTL表达式的概念和使用方式的总结.
|
6月前
|
开发框架 前端开发 Java
JavaWeb之JSP(上)
这篇文档是关于Java Web中JSP(Java Server Pages)技术的介绍。作者首先说明了内容来源于个人在CSDN的原创文章,并遵循CC 4.0 BY-SA版权协议。文档主要内容包括:JSP的基本概念,它是一种动态网页技术,用于将页面逻辑与设计分离,便于开发快速、跨平台的Web应用。接着,讨论了JSP出现的原因,即为了改进servlet展示信息的不便。文档还详细介绍了如何在JSP中嵌入Java代码,包括声明、表达式和程序代码标签的使用,以及page指令的示例。
|
6月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
172 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
6月前
|
XML 安全 Java
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
JavaWeb有机果蔬商城系统有机蔬菜水果商城系统(分前后台javaWeb+jsp+jstl+css+js+mysql)
|
6月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
94 0
|
6月前
|
测试技术 数据库 数据安全/隐私保护
JavaWeb+JSP+SQL server学生学籍管理系统设计与实现(源代码+论文+开题报告+外文翻译+答辩PPT)
JavaWeb+JSP+SQL server学生学籍管理系统设计与实现(源代码+论文+开题报告+外文翻译+答辩PPT)
211 0