Ajax
什么是Ajax
-
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
-
AJAX 不是新的编程语言,而是一种使用现有标准的新方法。
-
AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。
-
AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
Ajax相关参数
- URL:代载入页面的地址
- data : 待发送的 参数(键值对形式)
- success : 载入成功时的回调函数
- type:设置请求的方法(get、post)
Jsp
什么是Jsp
JSP全名为Java Server Pages,中文名叫java服务器页面,是一种动态网页技术标准 ,其根本是一个简化的Servlet设计,是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
Jsp与HTML区别
- HTML只给用户提供静态的数据
- Jsp页面中可以嵌入Java代码,为用户提供动态数据
- Jsp本质上是一个Servlet
Jsp基础语法
注:在jsp页面中Java代码会原封不动的输出;HTML代码,则会通过out.write()输出
表达式
作用:将程序的输出,输出到客户端
格式:<%= 变量或者是表达式%>
<%--表达式--%>
<%=new Date().toLocaleString()%>
脚本片段
格式:<% java代码或者是HTML代码块%>
<%--脚本片段--%>
<%
int sum=0;
for (int i = 0; i < 7; i++) {
sum+=i;
%>
<h1>Hello,world <span style="color: aqua"><%=i%></span></h1>
<%}%>
<%=sum%>
Jsp声明
格式:<%!变量或者是方法%>
<%!
String name="JSP基础语法";
public static void Show(String s){
System.out.println(s);
}
%>
注:表达式与脚本片段运行后,会生成在Jsp生成的java类中的_jspService方法中;但是Jsp声明会被编译到Jsp生成的java类中
JSP指令
格式:<%@指令名 %>(指令名:page、taglib 、include )
特别注意:<%@include%>与jSP标签:<%jsp:include:xxx%>两者作用都是将几个页面合成
但是前者将几个页面融合在一个页面中;后者是页面的拼接,原先是几个页面后面还是几个页面
例:自定义错误页面
<%@page isErrorPage="true" %>//将自定页面设置为错误页面
<%@page errorPage="error.jsp" %>//将错误页面设置为自定义页面
在web.xml中配置错误页面
//当遇到500错误时,会跳转到自定义error的错误页面中
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
//当遇到404错误时,会跳转到自定义error1的错误页面中
<error-page>
<error-code>404</error-code>
<location>/error1.jsp</location>
</error-page>
error.jsp设计
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1><span style="color: red">error</span></h1>
</body>
</html>
error1.jsp设计
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@page isErrorPage="true" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1><span style="color: red">NOT FIND</span></h1>
</body>
</html>
9大内置对象
PageContext、Request、Response、Session、Application 【SerlvetContext】、config 【SerlvetConfig】、out 、page、exception
可用于存放信息的对象,以及作用域
- PageContext :保存的数据只在一个页面中有效
- Request:保存的数据只在一次请求中有效,请求转发时会携带该数据
- Session:保存的数据会在一次会话中有效,从打开浏览器,到关闭浏览器
- Application :保存的数据只在服务器中有效,从打开服务器,到关闭服务器
<%
//存取值
pageContext.setAttribute("lala0","你好");
request.setAttribute("lala1","你好");
session.setAttribute("lala2","你好");
application.setAttribute("lala3","你好");
%>
<%
//获得值
Object lala0 = pageContext.getAttribute("lala0");
Object lala1 = request.getAttribute("lala1");
Object lala2 = session.getAttribute("lala2");
Object lala3 = application.getAttribute("lala3");
%>
<%--输出值--%>
${lala0}
${lala1}
${lala2}
${lala3}
${lala4}
运行结果:
从底层到高层的作用域:PageContext -Request-Session-Application
PageContext相关配置
- setAttribute(String,Object,int i)
该方法的参数三可以设置作用域
pageContext.setAttribute("null","null",PageContext.SESSION_SCOPE);
- forword()
通过该法,可以用与跳转页面
pageContext.forward("/error1.jsp");
JSP标签、JSTL标签、EL表达式
EL表达式
格式:${ 变量名}
作用:
- 获取数据
- 执行运算
- 获取web开发的常用对象
EL表达式获取表单中的数据:${param.参数名}
JSP标签
个别举例:
<jsp:include page="index.jsp" flush="true" ></jsp:include>
<jsp:forward page="error1.jsp" ></jsp:forward>
JSTL表达式
JSTL标签库的使用就是为了弥补HTML标签的不足;JSTL标签库自定义许多标签,可以供我们使用
注意:要使用JSTL标签,即使用JSTL标签库时需导入jstl-api、standard的jar包;jstl-api的jar包在项目中有,但是在Tomcat发布的应用WEB-INF的lib目录下不存在,为了程序正常运行,需要手动将其复制过去
set标签
<%--set标签--%>
<c:set var="score" value="76" scope="page" ></c:set>
if标签
<%--if标签--%>
<c:if test="${score>80}" var="isTrue"/>
<c:if test="${!isTrue}">
<c:out value="成绩小与80"></c:out>
</c:if>
choose标签,when标签
<%--choose标签,when标签--%>
<c:choose>
<c:when test="${score>90}">
<span style="color: aqua">优秀</span>
</c:when>
<c:when test="${score>80}">
<span style="color: aquamarine">良好</span>
</c:when>
<c:when test="${score>70}">
<span style="color: antiquewhite">中等</span>
</c:when>
</c:choose>
forEach标签
<%
ArrayList<String> lala = new ArrayList<>();
lala.add("张三");
lala.add("李四");
lala.add("劳务");
lala.add("啦啦");
lala.add("哈哈");
request.setAttribute("la",lala);
%>
<%--forEach标签--%>
<c:forEach var="s" items="${la}">
<c:out value="${s}"></c:out><br>
</c:forEach>
forEach标签2
相关参数介绍:
- var:每次遍历出来的变量名
- items:遍历的对象
- begin:遍历开始位置
- end:遍历结束的位置
- step:步长,相当于i++的作用
<%--forEach标签2 --%>
<c:forEach var="s" items="${la}" begin="0" end="4" step="2">
<c:out value="${s}"></c:out><br>
</c:forEach>
上述运行结果:
JavaBean
什么是JavaBean
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。 换句话说,JavaBean就是一个java的类,书写javaBean类必须满足以下条件:
- 具有无参构造
- 属性私有化
- 提供get与set方法
作用:一般用来和数据库的字段来做意义映射