JSP原理
2021/5/22 10:29:24
本文主要是介绍JSP原理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JSP原理
- 什么是JSP
- JSP原理
- 流程图
什么是JSP
Java Server Page JAVA服务器端页面,也和Servlet一样,用于动态Web技术
最大的特点:
- 写JSP就像写HTML
- 区别:
HTML中只给用户提供静态的数据;
JSP页面中可以嵌入JAVA代码,为用户提供动态数据;
JSP原理
思路:JSP到底是怎么执行的?
- Tomcat中有一个work目录;
- IDEA使用Tomcat会在IDEA的tomcat中生产一个
而想要在IDEA中找到其工作目录,需先在配置文件中设置路径:
在IDEA工作目录中找到idea.properties文件,使用编辑器打开该文件,修改下列语句
该语句默认是被注释掉的,这里我取消注释后,将其路径修改我的自己设置的路径(注:该路径在系统中必需已经存在,否则,idea启动会报错)。
而后重启IDEA,新建一个web项目,通过tomcat启动该web项目
启动之后自动弹出浏览器界面
此后我们查找IDEA下tomcat创建的临时工作目录
C:\Users\30869.IntelliJIdea\system\tomcat\d0ce923c-c08e-43a7-876c-34572a3e37e1\work\Catalina\localhost\session_cookie_war\org\apache\jsp- 这个目录的前部分C:\Users\30869.IntelliJIdea\system,与上面的配置文件设置的文件路径一致
- 而session_cookie_war为我的项目名称
在该路径下,我们可以看到,产生了两个临时文件
通过观察,理解概念:浏览器向服务器发送请求,不管访问上面资源,其实都是在访问Servlet!
JSP最终也会转换成一个java类
打开index_jsp.java文件,观察源码
可以看到index_jsp继承了org.apache.jasper.runtime.HttpJspBase
观察源码
发现实现了Servlet接口
JSP的本质就是一个Servlet
public interface Servlet { //初始化 void init(ServletConfig var1) throws ServletException; //服务 void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException; //销毁 void destroy(); }
1、判断请求
2、内置了一些对象
final javax.servlet.jsp.PageContext pageContext; //页面上下文 javax.servlet.http.HttpSession session = null; //session final javax.servlet.ServletContext application; //applicationContxt final javax.servlet.ServletConfig config; //config javax.servlet.jsp.JspWriter out = null; //out final java.lang.Object page = this; //当前页 final javax.servlet.http.HttpServletRequest request //请求 final javax.servlet.http.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页面直接使用
4、然后输出
out.write("<html>\n"); out.write("<body>\n"); out.write("<h2>Hello World!</h2>\n"); out.write("</body>\
在JSP页面中;
只要是JAVA代码就会原封不动的输出;
如果HTML代码,就会被转换成:
out.write("<html>\n");
这样的格式渲染到前端。
流程图
我们可以通过修改JSP文件中的代码,通过查看临时文件,更加深入理解该过程,学无止尽,冲冲冲
这篇关于JSP原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Vue新手入门教程:从零开始学习Vue框架
- 2024-11-23如何集成Ant Design Vue的图标
- 2024-11-23如何集成Ant Design Vue图标
- 2024-11-23使用vue CLI快速搭建Vue项目教程
- 2024-11-23Vue CLI多环境配置简单教程
- 2024-11-23Vue3入门教程:轻松搭建你的第一个Vue3应用
- 2024-11-23Vue3+Vite快速上手指南
- 2024-11-23Vue3阿里系UI组件入门指南
- 2024-11-23Vue3的阿里系UI组件入门指南
- 2024-11-23Vue3公共组件入门教程