JSP底层原理详解
1、JSP1.1、什么是JSPJava Server Pages: Java服务端页面,也和Servlet一样,用于动态web技术最大的特点写JSP就像在写HTML一样区别:HTML只给用户提供静态的数据JSP页面中可以嵌入JAVA代码,为用户提供动态数据1.2、JSP原理思路:JSP到底怎么执行的?代码层面没有任何问题服务器内部工作tomcat中有一个work目录;在IDEA中使用Tomcat的
·
1、JSP
1.1、什么是JSP
Java Server Pages: Java服务端页面,也和Servlet一样,用于动态web技术
最大的特点
- 写JSP就像在写HTML一样
- 区别:
- HTML只给用户提供静态的数据
- JSP页面中可以嵌入JAVA代码,为用户提供动态数据
1.2、JSP原理
思路:JSP到底怎么执行的?
- 代码层面没有任何问题
- 服务器内部工作
- tomcat中有一个work目录;
- 在IDEA中使用Tomcat的会在IDEA的Tomcat中生成一个work目录
页面转变成了Java程序
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!
JSP最终也会被转换成为一个Java类
JSP本质上就是一个Servlet
//初始化
public void _jspInit() {
}
//销毁
public void _jspDestroy() {
}
//JSPService
public void _jspService(.HttpServletRequest request,HttpServletResponse
response)
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;
以上的这些个对象我们可以在JSP页面中直接使用!
对JSP的理解
用户需要通过电脑上网,上网的本质是访问一台服务器,服务器里面有多个web容器(Tomcat中有很多网站),它会去判断你的请求,如果您的请求是jsp会给你一个jsp页面,jsp页面不能直接使用,它会给你一个转换,将jsp页面转换为Java文件—xxx_jsp.java,得到这个文件后要运行它,将它编译,xxx_jsp.class,编译到class后将其放到服务器中,用户真正拿到的就是服务器处理完毕的class对象,这个对象就是一个Servlet
只要是 JAVA代码就会原封不动的输出;
如果是HTML代码,就会被转换为:
1 out.write("<html>\r\n");
这样的格式,输出到前端!
更多推荐
已为社区贡献8条内容
所有评论(0)