news 2026/4/23 14:03:26

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/4/18 23:41:57

22、VMware网络配置与服务指南

VMware网络配置与服务指南 1. VMnet桥接映射配置 在进行VMnet桥接映射配置时,可按以下步骤操作: 1. 选择一个VMnet接口(VMnet0,或VMnet2至VMnet7),并从接口名称右侧的下拉菜单中选择要与该接口关联的桥接。 2. 点击“确定”。 若要移除桥接适配器,重复上述过程,并…

作者头像 李华
网站建设 2026/4/20 15:55:26

EmotiVoice语音克隆安全性分析:隐私保护机制解读

EmotiVoice语音克隆安全性分析&#xff1a;隐私保护机制解读 在AI生成语音日益逼真的今天&#xff0c;一段几秒钟的录音就可能被用来“复制”你的声音——这不再是科幻电影的情节&#xff0c;而是现实中的技术能力。EmotiVoice 正是这样一款强大的开源语音合成系统&#xff0c;…

作者头像 李华
网站建设 2026/4/20 14:20:03

Kotaemon支持方言识别与应答尝试

Kotaemon支持方言识别与应答尝试 在智能客服系统日益普及的今天&#xff0c;一个现实问题逐渐浮现&#xff1a;当用户操着一口浓重的粤语、闽南话或四川方言拨通银行热线时&#xff0c;AI 能否真正听懂他们想表达什么&#xff1f;当前多数对话系统仍以标准普通话为核心训练语料…

作者头像 李华
网站建设 2026/4/17 1:38:29

BGP路径属性(包括分流)

配置R1interface GigabitEthernet0/0/0ip address 10.1.12.1 255.255.255.0#interface GigabitEthernet0/0/1ip address 10.1.13.1 255.255.255.0interface LoopBack0ip address 1.1.1.1 255.255.255.255#interface LoopBack1ip address 201.1.1.1 255.255.255.0#bgp 100peer 1…

作者头像 李华
网站建设 2026/4/22 13:02:17

EmotiVoice语音合成引擎为何成为开发者的新宠?

EmotiVoice语音合成引擎为何成为开发者的新宠&#xff1f; 在智能语音助手越来越“懂人心”的今天&#xff0c;你是否想过&#xff0c;它们的声音也可以像真人一样富有情绪起伏、甚至带着你的音色娓娓道来&#xff1f;这不再是科幻电影的桥段——随着EmotiVoice等新一代开源语音…

作者头像 李华
网站建设 2026/4/22 3:33:39

如何用Kotaemon构建可复现的检索增强生成应用?

如何用Kotaemon构建可复现的检索增强生成应用&#xff1f; 在企业智能化转型的浪潮中&#xff0c;越来越多团队尝试将大语言模型&#xff08;LLM&#xff09;引入客服、知识管理与内部协作系统。但现实往往不如预期&#xff1a;模型回答看似流畅却频频“一本正经地胡说八道”&a…

作者头像 李华