广州网站开发外包哪家好,wordpress 文章 新窗口打开,移动端显卡,wordpress 优酷去广告插件一、引子
很多读者可能听过JSP#xff0c;并且知道这是一门过时的技术了。在Spring#xff0c;SpringBoot已经成为主流的今天#xff0c;笔者为什么还要介绍JSP的相关内容呢#xff1f;笔者常常提到一个概念#xff1a;理解一门技术#xff0c;要理解这个技术为什么产生…一、引子
很多读者可能听过JSP并且知道这是一门过时的技术了。在SpringSpringBoot已经成为主流的今天笔者为什么还要介绍JSP的相关内容呢笔者常常提到一个概念理解一门技术要理解这个技术为什么产生是解决了当时的什么问题这样能帮助我们将不断迭代的技术连贯起来。那么JSP是为什么产生的呢我们一直使用Servlet来完成JavaWeb的开发有何不妥JSP又是为何过时的或者说JSP又存在哪些缺陷阅读完笔者这几篇关于JSP的文章读者将会更加明白JavaWeb的技术更迭历程对全局有一个更深的理解。让我们正式开始。
二、概念
JSPJava Server PagesJava服务端页面。是一种动态的网页技术其中既可以定义HTMLJSCSS等静态内容还可以定义Java代码的动态内容。简单而言JSP HTML Java。
三、再理解
为什么会产生JSP这门技术呢我们知道在JSP产生之前我们一直使用原生的Servlet来进行Java Web的开发。请读者阅读前置知识Servlet基本概念及相关文章。 当我们需要展示一个HTML页面时我们需要在Servlet页面中用PrintWriter不断写标签来达到拼成一个HTML页面的效果
writer.write(html)
writer.write(body)
writer.write(username)
writer.write(/body)
writer.write(/html)
毫无疑问这会使我们的代码可读性非常之差而且难以维护。而JSP文件允许我们在文件中直接使用HTML标签也可以直接使用Java代码大大简化了开发。
四、快速使用
JSP的使用非常简单
导入JSP坐标编写HTML标签和Java代码
!-- https://mvnrepository.com/artifact/commons-io/commons-io --dependencygroupIdcommons-io/groupIdartifactIdcommons-io/artifactIdversion2.6/versionscopeprovided/scope/dependency
html
headtitlehello jsp!/title
/head
bodyh1hello jsp~/h1%out.println(hello jsp~);%
/body
/html我们启动项目访问该jsp放在webapp目录下可以直接访问页面上将会展示前端标签元素控制台将会打印out.println里的话。
五、JSP原理
JSP的本质就是一个Servlet。JSP被访问时由JSP容器Tomcat将其转换为Servlet类Java文件转换成的类最终是继承了HttpServlet抽象类的一个子类类中包含一个_jspService()方法这个可以理解成Servlet抽象类的service()方法。
六、JSP脚本
JSP脚本是指用于在JSP页面内定义Java代码。脚本有以下几类
%...% 内容会放到_ jspService()方法内%...% 内容会放到out.println()中会打印在客户端页面%!...% 内容会放到_jspService()方法之外直接被类包含作为成员变量或成员方法。
七、使用JSP脚本实例
% page importcom.byhuang.pojo.Brand %
% page importjava.util.List %
% page importjava.util.ArrayList %% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitlehello jsp!/title
/head
bodyh1hello jsp~/h1table border1 cellspacing0 width800trth序号/thth品牌名称/thth企业名称/thth排序/thth状态/thth操作/th/tr%ListBrand brands new ArrayList();out.println(hello jsp~);brands.add(new Brand(三只松鼠, 三只松鼠, 100, 三只松鼠好吃不上火, 1));brands.add(new Brand(优衣库, 优衣库, 10, 优衣库舒服, 0));brands.add(new Brand(小米, 小米, 1000, 小米, 1));for (int i 0; i brands.size(); i) {Brand brand brands.get(i);%tr aligncentertd%brand.getName()%/tdtd%brand.getEntName()%/tdtd%brand.getOrder()%/tdtd%brand.getRemark()%/td%if (brand.getStatus() 1) {%td%启用%/td%} else {%td%禁用%/td%}%tda href#修改/aa href#删除/a/td/tr%}%/table/body
/html展示结果如下 八、总结
从上面的示例代码中我们可以看出JSP的使用有诸多缺点
书写麻烦我们写一个简单的列表展示已经废了很大的力气了阅读困难后期难以维护占用内存由于.jsp文件会转换为.java文件与.class文件占用磁盘不利于团队协作前后端没有分离
针对以上问题我们是否有解决手段呢又是否会有新的技术迭代产生请读者关注接下来的Java Web开发文章