JSP原理剖析

什么是JSP

Java Server Pages:Java服务器端页面,也和Servlet一样,用于开发动态Web技术!

最大特点:

  • 写JSP就像在写HTML
  • 区别:HTML只给用户提供静态的数据,而JSP页面可以嵌入JAVA代码,为用户提供动态数据

JSP原理

思路:JSP到底是怎么执行的

1.代码层面是没有任何问题

2.服务器内部工作

  • tomcat中有一个work目录;
  • IDEA中使用Tomcat会在tomcat中产生work目录

  • 我电脑的地址:C:\Users\Administrator\.IntelliJIdea2018.2\system\tomcat\Unnamed_javaweb-session-cookie\work\Catalina\localhost\ROOT\org\apache\jsp

发现页面转变成了Java程序!

 

浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!

JSP最终也会被转换成为一个JAVA类

JSP本质上就是一个Servlet

//初始化
public void _jspInit() {
}

//销毁
protected void _jspDestroy() {
}

//JSPService
public abstract void _jspService(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException;

1.判断请求

2.内置了一些对象

final javax.servlet.jsp.PageContext pageContext; //页面上下文
javax.servlet.http.HttpSession session = null;   //Session
final javax.servlet.ServletContext application;  //applicationContext
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页面中直接使用

 在JSP页面中:

只要是JAVA代码,就会原封不动的输出

如果是HTML代码,就会被转换为:

out.write("<html>\r\n");

这样的格式,输出到前端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GodAiro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值