JSP学习总结


文章目录

  • JSP学习总结
    • @[TOC](文章目录)
  • 一、JSP快速入门
  • 二、JSP原理
  • 三、JSP脚本
  • 四、EL表达式
  • 五、JSTL
    • 标签
    • 标签

一、JSP快速入门


jsp坐标:

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

案例:

<%@ 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>

运行结果:

二、JSP原理


三、JSP脚本


案例:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title><%!//定义两个变量int a=1;int b=3;%><%!//定义一个test方法public String test(){//定义一个变量strString str="小飞侠";return str;}%>
</head>
<body>
<%//输出两个变量的和System.out.println(a+b);  //控制台输出4
%>
<br>
<%//调用test方法,输出返回值System.out.println(test()); //控制台输出小飞侠
%>
<br>
<%=a+b %>
<br>
<%=test()%>
</body>
</html>

运行结果:

四、EL表达式


案例:

package com.study.pojo;public class Student {private String id;  //学号private String name;  //姓名private String gender;  //性别private int age;  //年龄public Student() {}public Student(String id, String name, String gender, int age) {this.id = id;this.name = name;this.gender = gender;this.age = age;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Student{" +"id='" + id + '\'' +", name='" + name + '\'' +", gender='" + gender + '\'' +", age=" + age +'}';}
}package com.study.Servlet;
import com.study.pojo.Student;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/el")
public class ElTestServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//准备数据List<Student> stus=new ArrayList<>();stus.add(new Student("001","小马哥","男",23));stus.add(new Student("002","小飞侠","男",24));stus.add(new Student("003","马奎斯","男",25));//保存到request域中req.setAttribute("students",stus);//req.setAttribute("status",1);req.getRequestDispatcher("/ElTest.jsp").forward(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req, resp);}
}<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isELIgnored="false" %>
<html>
<head><title>Title</title>
</head>
<body>
${students}</body>
</html>

注意:如果输出页面是${students},原因是缺少了一个能让页面识别el表达式的页头语句,在jsp页面头加:<%@page isELIgnored=“false”%>即可。
运行结果:

五、JSTL

<c:if>标签


坐标:

<dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><dependency><groupId>taglibs</groupId><artifactId>standard</artifactId><version>1.1.2</version></dependency>

Jstl标签库:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

案例:

package com.study.Servlet;
import com.study.pojo.Student;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/el")
public class ElTestServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//准备数据List<Student> stus=new ArrayList<>();stus.add(new Student("001","小马哥","男",23));stus.add(new Student("002","小飞侠","男",24));stus.add(new Student("003","马奎斯","男",25));//保存到request域中req.setAttribute("students",stus);req.setAttribute("status",1);//转发到Jstl-if.jsp页面中req.getRequestDispatcher("/Jstl-if.jsp").forward(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req, resp);}
}<%--Created by IntelliJ IDEA.User: 86166Date: 2022/6/14Time: 11:27To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page isELIgnored="false" %>
<html>
<head><title>Title</title>
</head>
<body>
<c:if test="${status==1}"><h1>访问成功!</h1>
</c:if>
</body>
</html>

运行结果:

<c:forEach>标签

items:遍历的容器
var:遍历产生的临时变量
varStatus:遍历状态对象

案例:

package com.study.Servlet;
import com.study.pojo.Student;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/el")
public class ElTestServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {//准备数据List<Student> stus=new ArrayList<>();stus.add(new Student("001","小马哥","男",23));stus.add(new Student("002","小飞侠","男",24));stus.add(new Student("003","马奎斯","男",25));//保存到request域中req.setAttribute("students",stus);//转发到forEach.jsp页面中req.getRequestDispatcher("/forEach.jsp").forward(req,resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doGet(req, resp);}
}<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page isELIgnored="false" %>
<html>
<head><title>Title</title>
</head>
<body>
<table border="1" bgcolor="#00ced1"><tr><td>学号</td><td>姓名</td><td>性别</td><td>年龄</td></tr><c:forEach items="${students}" var="stu" varStatus="stuID"><tr><td>${stu.id}</td><%--<td>${stuID.index}</td> //学号就变成了0,1,2--%><td>${stu.name}</td><td>${stu.gender}</td><td>${stu.age}</td></tr></c:forEach></table></body>
</html>

运行结果:

Jsp在web开发中常用到的技术(一)相关推荐

  1. python web开发第三方库_Python Web开发中常用的第三方库

    Python Web开发中常用的第三方库 TL;DR 经常有朋友问,如果用Python来做Web开发,该选用什么框架?用 Pyramid 开发Web该选用怎样的组合等问题?在这里我将介绍一些Pytho ...

  2. 浅谈Web开发中的6种技术

    CSDN博客不再经常更新,更多优质文章请来 粉丝联盟网 FansUnion.cn! (FansUnion) Web开发中的6种技术 1.html 超文本标记语言,即HTML(Hypertext Mar ...

  3. web开发中常用的概念

    Tomcat服务器 Web开发中的常见概念 B/S系统和C/S系统 Brower/Server:浏览器 服务器 系统 ----- 网站 Client/Server:客户端 服务器 系统 ----- Q ...

  4. WEB开发中常用的正则表达式

    在计算机科学中,正则表达式用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串.在WEB开发中,正则表达式通常用来检测.查找替换某些符合规则的字符串,如检测用户输入E-mai格式是否正确,采集符 ...

  5. Web开发中常用的Web应用服务器

    Nginx Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强,事实上Nginx的并发 ...

  6. web开发中常用的几种统计图使用

    最近,笔者结合自己在公司项目使用统计图的经验以及自己的研究,对地图统计.柱形图统计.饼图统计以及折线图统计这几种常用的统计作以归纳.主要使用到的js框架是highstock.js,一种完全基于java ...

  7. 一些web开发中常用的、做成cs文件的js代码 - 搜刮来的

    using System; using System.Web; using System.Web.UI; namespace COCOWO.COMP {     /// <summary> ...

  8. web开发中常用的算法和函数

    1.isFinite() 函数用于检查其参数是否是无穷大. isFinite(number) 返回值 如果 number 是有限数字(或可转换为有限数字),那么返回 true.否则,如果 number ...

  9. BS开发中常用的Javascript技术

    [转]http://www.cnblogs.com/bisonjob/archive/2005/07/21/197264.aspx 一.验证类 1.数字验证内   1.1 整数   1.2 大于0的整 ...

最新文章

  1. TCP/IP,Http,Socket的区别
  2. Linux入门最终集! Vue SpringBoot Mybatis-Plus Linux 阿里云!
  3. CSS层叠上下文、层叠顺序和层叠等级
  4. 《Effective C#》Item 17:减少装箱(Boxing)和拆箱(Unboxing)操作
  5. Restangular的使用
  6. 记一次 Vue2 迁移 Vue3 的实践总结
  7. 整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例
  8. 腾讯吃鸡 android,腾讯吃鸡手游《光荣使命》正式上线:安卓/iOS不限号测试
  9. oracle必须声明标识符函数,引用变量时需要必须声明标识符
  10. 读《scikiit-learn机器学习》逻辑回归算法
  11. Jasypt 开源加密库使用教程
  12. 微信小游戏 - 开发工具安装 - 官方 Demo 运行
  13. Spark2.1特征处理:提取/转换/选择
  14. Exchange server 2010系列教程之十一 整合AD RMS与exchange 2010
  15. Treo 650使用专题及开发计划等
  16. 使用字符串修改彩票程序
  17. 导出微信聊天记录并生成词云
  18. 物联网云平台系统设计【一】
  19. api-String
  20. uniapp平台使用vant组件按需引入,并兼容到微信、百度、抖音小程序

热门文章

  1. 互联网医院在线问诊系统-医院远程问诊,守护您的健康
  2. 芜湖市小学生c语言培训班,芜湖少儿学编程-地址-电话
  3. 如何使用 Lightly 分享项目?
  4. 数学与计算机学院文化节,我院成功举办第二届数学文化节暨计算科学文化交流月活动...
  5. ds存储查看 linux,我的NAS我的地盘 篇五:群晖NAS软件介绍与应用之DS Audio篇
  6. jqurey常用知识点 (非常重要!)
  7. imopen和bwmorph_数字图像处理第九章讲义.ppt
  8. HTML5系列代码:主色调红色的配色方案表
  9. 学习:数学----容斥原理
  10. umix6适配鸿蒙系统吗,深度剖析测评优学派u36和umix6区别如何?哪个好?详细剖析测评...