news 2026/5/17 0:27:44

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/5/12 12:22:17

BetterNCM Installer:小白也能轻松上手的网易云音乐增强神器

BetterNCM Installer&#xff1a;小白也能轻松上手的网易云音乐增强神器 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 厌倦了网易云音乐单调的界面和有限的功能&#xff1f;想要更丰…

作者头像 李华
网站建设 2026/5/13 1:31:32

Kotaemon与向量数据库的高效集成方案

Kotaemon与向量数据库的高效集成方案 在企业智能对话系统日益复杂的今天&#xff0c;一个核心挑战始终存在&#xff1a;如何让AI既“知道得准”&#xff0c;又“答得有据”&#xff1f;大模型本身虽博学&#xff0c;却容易“胡说八道”&#xff1b;传统客服机器人虽稳定&#x…

作者头像 李华
网站建设 2026/5/16 20:00:45

Kotaemon框架的日志监控与运维建议

Kotaemon框架的日志监控与运维建议 在企业级智能对话系统日益复杂的今天&#xff0c;一个看似简单的用户提问背后&#xff0c;可能涉及知识检索、工具调用、多轮状态维护和生成模型推理等多个环节。当系统突然出现响应延迟或无响应时&#xff0c;如果没有清晰的运行轨迹记录&am…

作者头像 李华
网站建设 2026/5/15 2:49:35

23、深入探索SAMBA文件共享与网络打印管理

深入探索SAMBA文件共享与网络打印管理 1. SAMBA文件共享管理 在VMware配置的 smb.conf 文件中,有两个部分控制着客户端对文件系统的访问,分别是 [homes] 和 [HostFS] 。 [homes] 部分 :用于控制对用户主目录的访问,其配置示例如下: [homes]comment = Home dir…

作者头像 李华
网站建设 2026/5/16 20:39:39

静态住宅IP防封的原理

静态住宅IP被视为普通家庭用户的真实IP地址&#xff0c;其流量特征与正常用户行为一致。相较于数据中心IP或动态IP&#xff0c;静态住宅IP更难被平台识别为爬虫或自动化工具&#xff0c;从而降低被封禁的风险。低检测优先级 平台对住宅IP的检测优先级较低。住宅IP通常用于日常上…

作者头像 李华
网站建设 2026/5/12 0:26:30

2、拉格朗日插值法在量子电路参数偏移规则中的应用

拉格朗日插值法在量子电路参数偏移规则中的应用 1. 拉格朗日插值与参数偏移规则基础 在量子计算中,拉格朗日插值法可用于推导参数偏移规则。首先,有如下方程组: [ \begin{cases} d_1 \sin(\frac{\alpha_1}{2}) + d_2 \sin(\frac{\alpha_2}{2}) = \frac{1}{4}\ d_1 \si…

作者头像 李华