news 2026/3/10 22:59:38

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/3/6 18:48:20

11、Windows系统设备配置与工具安装全攻略

Windows系统设备配置与工具安装全攻略 在使用Windows系统的过程中,无论是进行磁盘分区、设备管理,还是安装相关工具,都有一系列的操作和注意事项。下面将为大家详细介绍。 磁盘分区与格式化 当你想要对新磁盘进行分区和格式化时,可按以下步骤操作: 1. 你应该会看到 “…

作者头像 李华
网站建设 2026/3/3 23:37:27

中小企业也能玩转大模型:Kotaemon低成本部署策略

中小企业也能玩转大模型&#xff1a;Kotaemon低成本部署策略 在生成式AI席卷各行各业的今天&#xff0c;越来越多的企业开始尝试将大语言模型&#xff08;LLM&#xff09;融入业务流程。但对于大多数中小企业来说&#xff0c;“上AI”并不等于“堆资源”。动辄几十万的云服务账…

作者头像 李华
网站建设 2026/3/2 21:41:33

2、《探索Ubuntu:开启 Linux 新旅程》

《探索Ubuntu:开启 Linux 新旅程》 1. 个人计算机使用历程 我的计算机使用之旅可追溯到 Commodore/Atari 时代。受当时 Alan Alda 电视广告的启发,我购买了第一台计算机——Atari 600XL,它配备了用于存储的磁带驱动器和 16KB 的内存,这在当时远超我的需求。那时,我大部分…

作者头像 李华
网站建设 2026/3/5 5:12:00

18、云量子战舰游戏开发与优化指南

云量子战舰游戏开发与优化指南 1. 游戏数据处理与响应处理 在云量子战舰游戏中,首先需要处理玩家选择的战舰和炸弹位置,并将这些数据发送到后端进行处理。以下是相关的代码片段: for ( var i = 0 ; i < 5 ; i++) {if ( $(#p1s + i).prop(checked) ) s1 += , + i;if ( …

作者头像 李华
网站建设 2026/3/9 11:01:15

基于微信小程序的校园食堂点餐系统【源码文末联系】

基于微信小程序的校园食堂点餐系统 两个角色&#xff08;管理员&#xff0c;用户&#xff09; 效果如下&#xff1a; 登陆页面用户首页面菜品信息页面购物车页面管理员首页面用户管理页面菜品信息管理页面优惠券页面研究背景 在数字化校园建设加速推进的当下&#xff0c;校园食…

作者头像 李华
网站建设 2026/3/10 4:17:14

EmotiVoice如何实现温柔、坚定等多种语气切换?

EmotiVoice如何实现温柔、坚定等多种语气切换&#xff1f; 在虚拟主播的直播中&#xff0c;一句“我相信你一定能做到”&#xff0c;如果用冷淡机械的声音说出&#xff0c;可能毫无感染力&#xff1b;而若以温柔且坚定的语调娓娓道来&#xff0c;则能瞬间拉近与观众的情感距离。…

作者头像 李华