JavaWeb-Jsp入门及原理

本文深入解析JSP(Java服务器页面)技术,介绍其作为动态Web技术的特点与原理。JSP允许在HTML中嵌入Java代码,提供动态数据,本质上是一个Servlet。文章详细解释了JSP如何在服务器内部转化为Java程序并执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSP

1.什么是JSp?

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

最大的特点:

  • 写Jsp就像在写Html。

  • 区别:

​ 1.Html只能给用户提供静态的数据。

​ 2.Jsp页面中可以嵌入Java代码,为用户提供,动态数据。

2.Jsp原理

思路;Jsp到底是怎么执行的?

  • 代码层面没有任何区别。

  • 服务器内部工作。

​ 1.本地Tomcat文件夹中会有一个work目录,

​ 2.IDEA中使用的Tomcat,会在IDEA的Tomcat中产生一个work目录。

我的路径:

C:\Users\Yuan\AppData\Local\JetBrains\IntelliJIdea2020.1\tomcat\Unnamed_javaweb-03-session-cookie\work\Catalina\localhost\javaweb_03_session_cookie_war\org\apache\jsp

在这里插入图片描述

页面变成了Java程序。

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

Jsp最后也会转变从一个Java类。

Jsp本质上是一个Servlet。

//初始化
public void _jspInit() {
}
//销毁
public void _jspDestroy() {
}
//JSPServlet
public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {
}

JSPServlet:

1.判断请求;

2.内置了一些对象:

final javax.servlet.jsp.PageContext pageContext;		//上下文页面
javax.servlet.http.HttpSession session = nu11; 			//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 当前页
HttpServletRequest request							    //请求
HttpServletResponce responce							//响应

3.输出页面前增加的代码:

response.setContentType("text/html; charset=UTF-8");		//设置响应页面类型
pageContext = _jspxFactory.getPageContext(this, request, response,null, false, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
out = pageContext.getOut();
_jspx_out = out;

4.以上的对象,我们可以直接在Jsp中使用。

流程图:

在这里插入图片描述

在Jsp页面中:

只要是Java代码,就会原封不动地输出;

只要是Html代码,就会被转化成:

out.write("<html>\r\n");

在这里插入图片描述
《成功的花》——冰心
成功的花,
人们只惊羡她现时的明艳!
然而当初她的芽儿,
浸透了奋斗的泪泉,
洒遍了牺牲的血雨!

参考文献

《【狂神说Java】JavaWeb入门到实战》

视频连接

2020.06.08

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值