【JavaWeb】快速通关JSP(一)

简介: 【JavaWeb】快速通关JSP(一)

1、JSP 概述


JSP(全称:Java Server Pages):Java 服务端页面。 是一种动态的网页技术,其中既可以定义 HTML、JS、CSS等静态内容,还可以定义 Java代码的动态内容,也就是 JSP = HTML + Java。如下就是jsp代码


<html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <h1>JSP,Hello World</h1>
        <%
          System.out.println("hello,jsp~");
        %>
    </body>
</html>


上面代码 h1 标签内容是展示在页面上,而 Java 的输出语句是输出在 idea 的控制台。


那么,JSP 能做什么呢?现在我们只用 servlet 实现功能,看存在什么问题。如下图所示,当我们登陆成功后,需要在页面上展示用户名


822047bce959276fd1c1ca23e7f500f6_image-20210818101320935.png


上图的用户名是动态展示,也就是谁登陆就展示谁的用户名。只用 servlet 如何实现呢?


LoginServlet 就是实现这个功能的,接下来启动服务器并访问登陆页面


b97e2dac8ebe013d4620a05a2f4c6dae_image-20210818102205544.png


输入了 zhangsan 用户的登陆信息后点击 登陆 按钮,就能看到如下图效果


7b0eaabb90da0fbe8cbc1dfdebb7f44e_350dede9162f865de8e9803fcc5ec214.png



当然如果是 lisi 登陆的,在该页面展示的就是 lisi,欢迎您,动态的展示效果就实现了。那么 LoginServlet 到底是如何实现的,我们看看它里面的内容


6f1888a7b6516015657d64f07ec146ef_image-20210818102506754.png


上面的代码有大量使用到 writer 对象向页面写标签内容,这样我们的代码就显得很麻烦;将来如果展示的效果出现了问题,排错也显得有点力不从心。而 JSP 是如何解决这个问题的呢?写一个 login.jsp 页面,该页面也能实现该功能,现将该页面拷贝到项目的 webapp下,需要修改 login.html 中表单数据提交的路径为下图。


fcf5b5f3edae7e206403e0b5b4425f34_image-20210818103127245.png


重新启动服务器并进行测试,发现也可以实现同样的功能。那么 login.jsp 又是如何实现的呢?那我们来看看 login.jsp 的代码


d35735000e8191c68f0258cadc6e09dc_image-20210818103352432.png


上面代码可以看到里面基本都是 HTML 标签,而动态数据使用 Java 代码进行展示;这样操作看起来要比用 servlet 实现要舒服很多。


JSP 作用:简化开发,避免了在Servlet中直接输出HTML标签。


2、JSP 快速入门


我们做一个简单的快速入门代码。


2.1 搭建环境


创建一个maven的 web 项目,项目结构如下:


61c410c4be339ddbcc4e63c238f7cccd_image-20210818104316457.png


pom.xml 文件内容如下:


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <dependencies>
      <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </build>
</project>



2.2 导入 JSP 依赖


在 dependencies 标签中导入 JSP 的依赖,如下


<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.2</version>
    <scope>provided</scope>
</dependency>


该依赖的 scope 必须设置为 provided,因为 tomcat 中有这个jar包了,所以在打包时我们是不希望将该依赖打进到我们工程的war包中。


2.3 创建 jsp 页面


在项目的 webapp 下创建jsp页面


eb0b3463cf97b0284b59dca99f4a50b2_image-20210818105519970.png


通过上面方式创建一个名为 hello.jsp 的页面。


2.4 编写代码


在 hello.jsp 页面中书写 HTML 标签和 Java 代码,如下


<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>hello jsp</h1>
    <%
        System.out.println("hello,jsp~");
    %>
</body>
</html>


2.5 测试


启动服务器并在浏览器地址栏输入 http://localhost:8080/jsp-demo/hello.jsp,我们可以在页面上看到如下内容


78679631bb859ce0e5f70dc7751d30ce_image-20210818110122438.png


同时也可以看到在 idea 的控制台看到输出的 hello,jsp~ 内容。

相关文章
|
1月前
|
存储 前端开发 Java
JavaWeb基础6——Request,Response,JSP&MVC
Request继承体系、获取请求头行体的方法、IDEA使用模板创建Servlet、请求参数中文乱码解决、请求转发、Respones重定向、Response响应字节字符数据、JSP、EL 表达式、JSTL标签、MVC模式和三层架构
JavaWeb基础6——Request,Response,JSP&MVC
|
4月前
|
SQL druid Java
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
32 0
|
4月前
|
SQL 数据可视化 数据库
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
22 0
|
5月前
|
前端开发 JavaScript Java
Jsp在Javaweb中扮演什么角色?
Jsp在Javaweb中扮演什么角色?
49 1
|
5月前
|
SQL 缓存 Oracle
JavaWeb之JSP(下)
这篇文档是关于Java Web中JSP(Java Server Pages)技术的主要内容包括:JSP的常用命令使用,EL表达式的概念,和使用,JSTL表达式的概念和使用方式的总结.
|
5月前
|
开发框架 前端开发 Java
JavaWeb之JSP(上)
这篇文档是关于Java Web中JSP(Java Server Pages)技术的介绍。作者首先说明了内容来源于个人在CSDN的原创文章,并遵循CC 4.0 BY-SA版权协议。文档主要内容包括:JSP的基本概念,它是一种动态网页技术,用于将页面逻辑与设计分离,便于开发快速、跨平台的Web应用。接着,讨论了JSP出现的原因,即为了改进servlet展示信息的不便。文档还详细介绍了如何在JSP中嵌入Java代码,包括声明、表达式和程序代码标签的使用,以及page指令的示例。
|
5月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
165 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
15天前
|
Java 容器
【学习笔记】Jsp与Servlet技术
【学习笔记】Jsp与Servlet技术
47 0
|
2月前
|
SQL Java 数据库
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
该博客文章介绍了在JSP应用中使用Servlet查询SQL Server数据库的表信息,并通过JavaBean封装图书信息,将查询结果展示在Web页面上的方法。
jsp中使用Servlet查询SQLSERVER数据库中的表的信息,并且打印在屏幕上
|
2月前
|
供应链 前端开发 Java
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)
这篇文章通过一个服装库存管理系统的实例,展示了在Spring Boot项目中使用Ajax、JSON、layui、MVC架构和iframe等技术,涵盖了注册登录、权限管理、用户管理、库存管理等功能,并提供了系统运行环境和技术要求的详细说明。
JSP+servlet+mybatis+layui服装库存管理系统(大三上学期课程设计)