1什么是JSP
jsp又叫 Java servelt Page 这门技术最大的特点就是,写jsp就像是再写html 但是不仅可以写静态页面,而且可以内置Java代码写出动态页面,也就是说可以为用户提供动态数据。
总的来说jsp = java+ HTML
2.JSP快速入门
2.1提供对应的驱动包
2.1创建对应jsp文件
2.2写对应代码即可(html和java代码)
注:在jsp中写java代码需要对应的标签(详解在jsp脚本)
3.JSP原理
3.1
jsp本质上就是一个servlet ,所以jsp中在向网页发出的请求服务器会先把jsp文件转成servlet文件去执行,所以我们访问jsp实际是在访问jsp背后的servlet文件
servlet文件的位置如图所示
点开其中的java后缀文件其中部分代码如图所示
可以去查看tomcat源码会发现红色框中的类继承与HttpSevrlet
4.jsp脚本
jsp脚本分类
1.<%...%>内容会直接放到_jspService()方法中
2.<%=...%>内容会放到out.print()中,作为out.print()的参数
3.<%!...%>内容会放到_jspService()方法之外,被类直接包含
(小技巧: 当你想循环或者需要进行其他操作必须用到Java和html进行混合打印的时候可以用拼接的方法,例子如下:)
<% for (int i = 0; i < brands.size(); i++) { Brand brand = brands.get(i); %> <tr align="center"> <td><%= brand.getId() %> </td> <td><%= brand.getBrandName() %> </td> <td><%= brand.getCompanyName() %> </td> <td><%= brand.getOrdered() %> </td> <td><%= brand.getDescription() %> </td> <% if (brand.getStatus() == 1) { %> <td><%= "启用" %></td> <% } else { %> <td><%= "禁用" %></td> <% } %> </td> <td><a href="#">修改</a> <a href="#">删除</a></td> </tr> <% } %>
图中案例是我想循环打印表格和表格中的数据所作出的拼接
5.JSP缺点
学习的目的:1.一些比较老的公司仍在使用jsp
2.可以更好的掌握新的技术
6.引出技术EL表达式
为了解决上述的部分问题
介绍:Expression Language 表达语言 用于简化JSP页面内的java代码
主要功能:获取数据
语法${expression}例:
: 获取域中存储key为brands的数据
JavaWeb中的四大域对象:
1.page:当前页面有效
2.request:当前请求有效
3.session: 当前会话有效
4.application:当前应用有效
el表达式获取数据,会依次从这4个域中寻找,直到找到为止
7.引出JSTL技术
简介:使用标签取代JSP上面的java代码
需要引用对应的包
<dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
介绍两个常用标签
1.<c:if test = "xxx">...</c:if>
参数介绍:xxx 代表传入的判断条件...代表判断后的要运行的语句
概述:类似于java代码中的if判断语句
<c:if test="${status==1}"> 启用 </c:if> <c:if test="${status==0}"> 禁用 </c:if>
2.<c:forEach>
参数介绍:item:被遍历的容器
var:代表临时变量
varStatus:遍历状态对象
概述:相当于for循环
注:${brand.id}并不是访问成员变量中的id在调用brand.id 的时候他会自动解析去寻找该类中的getId方法,其他访问方法都与之类似。
标签:java,javaweb,代码,笔记,jsp,JSP,servlet,页面 From: https://www.cnblogs.com/duixiangdemingzi/p/17767177.html