JSP,JavaBean
JSP
8.1什么是JSP
java Server Pages:java服务器端页面,也和Servlet一样应用于动态web技术。
最大特点:
- 写JSP就像在HTML
- 区别:
- HTML只给用户提供静态是数据。
- JSP页面中可以进入JAV代码,为用户提供动态数据。
8.2JSP原理
思路:JSP到底怎么执行的。
-
代码层面没有任何问题。
-
服务器内部工作
tomcat中有一个work目录;
IDEA中使用tomcat的会在IDEA中生成一个work目录。
我电脑的地址:
C:\Users\DELL\AppData\Local\JetBrains\IntelliJIdea2022.1\tomcat
浏览器向服务器发送请求,不管访问真没资源,其实都是在访问Servlet.
JSP最终也会转化成一个Java类。
JSP本质上是一个Servlet.
//初始化
public void _jspInit(){
}
//销毁
public void _jspDestroy(){
}
//JSPService
public void _jspService(.HttpServletRequest request,HttpServletResponse response)
- 判断请求
- 内置一些对象
- 输出页面前增加的代码
- 以上的这些个对象我们可以在JSP界面中直接使用
在JSP页面中,只要是Java代码就会原封不动的输出,如果是HTML代码,就会转换为
out.write("<html>\r\n")
这样的格式,输出到前端。
8.3JSP基础语法
任何语言都有自己的语法,JAVA中有,JSP作为JAVA技术的一种应用,它拥有一些自己扩充的语法(了解,知道即可),java所有语法都支持。
JSP表达式
<%-- <%JSP表达式%
作用:用来将程序输出到客户端
<%=变量或者表达式)%>
--%>
<%=new java.util.Date()%>
jsp脚本片段
<%--jsp脚本片段--%>
<%
int sum=0;
for (int i = 0; i < 100; i++) {
sum+=i;
}
out.print("<h1>Sum="+sum+"</h1>");
%>
脚本片段的再实现
<%
int x=10;
out.print(x);
%>
<p>这是一个JSP文档</p>
<%
out.print(x);
%>
<hr>
<%--在代码嵌入HTML元素--%>
<%
for (int i = 0; i < 5; i++) {
%>
<h1>hello,world <%=i%></h1>
<%
}
%>
JSP声明
<%!
static {
System.out.println("Loading Servlet!");
}
private int globalVar=0;
public void Kuang(){
System.out.println("进入了方法Kuang");
}
%>
JSP声明:会被编译到JSP生成的java类中。其他的就会被生成到_jspServlet方法中。
在JSP中嵌入java代码即可。
<%%>
<%=%>
<%!%>
<%!--注释--%>
JSP的注释,不会在客户端提示,HTML就会。
8.4JSP指令
<%@page args......%>
<%@include file="..."%>
8.5九大内置对象
- PagaContext 保存东西
- Request 保存东西
- Response
- Session 保存东西
- Application[ServletConfig] 保存东西
- config[ServletConfig]
- out
- page 不用了解
- exception
pageContext.setAttribute("name1","秦将1");//保存的数据只在一个页面中有效
request.setAttribute("name2","秦将2");//保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","秦将3");//保存的数据只在一次会话中有效,从打开服务器到关闭浏览器
application.setAttribute("name4","秦将4");//保存的数据只在服务器中有效,从打开服务器到关闭服务器
request:客户端向服务器发送请求,产生的数据,用户看完就没用了。比如:新闻,用户看完没用的。
session:客户端向服务器发送请求,产生的数据,用户看完一会还有用。比如:购物车。
application:客户端向服务器发送请求,产生的数据,一个用户看完,其他用户还可以用。比如:聊天数据。
8.6JSP标签、JSTL标签、EL表达式
EL表达式:${}
-
获取数据
-
执行运算
-
获取web开发的常用对象
格式化标签
SQL标签
JSP标签
<jsp:include page=""></jsp:include>
<jsp:forward page="Jsp2.jsp">
<jsp:param name="value1" value="value1">
</jsp:forward>
JSTL表达式
JSTL标签库的使用就是为了弥补HTML标签的不足:它自定义许多标签,可以供我们使用,标签的功能和java代码一样。
核心标签(掌握部分)
JSTL标签库使用步骤
- 引入对应的taglb
- 使用其中的方法
- 在Tomcat也要引入.jstl的包,否则会报错:JSTL解析错误
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<>
<h1>测试</h1>
<hr>
<form action="jsplag.jsp" method="get">
<%-- 获取表单中是数据
${param.参数名}--%>
<input type="text" name="uesrname" value="${param.username}">
<input type="submit" value="登录">
</form>
<%--如果提交的用户名是管理员,则登录成功--%>
<c:if test="$(param.username='admin')" var="isAdmin";
<c:out value="管理员欢迎您"/>
</c:if>
<c:out value="$(isAdmin)"/>
</body>
JavaBean
实体类
JavaBean有特定的写法:
- 必须要有一个无参构造
- 属性必须私有化
- 必须有对应的get/set方法
一般用来和数据库的字段做映射 ORM
ORM:对象关系映射
- 表--->类
- 字段--->属性
- 行记录--->对象
i | name | age | address |
---|---|---|---|
1 | 秦将1号 | 3 | 西安 |
2 | 秦将2号 | 18 | 西安 |
3 | 秦将3号 | 100 | 西安 |
class People{
private int id;
private string name;
private int id;
private string address;
}
class A{
new People(1,"秦将1号",3,"西安");
new People(2,"秦将2号",3,"西安");
new People(3,"秦将3号",3,"西安");
}
本文作者:努力的小L
本文链接:https://www.cnblogs.com/sx-xiaoL/p/17556648.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗