news 2026/9/2 16:52:40

JSP原理详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JSP原理详解

什么是JSP?

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

最大的特点:

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

JSP原理

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

  • 代码层面没有任何问题
  • 服务器内部工作
    • tomcat中有一个work目录

work是tomcat服务器工作的目录

- IDEA中使用Tomcat会在IDEA的tomcat中生成一个work目录

在运行Tomcat项目的时候,会显示work目录在C盘中

实践步入类

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

JSP也会转换成java类

我们可以发现JSP的本质是HttpServlet

可以发现打开的index_jsp.java 其实是index.jsp 编写的内容,实际上都是由java类实现的,我们只需要编写简单的代码即可

// 初始化publicvoidjspInit(){}// 销毁publicvoidjspDestroy(){}JspServicepublicabstractvoid_jspService(HttpServletRequestvar1,HttpServletResponsevar2)throwsServletException,IOException;
  1. 判断请求方法
if(!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())){finaljava.lang.String_jspx_method=request.getMethod();if("OPTIONS".equals(_jspx_method)){response.setHeader("Allow","GET, HEAD, POST, OPTIONS");return;}if(!"GET".equals(_jspx_method)&&!"POST".equals(_jspx_method)&&!"HEAD".equals(_jspx_method)){response.setHeader("Allow","GET, HEAD, POST, OPTIONS");response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED,"JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS");return;}}
  1. 内置一些对象
finaljavax.servlet.jsp.PageContextpageContext;// 页面上下文javax.servlet.http.HttpSessionsession=null;// sessionfinaljavax.servlet.ServletContextapplication;// applicationContextfinaljavax.servlet.ServletConfigconfig;// configjavax.servlet.jsp.JspWriterout=null;// outfinaljava.lang.Objectpage=this;//page:当前javax.servlet.jsp.JspWriter_jspx_out=null;//请求javax.servlet.jsp.PageContext_jspx_page_context=null;//响应
  1. 输出页面前增加的代码
response.setContentType("text/html;charset=UTF-8");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;
  1. 以上的这些个对象我们可以在JSP页面中直接使用!

<%–通过尖括号百分号引起的代码就能写java代码–%>

<% %>

访问hello.jsp的时候,work目录下才会生成对应的hello.java

可以发现除了这里不一样,其他都是一样的

在JSP页面中;

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

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

out.wreite("<html>\r\n")

这样的格式,输出到前端!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 2:09:50

重新定义游戏效率:三月七小助手如何让星穹铁道体验更智能?

当忙碌的现代生活与繁复的游戏日常相遇&#xff0c;你是否曾为清体力、做任务而烦恼&#xff1f;当珍贵的时间被机械操作占据&#xff0c;游戏的核心乐趣又在何处&#xff1f;March7thAssistant正是为改变这一现状而生&#xff0c;这款专为崩坏&#xff1a;星穹铁道设计的智能辅…

作者头像 李华
网站建设 2026/9/2 14:36:37

利用Kotaemon构建金融行业智能投顾系统的技术路径

利用Kotaemon构建金融行业智能投顾系统的技术路径 在金融服务领域&#xff0c;一个看似简单的用户提问——“我适合买什么基金&#xff1f;”背后往往隐藏着复杂的决策链条&#xff1a;风险偏好、投资期限、市场环境、产品合规性……传统客服机器人只能提供标准化答案&#xf…

作者头像 李华
网站建设 2026/9/2 22:02:10

12、虚拟化环境下的系统配置与设备驱动使用指南

虚拟化环境下的系统配置与设备驱动使用指南 1. Cygwin 安装与使用 在安装 Cygwin 时,你可以选择要安装的软件包。如果你熟悉 Unix,其中很多软件包应该会很眼熟,尤其推荐安装 fileutils、sh - utils、textutils 和 bash,这些软件包包含了 Unix 系统 /bin 目录下常见的程序…

作者头像 李华
网站建设 2026/9/2 11:24:17

13、大规模并行量子计算软件的探索与应用

大规模并行量子计算软件的探索与应用 1. 引言 量子计算具备解决以往难以处理问题的潜力,例如大数分解、在大型搜索空间中高效寻找最优解、对量子力学系统进行建模和模拟,以及求解大型方程组等。然而,当前的量子计算机尚无法超越经典计算机,原因主要有以下几点: - 量子算…

作者头像 李华
网站建设 2026/9/2 22:50:03

21、量子退火在机器学习分类中的应用与优势

量子退火在机器学习分类中的应用与优势 1. 量子退火在不同领域的应用 1.1 癌症类型分类 研究人员利用 D-wave 2000Q 实现的量子退火进行癌症类型分类。在相关工作中,使用 D-wave 的量子退火子程序为受限玻尔兹曼机(RBM)生成模型期望,并与多种经典机器学习算法进行性能比…

作者头像 李华
网站建设 2026/9/2 1:45:49

Kotaemon支持SSO单点登录集成

Kotaemon支持SSO单点登录集成 在企业智能系统日益复杂的今天&#xff0c;用户每天面对的不仅仅是几十个应用入口&#xff0c;还有随之而来的密码疲劳、重复认证和权限混乱。尤其当智能对话代理如Kotaemon被部署到客服中心、知识库平台或内部协作工具中时&#xff0c;如果还要求…

作者头像 李华