JSP页面

1.jsp概述

  • JSP(全称Java Server Pages),是一种动态网页开发技术。它既可以使用HTML标签来写页面,也可以写Java代码。其本质就是一个Servlet

2.jsp页面的访问过程

  1. 当客户端发送请求访问服务端的index.jsp页面
  2. 服务器内部会把.jsp文件翻译成.java文件
  3. 再编译.java文件生成.class文件,
  4. 由字节码完成请求与响应的操作(其实这个字节码就是Servlet)
    在这里插入图片描述

3.jsp语法

<1>注释

<%--1.这是注释--%>

<2>java代码块

<%System.out.println("Hello Jsp");out.println("Hello Jsp<br/>");String str ="你好";out.println(str);
%>

<3>jsp表达式

<%=“Hello”%>相当于 out.println (Hello");

<%="Hello </br>"%>

<4>jsp中的声明(变量或方法)

  • 如果加!代表的是声明的是成员变量
  • 如果不加!代表的是声明的是局部变量
  • 方法体内不能打印输出
<% String s ="123";%>
<%! String s ="abc";%>
<%="局部变量"+s%>
<%="成员变量"+this.s%>
<%!public void method(){String m ="def";
} %>

<5>动态获取虚拟路径

<form action="${pageContext.request.contextPath}/LoginServlet" method="post" autocomplete="off">

4.jsp指令

<1>errorPage【界面出现异常则跳转到指定页面】

  • 异常界面代码:
<%--导包--%>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" errorPage="error.jsp" %>
<html>
<head><title>Title</title>
</head>
<body>
<%int a =1/0;%>
<%ArrayList<Object> list = new ArrayList<>();%>
</body>
</html>
  • 指定跳转页面【error.jsp】:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page isErrorPage="true" %>
<html>
<head><title>页面错误</title>
</head>
<body>
<strong>不好意思,界面出错了<strong/><br/><img src="img/nan.png" width="25%">
</body>
</html>

<2><%@include file=包含的页面%>【在当前页面输入包含页面则可以使用该页面的属性和值】

  • 当前页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--include指令--%>
<%@include file="include.jsp"%>
<html>
<head><title>Title</title>
</head>
<body>
<%=s%>
</body>
</html>
  • 被包含的页面include.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>被包含的页面</title>
</head>
<body>
<% String s ="Hello";%>
</body>
</html>

<3>taglib指令:可以引入外部标签库【EL表达式(JSTL)】

  • <%@taglib uri=标签库的地址prefix=前缀名称%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head><title>流程控制</title>
</head>
<style>table {text-align: center;}
</style>
<body>
<%--
<c:if test=""   当条件判断
<c:choose></c:choose>  多条件判断
<c:forEach  遍历需求1:将学生信息遍历显示到table表格中。
需求2:奇数行数据背景色是pink粉色,偶数行数据背景色是gray灰色。
--%><%Student student1=new Student("张三",20);Student student2=new Student("张益达",22);Student student3=new Student("张三",20);ArrayList<Student> list=new ArrayList<>();list.add(student1);list.add(student2);list.add(student3);request.setAttribute("students",list);
%>
<table align="center" border="1" width="40%" cellspacing="0"><tr><th>编号</th><th>姓名</th><th>年龄</th></tr><c:forEach items="${students}" var="stu" varStatus="statu"><c:if test="${statu.count%2==1}"><tr align="center" style="background-color: pink"><td>${statu.count}</td><td>${stu.name}</td><td>${stu.age}</td></tr></c:if><c:if test="${statu.count%2==0}"><tr align="center" style="background-color: gray"><td>${statu.count}</td><td>${stu.name}</td><td>${stu.age}</td></tr></c:if></c:forEach>
</table>
</body>
</html>

【多标签可以同时导入,下面为jsp page属性】
在这里插入图片描述

5.jsp四大域对象

在这里插入图片描述

5.MVC模型

<1>JSP的演变

  • 在早期JavaEE开发是没有JSP技术的,只有使用Servlet往浏览器输出HTML标签和内容数据。在Java代码中拼接HTML代码非常痛苦。
  • 后来有了JSP技术,简化了Servlet的开发。可是又延伸出另一个问题,在HTML页面中嵌套了过多的Java代码,不利于阅读和维护。
  • 为了解决Java代码和HTML代码耦合性强的问题,JavaWeb项目开发引入了MVC开发模式,从而把页面展示和业务逻辑分离。采用MVC模式让程序设计更加合理。
    <2>MVC介绍
  • Module(模型层): 模型层用于封装数据(JavaBean对象),和一些业务逻辑处理。
  • Controller(控制层): 它控制着数据的流向
    1.先接受用户的请求数据
    2.将数据交给模型层处理
    3.将处理后的数据交给视图层
  • View(视图层):视图层用于展示数据

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html模板(base标签,meta标签,禁用浏览器缓存)+JSP自定义标签荔枝

【1】html模板 <html> <head><!-- base标签表示uri相对路径的基准路径 --><base href"http://localhost:8080/asite6/chapter6/ex6_11/visitor.html"/><title>html template</title><!-- meta 模拟响应消息头&#xff1a;Co…

5分钟带你理解一致性Hash算法

转载自 5分钟带你理解一致性Hash算法一致性Hash算法背景一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的&#xff0c;设计目标是为了解决因特网中的热点(Hot spot)问题&#xff0c;初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来…

thinking-in-java(10)内部类

【0】开场白1&#xff09;内部类&#xff1a;将一个类的定义放在另一个类的定义内部&#xff0c;这个类就是内部类&#xff1b;2&#xff09;内部类优点&#xff1a;匿名内部类的一个优点就是可以将解决问题的代码隔离&#xff0c;聚拢在一点&#xff1b;【10.1】创建内部类【荔…

金融系统中正确的金额计算及存储方式

转载自 金融系统中正确的金额计算及存储方式经典的精度丢失问题 Java中的类型float、double用来做计算会有精度丢失问题&#xff0c;下面来看下面的示例。 public static void main(String[] args) {test1();test2(); }private static void test1() {double totalAmount 0.09;…

JSTL标签库

1.JSTL介绍 JSTL(Java Server Pages Standarded Tag Library) : JSP标准标签库。主要提供给开发人员一个标准通用的标签库。 开发人员可以利用这些标签取代JSP页面上的Java 代码&#xff0c;从而提高程- 序的可读性&#xff0c;降低程序的维护难度 组成部分如下&#xff1a; …

缓存雪崩,缓存穿透,缓存预热,缓存热备都是什么鬼?

转载自 缓存雪崩&#xff0c;缓存穿透&#xff0c;缓存预热&#xff0c;缓存热备都是什么鬼&#xff1f;缓存雪崩&#xff0c;缓存穿透&#xff0c;缓存预热&#xff0c;缓存热备是在做缓存设计或者缓存应用时经常遇到的概念&#xff0c;也是缓存应用过程中必须熟知及知道 的东…

Multi-catch parameters are not allowed for source level below 1.7 解决方法

转自&#xff1a; https://stackoverflow.com/questions/21778922/eclipse-false-error-with-jdk7 You can solve this by setting up correct JRE environment in Eclipse as below. Go to Project > Properties > Java Build Path Click on Libraries Select JRE Syste…

使用Eclipse构建Maven项目 (step-by-step)

转自&#xff1a; http://blog.csdn.net/qjyong/article/details/9098213 Maven这个个项目管理和构建自动化工具&#xff0c;越来越多的开发人员使用它来管理项目中的jar包。本文仅对Eclipse中如何安装、配置和使用Maven进行了介绍。完全step by step。 如果觉得本文对你有用&a…

字符串substring方法在jkd6,7,8中的差异

转载自 注意&#xff1a;字符串substring方法在jkd6,7,8中的差异 标题中的substring方法指的是字符串的substring(int beginIndex, int endIndex)方法&#xff0c;这个方法在jdk6,7是有差异的。 substring有什么用&#xff1f; substring返回的是字符串索引位置beginIndex开始&…

过滤器五种拦截行为

1.问题&#xff1a;如何使过滤器拦截转发的请求和响应&#xff1f; Filter 过滤器默认拦截的是客户端发送过来的请求&#xff0c;但是在实际开发中&#xff0c;我们还有请求转发&#xff0c;以及由服务器触发调用的全局错误页面。默认情况下过滤器是不参与过滤的&#xff0c;要…

redis的主从数据库复制功能

【0】开场白&#xff1a; redis提供了复制功能&#xff0c; 实现当一台数据库中的数据更新后&#xff0c; 自动将更新的数据同步到其他数据库上&#xff1b; 这样即使一条server 发生故障&#xff0c;其他服务器仍然可以继续提供服务&#xff1b;&#xff08;为数据生成多个副本…

轻松几步搞定SSH连接Git配置

转载自 轻松几步搞定SSH连接Git配置 如果使用ssh的方式管理&#xff0c;需要配置ssh key. 1、打开git bash命令窗口 2、生成ssh key ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" your_emailexample.com为github上你注册的email地址。 如下面完整创建过程…

redis哨兵

【0】redis的主从数据库实现&#xff0c; 参见&#xff1a; redis的主从数据库复制功能 1&#xff09;redis的主从数据库的作用&#xff1a; 在一主多从的redis系统中&#xff0c; 从数据库起到了 数据冗余备份和读写分离的作用&#xff1b; 2&#xff09;redis2.8提供的哨兵…

Git安装及配置5分钟快速教程

转载自 Git安装及配置5分钟快速教程 Git是什么 Git是一款免费、开源的分布式版本控制系统&#xff0c;可以有效、高速的处理从很小到非常大的项目版本管理。 与常用的版本控制工具CVS、Subversion等不同的是它采用了分布式版本库的方式&#xff0c;不必服务器端软件支持&#x…

MySQL基础---增删改查语法

一、DDL-数据定义语言&#xff0c;操作数据库(CRUD)和表(CRUD) 1 创建数据库(指定字符集) create database 数据库名称 character set utf8; 数据库和表修改都是 Alter 查看都是show 删除都是drop2 创建表 create table 表名称(字段名 数据类型,字段名 数据类型,... ...字…

理解水平扩展和垂直扩展

转自&#xff1a; http://yunjiechao-163-com.iteye.com/blog/2126981 当一个开发人员提升计算机系统负荷时&#xff0c;通常会考虑两种方式垂直扩展和水平扩展。选用哪种策略主要依赖于要解决的问题 以及系统资源的限制。在这篇文章中我们将讲述这两种策略并讨论每种策越的…

JavaWeb核心常用API一览

1.核心知识点 2.常用API

Java中的宏变量,宏替换详解。

转载自 Java中的宏变量&#xff0c;宏替换详解。群友在微信群讨论的一个话题&#xff0c;有点意思&#xff0c;特拿出来分享一下。输出true false来看下面这段程序&#xff0c;和群友分享的大致一样。 public static void main(String[] args) {String hw "hello world&q…

eclipse如何设置js源文件编码

window -> preferences -> 输入 content type -> 然后在右侧栏点击 javascript source file&#xff0c; 然后default encoding 输入 gbk&#xff08;或者其他编码格式&#xff09;&#xff0c; 点击 update &#xff0c; 然后可以看见文件编码已经改变&#xff0c; 最…

SQL编程---存储过程和存储函数

1.基本概念 存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合。 2.存储过程和函数的好处 提高代码的复用性。减少数据在数据库和应用服务器之间的传输&#xff0c;提高效率。减少代码层面的业务处理。 3.创建和调用存储过程 <1>创建存储过程 创…