2024还有必要学JSP吗?,你不懂还不学?

本文介绍了JSP的工作原理,包括其与Servlet的关系,如何通过JSP页面中的HTML标签输出内容,以及JSP内置对象的使用。重点讲解了EL表达式和JSTL在简化数据处理和提高代码可读性的作用。最后提到了JSP的学习内容和面试准备中的技术要点。
摘要由CSDN通过智能技术生成

以后访问1.jsp就不再重新编译jsp文件了,直接调用class文件来响应浏览器。当然了,如果Tomcat检测到JSP页面改动了的话,会重新编译的

既然JSP是一个Servlet,那JSP页面中的HTML排版标签是怎么样被发送到浏览器的?我们来看下上面1_jsp.java的源码就知道了。原来就是用write()出去的罢了。说到底,JSP就是封装了Servlet的java程序罢了。

out.write(“\r\n”);
out.write(“\r\n”);
out.write(“\r\n”);
out.write(“\r\n”);
out.write(" 简单使用JSP\r\n");
out.write(“\r\n”);
out.write(“\r\n”);

有人可能也会问:JSP页面的代码服务器是怎么执行的?再看回1_jsp.java文件,java代码就直接在类中的service()中。

String s = “HelloWorda”;
out.println(s);

**JSP内置了9个对象!**内置对象有:out、session、response、request、config、page、application、pageContext、exception。

重要要记住的是:JSP的本质其实就是Servlet。只是JSP当初设计的目的是为了简化Servlet输出HTML代码。

什么时候用JSP

重复一句:JSP的本质其实就是Servlet。只是JSP当初设计的目的是为了简化Servlet输出HTML代码。

我们的Java代码还是写在Servlet上的,不会写在JSP上。在知乎曾经看到一个问题:“如何使用JSP连接JDBC”。显然,我们可以这样做,但是没必要

JSP看起来就像是一个HTML,再往里边增加大量的Java代码,这是不正常,不容易阅读的。

所以,我们一般的模式是:在Servlet处理好的数据,转发到JSP,JSP只管对小部分的数据处理以及JSP本身写好的页面。

例如,下面的Servlet处理好表单的数据,放在request对象,转发到JSP

//验证表单的数据是否合法,如果不合法就跳转回去注册的页面
if(formBean.validate()==false){

//在跳转之前,把formbean对象传递给注册页面
request.setAttribute(“formbean”, formBean);
request.getRequestDispatcher(“/WEB-INF/register.jsp”).forward(request, response);
return;
}

JSP拿到Servlet处理好的数据,做显示使用:

image

JSP需要学什么

JSP我们要学的其实两块就够了:JSTL和EL表达式

EL表达式

**表达式语言(Expression Language,EL),EL表达式是用${}括起来的脚本,用来更方便的读取对象!**EL表达式主要用来读取数据,进行内容的显示!

为什么要使用EL表达式?我们先来看一下没有EL表达式是怎么样读取对象数据的吧!在1.jsp中设置了Session属性

<%@ page language=“java” contentType=“text/html” pageEncoding=“UTF-8”%>

向session设置一个属性

<%
//向session设置一个属性
session.setAttribute(“name”, “aaa”);
System.out.println(“向session设置了一个属性”);
%>

在2.jsp中获取Session设置的属性

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

<%
String value = (String) session.getAttribute(“name”);
out.write(value);
%>

效果:

1.jpg

上面看起来,也没有多复杂呀,那我们试试EL表达式的!

在2.jsp中读取Session设置的属性

<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

${name}

只用了简简单单的几个字母就能输出Session设置的属性了!并且输出在浏览器上!

使用EL表达式可以方便地读取对象中的属性、提交的参数、JavaBean、甚至集合

JSTL

JSTL全称为 JSP Standard Tag Library 即JSP标准标签库。JSTL作为最基本的标签库,提供了一系列的JSP标签,实现了基本的功能:集合的遍历、数据的输出、字符串的处理、数据的格式化等等!

为什么要使用JSTL?

EL表达式不够完美,需要JSTL的支持!在JSP中,我们前面已经用到了EL表达式,体会到了EL表达式的强大功能:**使用EL表达式可以很方便地引用一些JavaBean以及其属性,不会抛出NullPointerException之类的错误!**但是,EL表达式非常有限,它不能遍历集合,做逻辑的控制。这时,就需要JSTL的支持了

**Scriptlet的可读性,维护性,重用性都十分差!**JSTL与HTML代码十分类似,遵循着XML标签语法,使用JSTL让JSP页面显得整洁,可读性非常好,重用性非常高,可以完成复杂的功能!

之前我们在使用EL表达式获取到集合的数据,遍历集合都是用scriptlet代码循环,现在我们学了forEach标签就可以舍弃scriptlet代码了。

向Session中设置属性,属性的类型是List集合

<%
List list = new ArrayList<>();
list.add(“zhongfucheng”);
list.add(“ouzicheng”);
list.add(“xiaoming”);

session.setAttribute(“list”, list);
%>

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

面试资料整理汇总

成功从小公司跳槽进蚂蚁定级P7,只因刷了七遍这些面试真题

成功从小公司跳槽进蚂蚁定级P7,只因刷了七遍这些面试真题

这些面试题是我朋友进阿里前狂刷七遍以上的面试资料,由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考。

面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了

在这里祝大家能够拿到心仪的offer!

1710392751231)]

这些面试题是我朋友进阿里前狂刷七遍以上的面试资料,由于面试文档很多,内容更多,没有办法一一为大家展示出来,所以只好为大家节选出来了一部分供大家参考。

面试的本质不是考试,而是告诉面试官你会做什么,所以,这些面试资料中提到的技术也是要学会的,不然稍微改动一下你就凉凉了

在这里祝大家能够拿到心仪的offer!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 21
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP基于SSM飞机票预订航空订票网站毕业源码案例设计 技术框架: SSM(SpringMVC + Spring + Mybatis) 开发软件: Eclipse/idea都可以 + JDK1.8以上 + Tomcat8以上 + mysql 功能需求: 1 航班信息浏览功能 机场的工作人员可以根据现实具体的信息来发布航班信息供用户来查询,而用户可以通过浏览器登录本系统来浏览航班信息,选择自己所想要预定的航班。此功能提供了所有的航班信息,根据发布时间来排序,能够使用户更清楚的了解航班信息。 2 航班查询功能 乘客可以根据航班飞行路线进行班次的具体查询,方便乘客进行信息的查询。当乘客面对这些庞大的航班信息时,怎样才能使乘客获得自己想要的航班信息,这是考验系统实现功能非常关键的一点。那么,航班查询功能就可以做到大大缩短乘客找到正确的航班信息。 3 航班信息公告 当某个航班晚点或者误机的情况下,该公告栏将会公布误机的航班班次,并且在客户已经购买的订单里面的详情里面,会显示该航班班次晚点状态。 4 机票预订功能 乘客可以按照自己想要的路线预订机票,预订付款之后生成我的订单,预订未付款,则我的订单状态显示为未付款,可以选择付款,或者取消该订单,当乘客付款成功后的生成的我的订单,该订单在24小时之内可以选择退票(退票的情况只能是出票地的始发地,航班始发地),退票手续费为10%为航空公司收取,超过24小时,不能选择退票。最终解释权为航空公司所有。(退票功能可以稍后十号后做) 5 用户注册和登录功能 如果乘客想成为该网站会员,就可以通过注册功能填写一些必要的信息,然后就可以注册成为本网站的会员。当用户成为本网站的会员时,可以通过登录功能登录本网站,就享有在本网站进行机票预订,修改个人信息和相关密码操作等。 6 密码修改功能 这是提供给用户随时修改密码的功能。也是一个网站不可缺少的功能,它是用户信息安全的保障。 7 后台管理功能 这个功能是由管理人员管理的,它包括了一些其他功能:航班定制功能,安排航班日期功能,查看航班功能。 首页为广告位,实现广告轮播功能,并且获取当前时间,以及城市天气(天气可以不用获取天气数据,做个死的天气数据就可以) -------- 不运行,下载完可以私聊问,可远程教 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! <项目介绍> 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校生、老师或者企业员工下载习,也适合小白习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供习参考, 切勿用于商业用途。 --------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值