什么是Jsp
Java Server Page : Java服务器端页面,和Servlet一样,用于 动态Web
技术
最大的特点
- 语法和HTML类似
区别
- HTML只给用户提供静态的数据
- JSP页面可以嵌入Java代码,为用户提供动态数据
Jsp原理
Jsp是怎么执行的?
代码层面 :
代码语言:javascript复制 Hello World!
服务器内部 : tomcat中有一个work目录; idea使用tomcat的会在idea的tomcat中产生一个work目录 发现
D:Environmentapache-tomcat-9.0.0.M6workCatalinalocalhostROOTorgapachejsp 目录下的文件是java程序,jsp最终被转化成了java类
结论 :浏览器向服务器发送请求,不管访问什么资源,都是在访问servelt
代码语言:javascript复制public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
//--------------------
public abstract class HttpJspBase extends HttpServlet implements HttpJspPage
//--------------------
//初始化
public void _jspInit()
//销毁
public void _jspDestroy()
//JSPService
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException
判断请求
内置一些对象
代码语言:javascript复制final javax.servlet.jsp.PageContext pageContext;//页面上下文
final javax.servlet.ServletContext application;//application
final javax.servlet.ServletConfig config;//配置
javax.servlet.jsp.JspWriter out = null;//页面输出流
final java.lang.Object page = this;//页面本身
final javax.servlet.http.HttpServletRequest request
final javax.servlet.http.HttpServletResponse response
输出页面前增加的代码
代码语言:javascript复制response.setContentType("text/html; charset=UTF-8");//设置响应页面类型
pageContext = _jspxFactory.getPageContext(this, request, response,null, false, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
out = pageContext.getOut();
_jspx_out = out;
以上对象我们可以在JSP页面中直接使用
在jsp中:
- 只要是java代码,就会原封不动的输出
- html代码会被out.weite()方法写出