JAVAWeb -- jsp 正式进入java服务器端
一.JSP
Java Servlet Pages : java服务器端页面,也和servlet一样,用于动态web技术
最大的特点:
写jsp就像在写在写html
区别:
Html只给用户提供静态数据
jsp页面中可以嵌入Java代码,为用户提供动态数据
二.JSP原理
思路:JSP到底是怎么执行的
代码层面,和HTML没有区别
需求去看服务器内部工作原理
a. tomcat中有一个work目录
b. IDEA在使用tomcat的时候会生成一个work目录
进入了这个目录后,可以发现,jsp转换为了一个java文件
总结:浏览器不管怎么请求jsp页面,实际上就是请求servlet
JSP也会最终转化为Java代码
JSP本质上就是一个servlet:jsp的头文件继承了HTTPservlet
1.请求判断
1 2 3 4 5 6 7 | //初始化 <br>public void _jspInit() { } //销毁 public void _jspDestroy() { } //Jspservice public void _jspService(HttpServletRequest request, HttpServletResponse response) |
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 当前页面
javax.servlet.jsp.JspWriter _jspx_out = null; //请求
javax.servlet.jsp.PageContext _jspx_page_context = null; //响应
3.输出页面前增加的代码
1 2 3 4 5 6 7 8 9 | 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;<br> //这些对象都可以在jsp中直接使用,这是已经编译好的 |
在jsp页面中:
只要是Java代码都会原封不动的输出;
如果是HTML代码,就会被转换为:
out.write("<html>\n");
实际上就是Java的输出:然后被写到前端
服务器响应客户端的JSP原理:
1.用户通过浏览器向服务器申请了jsp资源
2.服务器加载所需要的jsp页面
3.将jsp页面转换为Java文件:XXX_jsp.java
4.编译转换过来的Java文件
5.变成可执行文件:XXX——jsp.class
6.可执行Java文件响应到服务器中
7.服务器这时候响应客户,返回已经编译好了的Java文件,只不过是以网页形式
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!