本文为JavaWeb基础JSP相关知识详细介绍~,Java全栈学习路线可参考: 【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~
JSP的特点:
JSP与HTML的区别:
C:\Users\J\AppData\Local\JetBrains\IntelliJIdea2020.3\tomcat\bd396c0d-06d6-4a53-b293-bb717de8947c\work\Catalina\localhost\ROOT\org\apache\jsp
//初始化
public void _jspInit() {
}
//销毁
public void _jspDestroy() {
}
//JSPService
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
(1)判断请求
(2)内置一些对象
final javax.servlet.jsp.PageContext pageContext; //页面上下文
javax.servlet.http.HttpSession session = null; //session
final javax.servlet.ServletContext application; //application
final javax.servlet.ServletConfig config; //config
javax.servlet.jsp.JspWriter out = null; //out
final java.lang.Object page = this; //当前 page
HttpServletRequest request //请求
HttpServletResponse response //响应
(3)输出页面前增加的代码
response.setContentType("text/html"); //设置响应的页面类型
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
(4)以上的这些对象可以在JSP页面中直接使用
out.write("\r\n"); // 以这样的格式,输出到前端
<%--JSP表达式
<%= 变量或者表达式%>
作用:用来将程序的输出,输出到客户端
--%>
<%= new java.util.Date()%>
<%--jsp脚本片段--%>
<%
int sum = 0;
for (int i = 0; i <= 100; i++) {
sum += i;
}
out.println("Sum="
+sum+ ""
);
%>
脚本片段的再实现
<%
int x = 10;
out.println(x);
%>
<p>这是一个JSP文档</p>
<%
int y = 20;
out.println(y);
%>
<%--在代码中嵌入HTML元素--%>
<%
for (int i = 0; i < 5; i++) {
%>
<h1>Hello world <%=i%></h1>
<%
}
%>
<%!
static{
System.out.println("Loading Servelet!");
}
private int globalVar = 0;
public void oi(){
System.out.println("进入了方法oi");
}
%>
<%片段%>
<%=表达式%>
<%!声明%>
<%--JSP注释--%>
<!--HTML注释-->
<%--定制错误页面--%>
<%@ page errorPage="error/500.jsp" %>
<%--
@include:会将两个页面合二为一
--%>
<%@include file="common/header.jsp"%>
<hr>
<h1>网页主体</h1>
<hr>
<%@include file="common/footer.jsp"%>
<%@taglib uri="tagLibraryURI" prefix="tagPrefix" %>
4大域对象
<%
pageContext.setAttribute("name1","oi1号");//保存的数据只在一个页面中有效
request.setAttribute("name2","oi2号");//保存的数据只在一次请求中有效,请求转发会携带这个数据
session.setAttribute("name3","oi3号");//保存的数据只在一次会话中有效,从打开浏览器到关闭浏览器
application.setAttribute("name4","oi4号");//保存的数据只在服务器中有效,从打开服务器到关闭服务器
%>
Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~