文章插图
来源 | 愚公要移山(ID:fdd_sxu_nwpu)
jsp技术作为曾经一度火爆的技术,在最近几年确实使用率越来越低了,这篇文章带你一块探究一下jsp的从生到死 。
jsp技术的诞生在很久很久以前,那时候我们的开发都是通过servlet来完成的,这个servlet是什么呢?我们先来认识一下:
servlet用JAVA语言编写的服务器端程序 。主要功能是和浏览器进行交互,生成页面展示 。
长下面这个样子:
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter;
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
}
}
我们可以看到前端所展示的页面,需要我们servlet去一个标签一个标签去生成,如果一个页面超级复杂,动不动几千行代码,那这个servlet效率也就太低了 。而且整个servlet代码也会十分臃肿而且可读性非常差 。这时候怎么办呢?sun公司很早就意识到了这个问题,于是便倡导很多公司一块来创建了一种能够动态生成html的新技术,不久之后jsp便诞生了 。有效率的解决了上面servlet所出现的问题 。
jsp的发展既然jsp技术能够解决刚刚servlet代码里面所出现的技术,我们来看一下是如何解决的:在这里我们举一个小例子,就是前端jsp向服务器servlet发送请求图书页面的功能 。
首先我们看一下servlet:
public class List_book extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//声明一个ArrayList.用来存放Book类中的数据
ArrayList<Book> list = new ArrayList<Book>;
for(int i=0;i<10;i++){
Book book = new Book;
book.setName(res.getString("name"+i));
book.setAuthor(res.getString("author"+i));
list.add(book);
}
//将list数据发送到.jap文件中
request.getRequestDispatcher("ListBook.jsp").forward(request, response);
}
}
我们会发现,现在的servlet没有一点html代码了 。我们只需要把数据交给jsp 。此时我们的页面展示就交给jsp来做了 。现在我们来看一下jsp长什么样子:<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%String path = request.getContextPath;%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="description" content="This is my page">
<script></script>
</head>
<body>
<% ArrayList list = (ArrayList) request.getAttribute("list"); %>
<h2 align = "center">图书列表</h2>
<table border = 1px align = "center">
<tr><th>图书名称</th><th>图书作者</th></tr>
<!-- 继续使用jsp语句 循环放入存放于list中的Book实体类中的数据 -->
<%
for(int i = 0;i<list.size;i++){
Book book =(Book)
list.get(i);%>
<tr><th><%=book.getName %></th><th><%=book.getAuthor%></th><tr>
}
%>
</table>
</body>
</html>
这就是jsp,我们可以在html页面中写一些java代码 。对于我们程序员来说,在开发当中静态的页面我们只需要用html和css写一些标签来展示即可,对于那些动态的部分我们就可以使用java代码 。那么jsp和servlet是不是就是这种协作的关系,本质上有什么区别呢?
其实jsp只是servlet的一种特殊形式,每一个jsp页面就是一个servlet实例,通俗一点的话来说:jsp就是servlet,只不过servlet把一些业务功能剥离开来交给了或者是形成了jsp 。明白了吧 。在我们的项目编译的时候就是把jsp编译成了servlet 。
推荐阅读
- 淘宝商品指数 淘宝搜索指数查询
- PHP 8 中新特性以及重大调整
- 茶树菇炒鸭蛋,茶树菇炒咸肉的做法
- 茶放久了还能喝吗,百香果加蜂蜜的孕妇能喝吗会有影响吗
- 深度分析:mybatis的底层实现原理,看完你学会了吗?
- 磁盘I/O性能优化的几个思路
- 茶道的生活美学,茶道与茶艺美学
- 如何使用 HTTP Headers 来保护你的 Web 应用
- 如何在mysql 造1亿条记录的大容量数据表?
- 茶树菇五花肉的做法,茶树菇炒五花肉的做法