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,"西安"); }
原文链接:https://www.cnblogs.com/sx-xiaoL/p/17556648.html
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/33518