您好,登录后才能下订单哦!
这篇文章主要讲解了“JSP有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JSP有什么作用”吧!
在SUN公司刚开始做java web方面的设计的时候,他们设计了servlet来作为服务器应用处理请求和响应,通过动态输出HTML代码的方式来向用户范围HTML页面,如下图所示:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
// Hello
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h2>W3Cschool618有课程优惠啦快来看看吧</h2>");
out.println("</body></html>");
}
但是这种方法并不合理。首先,做过前端开发的小伙伴都知道,一个前端页面动辄几百行代码,如果像上图一样进行输出,后端程序员就得一直复制黏贴这些前端代码,一个doGet()
方法里面将会有很多这样的代码,影响代码的整洁,容易扰乱程序员的逻辑,而且有些符号会被java编译器错误识别,这样的错误需要花费时间去调教(比如HTML文本中有双引号会导致字符串输出提前结束,后面的代码编译器编译不了,会抛出一堆错误)。这种在java代码里写html代码的方式饱受程序员诟病,恰逢PHP和ASP.Net的出现,他们使用更简单的方式来输出HTML代码(在HTML代码中嵌入响应语言来引入动态数据),很多程序员因此转而使用这两种语言,java也因此流失了一部分程序员。
SUN公司在看到了PHP等语言的成功经历后也搞了一个类似的技术,就是接下来要介绍的JSP。JSP的设计理念与servlet截然相反,servlet是在java代码中输出HTML页面,而JSP则是在HTML代码中嵌入java代码。使用JSP之后web开发者就不用将HTML页面复制到servlet了,这样既减少了servlet的代码量,使代码更加简洁易懂,而且也不用担心html中的符号被Java编译器错误识别了(下方代码应为.jsp
后缀)。
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<title>JSP - Hello World</title>
</head>
<body>
<h2> <% out.println("Hello World!");%>
</h2>
<br/>
<h3>学习jsp,就到java亿速云</h3>
</body>
</html>
相比于PHP而言,JSP可谓是背靠java这种大山,因为JSP在编译时会被编译成servlet,所以本质上它也是servlet,是解决了servlet的HTML输出的servlet。因为是servlet,所以在性能上比PHP这种动态类型语言更加优秀,也具有更高的易用性。
随着Ajax的提出,使用Ajax来进行静态页面的动态数据渲染逐渐成为主流。因为不管是PHP还是servlet,他们生成页面的速度永远没有静态的Apache服务器派发静态页面的速度快,而一个页面往往需要渲染的数据只有一小部分,这时候聪明的开发者提出了一种新想法:先让Apache服务器派发一个静态的页面,然后这个静态页面通过Ajax请求向服务器获取这部分需要渲染的数据,然后在浏览器进行渲染。以往服务器要生成一整个HTML页面,现在只需要生成这部分数据并以指定格式返回即可,大大减小了服务器的压力。然后很多小伙伴们会发现,返回指定格式的数据用servlet就能轻易做到,而HTML静态页面直接用html文件存放在静态的Apache服务器上,JSP需要做的工作,没有了。没错,这种操作促进了前后端的分离,也导致了JSP的衰落。
感谢各位的阅读,以上就是“JSP有什么作用”的内容了,经过本文的学习后,相信大家对JSP有什么作用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。