JSP:简单入门学习
分类:
文章
•
2024-09-14 22:42:34
- 概念:
Java Server Pages: java服务器端页面
可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码
用于简化书写!!!
2.图解:
这是一个图解,上面的代码是需要通过java代码进行编写的动态资源,而下面的网页是静态资源,如果就用html页面是无法达到该效果的,但是,如果在java代码上,通过resp.getWriter().write(“xxx
”);这种形式的话,很显然代码量太大。故可以使用jsp页面来进行解决这个问题,因为它可以写java代码。
- 原理
JSP本质上就是一个Servlet。
图解:
如果找到了index.jsp则假设给它转换为-index.java文件,然后再编译生成.class文件。然后,给他返回浏览器,因为能给浏览器访问的.class文件的话,就是一个Servlet的继承或实现类,所以,jsp文件其实是一个Servlet。
实际测试:
一访问jsp就会生成work目录,这个目录下面放着jsp对应的java文件和class文件;
找到class类
打开java文件:
对于,HttpJspBase这个类,可以这么理解,因为tomcat是由apache公司写的,由于我们运行了tomcat。所以,这个类是实现的,通过查看tomcat的源代码 会发现他是继承了HttpServlet的。
所以它也算是一个Servlet的,其实jsp是apache公司为我们写的一个servlet ,原理也是通过resp.getWriter().write(“xxx
”);这种形式。只是apache公司给我们做了这种体力活(输出页面标签);所以,jsp可以用来简化代码的书写。
- JSP的脚本:JSP定义Java代码的方式(apache要求java写的格式)
- <% 代码 %>:定义的java代码,在service方法中。service方法中可以定义什么,该脚本中就可以定义什么。
- <%! 代码 %>:定义的java代码,在jsp转换后的java类的成员位置。(定义成员变量和方法,用的少,因为多线程安全问题)
- <%= 代码 %>:定义的java代码,会输出到页面上。输出语句中可以定义什么,该脚本中就可以定义什么。
测试如下:
- JSP的内置对象:
在jsp页面中不需要获取和创建,可以直接使用的对象
jsp一共有9个内置对象(因为tomcat已经声明过了)
今天学三个:
1.request
2.response
3.out:字符输出流对象,可以将数据输出到页面上。和response.getWriter()类似
response.getWriter()和out.write()的区别:
在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区数据,再找out缓冲区数据。
response.getWriter()数据输出永远在out.write()之前
测试如下:
结论:response先输出,out则按照定义顺序输出。