一文学会JSP

简介: 这里使用IDEA构建Web应用

构建Web应用

这里使用IDEA构建Web应用

新建项目


添加新的Tomcat

勾选上正确的Tomcat

选择Filsh

创建好目录如下

其自动生成的Web.XML文件如下

<?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">
</web-app>

同时还生成了一个jsp文件,生成的jsp文件如下

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/7/5
  Time: 22:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  $END$
  </body>
</html>

配置应用首页

<?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">
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

启动应用

启动相关的应用


这样就完成了最基本的tomcat的部署

jsp的基本语法

jsp的注释

jsp的基本注释如下

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/7/5
  Time: 22:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <%-- 注释内容 --%>
  $END$
  </body>
</html>

jsp 声明

对jsp的声明如下

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/7/5
  Time: 22:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <%!
    // 声明一个整形变量
    public int count;
  // 声明一个方法
    public String info(){
      return "hello";
    }
  %>
  $END$

  <%
    // 把count值输出后加1
    out.println(count++);
  %>

  <%
    // 输出info()方法后的返回值
    out.println(info());
  %>
  </body>
</html>

访问的页面结果如下

jsp 输出表达式

jsp提供了一种简单的输出表达式

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2020/7/5
  Time: 22:39
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <%!
    // 声明一个整形变量
    public int count;
  // 声明一个方法
    public String info(){
      return "hello";
    }
  %>
  $END$
`<%=count++%>
  <%=info()%>
  </body>
</html>

jsp 三个编译指令

这里对jsp有三个编译的指令

page 指令

page指令位于jsp页面的顶端,一个jsp页面可以有多个page指令,page指令的语法为

<%@ page import="java.sql.*" %>

include指令

include指令可以将一个外部文件嵌入到当前jsp文件中,同时解析这个页面中的jsp语句。include命令既可以包含jsp页面也可以包含静态文本。编译指令语法如下:

<%@ include file="要导入的jsp页面或文本文件" %>

taglib指令

taglib指令用于引入一些特定的标签库,语法格式:

<%@ taglib prefix="tagPrefix" uri="tagLibraryURI" %>

如使用struts标签库:

<%@ taglib prefix="s" taglib="/struts-tags" %>

动作指令

forward

进行页面跳转的指令
如果转发的时候需要传递参数可以使用指令进行设置。
比如,访问index.jsp页面时自动转发至login.jsp,需要把username和password传递过去:
index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<jsp:forward page="login.jsp">
    <jsp:param value="yaopan" name="username" />
    <jsp:param value="123456" name="password" />
</jsp:forward>
<%--mac上按住comment键(windows下按住ctrl键),再点击login.jsp  forword以下的代码不会被执行 --%>

在login.jsp中可以使用getParameter方法获取传入的参数值:

<%
  String name=request.getParameter("username");
  String pwd=request.getParameter("password");
  out.println(name);
  out.println("<br>");
  out.println(pwd);
%>

执行forword指令时用户请求的地址没有发生变化,页面内容被forward目标替代。

include指令

include指令用于包含某个页面,但不会导入被include页面的编译指令。可以通过param指令传递参数:
新建一个index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<jsp:include page="head.html"></jsp:include>
<jsp:include page="body.jsp">
   <jsp:param value="#1d99f6" name="bgcolor"/>
</jsp:include>
</html>

body.jsp

<body bgcolor="<%=request.getParameter("bgcolor")%>">
</body>
目录
相关文章
|
弹性计算 负载均衡 容灾
阿里云服务器地域和可用区选择及常见问题解答FAQ
阿里云服务器地域节点选择影响用户网络延迟和访问速度,阿里云服务器地域如何选择?云服务器可用区是什么?云服务器吧来详细说下阿里云服务器地域及可用区分布表、选择方法以及测试IP地址:
1572 0
阿里云服务器地域和可用区选择及常见问题解答FAQ
URL里面携带了#是什么意思
URL里面携带了#是什么意思
842 0
URL里面携带了#是什么意思
|
监控 Apache 微服务
微服务调用链监控开源工具CAT
本文详解微服务调用链监控的重要性,对比CAT、Zipkin、SkyWalking等主流方案,涵盖选型、性能测试与异步支持,助力构建高效可观测系统。
967 0
微服务调用链监控开源工具CAT
|
运维 网络安全 Python
自动化运维:使用Ansible实现批量服务器配置
在快速迭代的IT环境中,高效、可靠的服务器管理变得至关重要。本文将介绍如何使用Ansible这一强大的自动化工具,来简化和加速批量服务器配置过程。我们将从基础开始,逐步深入到更复杂的应用场景,确保即使是新手也能跟上节奏。文章将不包含代码示例,而是通过清晰的步骤和逻辑结构,引导读者理解自动化运维的核心概念及其在实际操作中的应用。
|
供应链 物联网 Serverless
海尔智家CIO于吉花:工业互联网与消费互联网融合实践 | 阿里CIO学院名人堂
12月3日,2020阿里CIO学院西溪年会在杭州举行。400位企业CEO、CTO、CIO齐聚一堂,共同探讨企业数字化转型经验。今年新冠疫情爆发,给企业带来不小挑战,到场嘉宾表示,数字化已经成为企业未来发展最大的确定性。 本次峰会由阿里CIO学院主办。据阿里CIO学院院长洪英介绍,400位嘉宾分别来自央企、国企、民企,都是企业信息化建设的领导者。
海尔智家CIO于吉花:工业互联网与消费互联网融合实践 | 阿里CIO学院名人堂
|
测试技术 Python
从零开始搭建一个简单的ui自动化测试框架01(pytest+selenium+allure)
一、 思想先行 在我们讨论如何用技术手段实现之前,不妨先思考一下,或者说,如同普通的项目开发一样,首先是产品经理给出规划,再由技术实现。 既然是个人的项目,那当然是我们自己来做这个产品经理了,那么首先,我们的产品需要哪些点呢? ui自动化,是测试层级的最上层,本质上是在容器里模拟用户的操作,来达到自动回归业务逻辑的目的。
2621 0
|
存储 缓存 NoSQL
|
机器学习/深度学习 人工智能 监控
AI在交通管理系统中的应用
AI在交通管理系统中的应用
763 23

热门文章

最新文章