Java Web——JSP的概念理解与应用举例

简介: Java Web——JSP的概念理解与应用举例

文章目录:


1.JSP介绍

2.JSP的优势

3.JSP文件中Java命令书写规范

3.1 执行标签 

3.2 输出标签 

4.JSP中的九大内置对象、四大作用域

4.1 九大内置对象 

4.2 四大作用域 

5.ServletJSP文件之间的关系 

6.JSP运行原理 

7.应用举例 

7.1 第一组实例——JSP

7.2 第二组实例——Servlet+JSP

1.JSP介绍


JSP PHPASPASP.NET 等语言类似,运行在服务端的语言。


JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTMLXML 或其他格式文档的Web网页的技术标准。


JSP技术是以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。


JSP文件后缀名为 *.jsp


JSP开发的WEB应用可以跨平台使用,既可以运行在 Linux 上也能运行在 Windows 上。


JSPsun公司提供一个规范。JSP规范用于封装响应对象简化将Servlet处理结果写入到响应体。


JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。


JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP


JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。


JSP标签有多种功能,比如访问数据库、记录用户选择信息、访问JavaBeans组件等,还可以在不同的网页中传递控制信息和共享信息。

2.JSP的优势


以下列出了使用JSP带来的其他好处:


·       ASP相比:JSP有两大优势。首先,动态部分用Java编写,而不是VB或其他MS专用语言,所以更加强大与易用。第二点就是JSP易于移植到非MS平台上。

·       与纯 Servlet 相比:JSP可以很方便的编写或者修改HTML网页而不用去面对大量的println语句。

·       SSI相比:SSI无法使用表单数据、无法进行数据库链接。

·       JavaScript相比:虽然JavaScript可以在客户端动态生成HTML,但是很难与服务器交互,因此不能提供复杂的服务,比如访问数据库和图像处理等等。

·       与静态HTML相比:静态HTML不包含动态信息。

·       jsp文件"运行时"自动将文件内部所有与Java命令无关()的内容自动写入到响应体。

3.JSP文件中Java命令书写规范


3.1 执行标签 

1)格式:   <%
                     Java
命令行;
               %>
2)
作用:用于提示JSP文件在运行时不要将执行标签中Java命令写入到响应体,通知JSP文件在运行时需要将执行标签中内容执行完毕后再做输出。
3) java
命令行: 声明变量、声明运算表达式[数学,关系运算,逻辑运算]、声明控制语句和循环语句。


3.2 输出标签 

1)格式: <%=变量名%>
            <%=
运算表达式%>
2)
作用:在jsp文件运行时,通知JSP将指定变量内容或则表达式结果写入到响应体。 

4.JSP中的九大内置对象、四大作用域


4.1 九大内置对象 

pageContext:页面上下文对象,该对象封存了另外八个对象,每一个JSP文件单独拥有一个pageContext对象

request:封存当前请求数据的对象,由服务器创建

session:此对象用来存储用户的不同请求的共享数据

application:也就是ServletContext对象,以服务项目只有一个,存储用户共享数据的对象

response:响应对象,用来响应请求处理结果给浏览器的对象,设置响应头重定向

out:响应对象,带有缓冲区的响应对象,效率高于response,不能设置响应头重定向,所以response需要保留

page:代表当前JSP对象,相当于Java中的this

exception:异常对象,存储了当前运行的异常信息

config:也就是ServletConfig对象,主要用来获取web.xml中的配置数据,完成一些初始化数据的读取


4.2 四大作用域 

page:其作用域只在一个页面保留

response:其作用域只在一个请求中保留数据

session:其作用域在一次会话中保留数据,仅供一个用户使用

application:其作用域在服务器中保留数据,全部用户共享

5.Servlet与JSP文件之间的关系


1.Servlet: 接收请求并处理请求,但是Servlet不负责将处理结果返回——相当于"大厨"

2.JSP: 不负责处理请求,负责将Servlet生成的处理结果写入到响应体——相当于"传菜员"

3.Servletjsp之间调用关系
                                                       
请求转发
 
浏览器 ------> Servlet(处理请求)-----------> jsp -----> 处理结果写入到响应体

4.Servletjsp之间如何共享数据——借助于request

6.JSP运行原理


1.JSP文件不是静态资源文件也不是动态资源文件

2.JSP文件不能被编译不能被调用执行

运行原理: 1) tomcat接收到调用jsp文件(one.jsp)请求时,tomcat将被访问  jsp【编辑】为 java 文件(one_jsp.java)。

                2) tomcat调用JVM java 文件【编译】为 class 文件(one_jsp.class)

                3) 这个 class 文件是一个Servlet接口实现类。

                4) tomcat通过反射机制生成这个 class 文件的实例对象。

                5) tomcat通过实例对象调用 _jspService 方法,这个方法在运行时,负责通过输出流将 jsp 文件内容写入到响应体

7.应用举例


7.1 第一组实例——JSP


7.2 第二组实例——Servlet+JSP

package com.songzihao.controller;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
public class OneServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String str="Hello JSP!!!";
        request.setAttribute("info",str);
        request.getRequestDispatcher("/one.jsp").forward(request,response);
    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>OneServlet</servlet-name>
        <servlet-class>com.songzihao.controller.OneServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>OneServlet</servlet-name>
        <url-pattern>/one</url-pattern>
    </servlet-mapping>
</web-app>
<%@ page contentType="text/html;charset=utf-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        String value= (String) request.getAttribute("info");
    %>
    运行结果: <%=value%>
</body>
</html>

相关文章
|
1月前
|
人工智能 算法 Java
Java与AI驱动区块链:构建智能合约与去中心化AI应用
区块链技术和人工智能的融合正在开创去中心化智能应用的新纪元。本文深入探讨如何使用Java构建AI驱动的区块链应用,涵盖智能合约开发、去中心化AI模型训练与推理、数据隐私保护以及通证经济激励等核心主题。我们将完整展示从区块链基础集成、智能合约编写、AI模型上链到去中心化应用(DApp)开发的全流程,为构建下一代可信、透明的智能去中心化系统提供完整技术方案。
227 3
|
2月前
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
361 1
|
2月前
|
存储 前端开发 Java
【JAVA】Java 项目实战之 Java Web 在线商城项目开发实战指南
本文介绍基于Java Web的在线商城技术方案与实现,涵盖三层架构设计、MySQL数据库建模及核心功能开发。通过Spring MVC + MyBatis + Thymeleaf实现商品展示、购物车等模块,提供完整代码示例,助力掌握Java Web项目实战技能。(238字)
323 0
|
1月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
121 8
|
1月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
196 4
|
2月前
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
462 12
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
278 0
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
151 1
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
下一篇
oss云网关配置