JSP
ç®å½
2.jspè¿è¡åç---jspæ¬è´¨å°±æ¯servlet
jspå¨ç¬¬ä¸æ¬¡è®¿é®æ¶ä¼è¢«WEB容å¨ç¿»è¯æservletï¼åæ§è¡
1.pageæä»¤ --- 屿§æå¤çæä»¤ï¼å®é å¼åä¸pageæä»¤é»è®¤ï¼
1ï¼pageContextæ¯ä¸ä¸ªå对象
2ï¼å¯ä»¥è·å¾å ¶ä»8大éå¼å¯¹è±¡
1.页é¢å å«ï¼å¨æå å«ï¼ï¼
1.jspèæ¬åæ³¨é
jspèæ¬ï¼
<%java代ç %> ----- å é¨çjava代ç ç¿»è¯å°serviceæ¹æ³çå é¨
<%
int i=0;
System.out.print(i);//卿§å¶å°æå°
%>
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
int i=0;
System.out.print(i);
}
<%=javaåéæè¡¨è¾¾å¼> ----- ä¼è¢«ç¿»è¯æserviceæ¹æ³å é¨out.print()
<%=i %>
<%=1+1 %>
<%=str %>
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
out.print(i );
out.print(1+1 );
out.print(str );
}
<%!java代ç %> ---- ä¼è¢«ç¿»è¯æservletçæåçå 容
<%!
String str = "nihao China!";
%>
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
String str = "nihao China!";
}
jsp注éï¼
ä¸åçæ³¨éå¯è§èå´æ¯ä¸å
- Html注éï¼<!--注éå 容--> ---å¯è§èå´ jspæºç ãç¿»è¯åçservletã页颿¾ç¤ºhtmlæºç
- java注éï¼//åè¡æ³¨é /*å¤è¡æ³¨é*/ --å¯è§èå´ jspæºç ç¿»è¯åçservlet
- jsp注éï¼<%--注éå 容--%> ----- å¯è§èå´ jspæºç å¯è§
2.jspè¿è¡åç---jspæ¬è´¨å°±æ¯servlet
jspå¨ç¬¬ä¸æ¬¡è®¿é®æ¶ä¼è¢«WEB容å¨ç¿»è¯æservletï¼åæ§è¡
ç¬¬ä¸æ¬¡è®¿é®---->index.jsp---->index_jsp.java---->ç¼è¯è¿è¡
被翻è¯åçservletå¨Tomcatçworkç®å½ä¸å¯ä»¥æ¾å°
index.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
int i=0;
System.out.print(i);//卿§å¶å°æå°
%>
<!-- å¨é¡µé¢è¾åº -->
<%=i %>
<%=1+1 %>
<%-- jsp注é --%>
<%!
String str = "nihao China!";
%>
<%=str %>
</body>
</html>
index_jsp.java
/*
* Generated by the Jasper component of Apache Tomcat
* Version: Apache Tomcat/7.0.52
* Generated at: 2019-02-27 02:59:08 UTC
* Note: The last modified time of this file was set to
* the last modified time of the source file after
* generation to assist with modification tracking.
*/
package org.apache.jsp;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent {
String str = "nihao China!";
private static final javax.servlet.jsp.JspFactory _jspxFactory =
javax.servlet.jsp.JspFactory.getDefaultFactory();
private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants;
private javax.el.ExpressionFactory _el_expressionfactory;
private org.apache.tomcat.InstanceManager _jsp_instancemanager;
public java.util.Map<java.lang.String,java.lang.Long> getDependants() {
return _jspx_dependants;
}
public void _jspInit() {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
}
public void _jspDestroy() {
}
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.jsp.JspWriter _jspx_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;
try {
response.setContentType("text/html; charset=ISO-8859-1");
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;
out.write("\r\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\t");
int i=0;
System.out.print(i);//卿§å¶å°æå°
out.write("\r\n");
out.write("\t<!-- å¨é¡µé¢è¾åº -->\r\n");
out.write("\t");
out.print(i );
out.write('\r');
out.write('\n');
out.write(' ');
out.write('\r');
out.write('\n');
out.write(' ');
out.print(str );
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
try { out.clearBuffer(); } catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
else throw new ServletException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
jspæ¬è´¨æ¯servlet
å¨apache-tomcat-7.0.52\conf䏿å é¨çå ¨å±çweb.xmlé ç½®æä»¶ã
å½ä½ å¨é¡µé¢è®¿é®ææç.jspï¼å®è´¨ä¸é½æ¯servlet帮å©ååºåç¿»è¯çã
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jsp</servlet-name>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.jspx</url-pattern>
</servlet-mapping>
3.jspæä»¤
jspçæä»¤æ¯æå¯¼jspç¿»è¯åè¿è¡çå½ä»¤ï¼jspå æ¬ä¸å¤§æä»¤ï¼
1.pageæä»¤ --- 屿§æå¤çæä»¤ï¼å®é å¼åä¸pageæä»¤é»è®¤ï¼
屿§æå¤çä¸ä¸ªæä»¤ï¼æ ¹æ®ä¸åç屿§ï¼æå¯¼æ´ä¸ªé¡µé¢ç¹æ§
æ ¼å¼ï¼<%@ page 屿§å1= "屿§å¼1" 屿§å2= "屿§å¼2" ...%>
常ç¨å±æ§å¦ä¸ï¼
languageï¼jspèæ¬ä¸å¯ä»¥åµå ¥çè¯è¨ç§ç±»
pageEncodingï¼å½åjspæä»¶çæ¬èº«ç¼ç ---å é¨å¯ä»¥å å«contentType
contentTypeï¼response.setContentType(text/html;charset=UTF-8)
sessionï¼æ¯å¦jspå¨ç¿»è¯æ¶èªå¨å建session
importï¼å¯¼å ¥javaçå
errorPageï¼å½å½å页é¢åºéå跳转å°åªä¸ªé¡µé¢
isErrorPageï¼å½å页颿¯ä¸ä¸ªå¤çé误ç页é¢
2.includeæä»¤
页é¢å å«ï¼éæå å«ï¼æä»¤ï¼å¯ä»¥å°ä¸ä¸ªjsp页é¢å å«å°å¦ä¸ä¸ªjsp页é¢ä¸
æ ¼å¼ï¼<%@ include file="被å å«çæä»¶å°å"%>
3.taglibæä»¤
å¨jsp页é¢ä¸å¼å ¥æ ç¾åºï¼jstlæ ç¾åºãstruts2æ ç¾åºï¼
æ ¼å¼ï¼<%@ taglib uri="æ ç¾åºå°å" prefix="åç¼"%>
4.JSPå ç½®/éå¼å¯¹è±¡
jspè¢«ç¿»è¯æservletä¹åï¼serviceæ¹æ³ä¸æ9个对象å®ä¹å¹¶åå§å宿¯ï¼æä»¬å¨jspèæ¬ä¸å¯ä»¥ç´æ¥ä½¿ç¨è¿9个对象ã
åç§° |
ç±»å |
æè¿° |
out |
javax.servlet.jsp.JspWriter |
ç¨äºé¡µé¢è¾åº |
request |
javax.servlet.http.HttpServletRequest |
å¾å°ç¨æ·è¯·æ±ä¿¡æ¯ï¼ |
response |
javax.servlet.http.HttpServletResponse |
æå¡å¨å客æ·ç«¯çååºä¿¡æ¯ |
config |
javax.servlet.ServletConfig |
æå¡å¨é ç½®ï¼å¯ä»¥åå¾åå§ååæ° |
session |
javax.servlet.http.HttpSession |
ç¨æ¥ä¿åç¨æ·çä¿¡æ¯ |
application |
javax.servlet.ServletContext |
ææç¨æ·çå ±äº«ä¿¡æ¯ |
page |
java.lang.Object |
æå½å页é¢è½¬æ¢åçServletç±»çå®ä¾ |
pageContext |
javax.servlet.jsp.PageContext |
JSPç页é¢å®¹å¨ |
exception |
java.lang.Throwable |
表示JSP页颿åççå¼å¸¸ï¼å¨éè¯¯é¡µä¸æèµ·ä½ç¨ |
被翻è¯åçservletå¨Tomcatçworkç®å½æ¾index_jsp.javaï¼è¿9个对象é½å¨servletæ¹æ³ä¸å建äºã
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
final javax.servlet.jsp.PageContext pageContext;
javax.servlet.http.HttpSession session = null;
java.lang.Throwable exception = org.apache.jasper.runtime.JspRuntimeLibrary.getThrowable(request);
if (exception != null) {
response.setStatus(javax.servlet.http.HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
final javax.servlet.ServletContext application;
final javax.servlet.ServletConfig config;
javax.servlet.jsp.JspWriter out = null;
final java.lang.Object page = this;
javax.servlet.jsp.JspWriter _jspx_out = null;
javax.servlet.jsp.PageContext _jspx_page_context = null;
try {
response.setContentType("text/html; charset=ISO-8859-1");
pageContext = _jspxFactory.getPageContext(this, request, response,
"/error.jsp", true, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
session = pageContext.getSession();
out = pageContext.getOut();
_jspx_out = out;
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
out = _jspx_out;
if (out != null && out.getBufferSize() != 0)
try { out.clearBuffer(); } catch (java.io.IOException e) {}
if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
else throw new ServletException(t);
}
} finally {
_jspxFactory.releasePageContext(_jspx_page_context);
}
}
}
1.out对象
outçç±»åï¼JspWriter
outä½ç¨å°±æ¯æ³å®¢æ·ç«¯è¾åºå 容----out.write()
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
aaaaaaaaaaa
<%
out.write("bbbbbb");
response.getWriter().write("ccccc");
%>
<%="ddddddddd" %>
</body>
</html>
页é¢è¾åºccccccc aaaaa bbbbbbb dddddd
outç¼å²åºé»è®¤8kbãå¯ä»¥è®¾ç½®æ0ï¼ä»£è¡¨å ³éoutç¼å²åºï¼å å®¹ç´æ¥åå°responsç¼å²å¨
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1" buffer="0kb" %>
页é¢è¾åºaaaaaaaa bbbbbb cccccc dddddddd
2.pageContext对象
jsp页é¢çä¸ä¸æå¯¹è±¡ï¼ä½ç¨å¦ä¸ï¼
page对象ä¸pageContextå¯¹è±¡ä¸æ¯ä¸åäº
1ï¼pageContextæ¯ä¸ä¸ªå对象
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)
pageContextå¯ä»¥åæå®çå ¶ä»åä¸ååæ°æ®
setAttribute(String name,Object obj,int scope)
getAttribute(String name,int scope)
removeAttrbute(String name,int scope)
findAttribute(String name)
---便¬¡ä»pageContextåï¼requeståï¼sessionåï¼applicationåä¸è· å屿§ï¼å¨æä¸ªåä¸è·ååå°ä¸å¨åå寻æ¾
å大ä½ç¨åçæ»ç»ï¼
pageåï¼å½åjsp页é¢èå´
requeståï¼ä¸æ¬¡è¯·æ±
sessionåï¼ä¸æ¬¡ä¼è¯
applicationåï¼æ´ä¸ªwebåºç¨
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
//使ç¨pageContextårequestä¸åæ°æ®
request.setAttribute("name", "zhangsan");
pageContext.setAttribute("name", "sunba");
pageContext.setAttribute("name", "lisi", PageContext.REQUEST_SCOPE);
pageContext.setAttribute("name", "wangwu", PageContext.SESSION_SCOPE);
pageContext.setAttribute("name", "qianqi", PageContext.APPLICATION_SCOPE);
%>
<%=request.getAttribute("name") %>
<%=pageContext.getAttribute("name",PageContext.REQUEST_SCOPE) %>
<!-- findAttributeä»å°å°å¤§æç´¢åçèå´ä¸name -->
<!-- pageå(PageContext对象)<requestå<sessionå<applicationå -->
<%=pageContext.findAttribute("name") %>
</body>
</html>
2ï¼å¯ä»¥è·å¾å ¶ä»8大éå¼å¯¹è±¡
ä¾å¦ï¼ pageContext.getRequest() getResponse()....
<%
pageContext.getRequest();
pageContext.getOut();
//method(request,response,session,pageContext);
//ä¼ å¤ä¸ªå¯¹è±¡ï¼åªéè¦ä¼ ä¸ä¸ªpageContextå³å¯
method(pageContext);
%>
5.JSPæ ç¾ï¼å¨ä½ï¼
1.页é¢å å«ï¼å¨æå å«ï¼ï¼<jsp:include page="被å å«ç页é¢"/>
卿å å«ï¼
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>this is include1 page</h1>
<!-- å
å«include2 -->
<jsp:include page="/include2.jsp"></jsp:include>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>this is include2 page</h1>
</body>
</html>
include1_jsp.java
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
out.write("\r\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\t<h1>this is include1 page</h1>\r\n");
out.write("\t<!-- å
å«include2 -->\r\n");
out.write("\t");
org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response, "/include2.jsp", out, false);
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");
}
include2_jsp.java
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
out.write("\r\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\t<h1>this is include2 page</h1>\r\n");
out.write("</body>\r\n");
out.write("</html>");
}
éæå å« ï¼
å å°ä¸¤ä¸ªjsp页é¢å 容æ¼åå¨ä¸èµ·ï¼ç¶ååç¿»è¯æservletã
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>this is include1 page</h1>
<%@ include file="/include_2.jsp" %>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>this is include2 page</h1>
</body>
</html>
include_005f1_jsp.java
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {
out.write("\r\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\t<h1>this is include1 page</h1>\r\n");
out.write("\t");
out.write("\r\n");
out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n");
out.write("<html>\r\n");
out.write("<head>\r\n");
out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\r\n");
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("\t<h1>this is include2 page</h1>\r\n");
out.write("</body>\r\n");
out.write("</html>");
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");
}
2.请æ±è½¬åï¼<jsp:forward page="è¦è½¬åçèµæº" />
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<jsp:forward page="/forward2.jsp"></jsp:forward>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>xxxxxxxxxxxxxxxx</h1>
</body>
</html>