JSP简介及基本语法

一、JSP简介

1. 概念
  JSP全名为Java Server Pages,其根本是一个简化的Servlet设计,它实现了HTML语法中的Java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
  JSP主要的作用是 简化HTML书写,同时动态生成页面。


2. JSP和Servlet的区别和联系

  • JSP的本质就是Servlet,JVM只能识别Java的类,不能识别JSP的代码,Web容器将JSP的代码编译成JVM能够识别的Java类;

  • JSP更擅长表现于页面显示,Servlet更擅长于逻辑控制。JSP是Servlet的一种简化,使用JSP只需要完成Controller层输出到客户端的内容如何在页面上显示,而Servlet是个完整的Java类,这个类的Service方法用于生成对客户端的响应;

  • Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来,而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件;

  • Servlet中没有内置对象,JSP中的内置对象都是必须通过HttpServletRequest对象、HttpServletResponse对象以及HttpServlet对象得到。


3. JSP工作原理

问题:JSP为什么可以直接编写html代码并且使用Java reqeust对象呢?

  • JSP之所以可以编写html代码,其实本质上也是类似使用Servlet直接输出的,如 out.write("当前时间:<span style='color:red'>"+curTime+"</span>")

  • JSP能直接使用request对象,是因为在JSP页面编写的Java代码经过编译后都在service方法内部,而在service方法之前就已经声明了request等对象了。

4. 与JS区别
 JS是JavaScript 的缩写,是一种基于对象的客户端脚本语言,在服务器端执行,与asp、php是同一个级别的。主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。JS可以直接嵌入到html代码中进行解析执行,能够产生很多动态的效果。


二、JSP基本语法

1. 注释

<!--- 这个是html注释,注释html代码 -->
<%-- 这个是jsp的注释,注释java代码 --%>

2. 脚本片段

格式:<%-- 脚本片段,java代码 --%>

<%-- 脚本片段 --%>
   <% for(int j = 0 ; j < 5 ;j++){%>
     Hello World!!!<br>
<%}%>

总结:在脚本片段中书写的Java代码,会翻译到java文件中的_jspService方法中


3. 脚本声明

格式:<%! 脚本声明,Java代码 %>

<%-- 脚本声明 --%>
<%! int i = 0 ;%>

总结:脚本声明书写的java代码会翻译在类的成员位置上

4. 脚本表达式

格式:<%= 表达式 %>
作用:代替response向页面输出内容

<%-- 脚本表达式 --%>
<%= "Hello world!" %>

总结:脚本表达式书写的Java代码,会被翻译到Java文件中的_jspService方法内,被out.print输出到页面


5. 企业动态开发实践

JSP本质是Servlet,即JSP和Servlet都可以开发动态资源,处理请求与响应,那以后到底使用JSP还是Servlet?

  • JSP:编写html布局代码方便,所以主要负责显示布局动态资源数据
  • Servlet:全部都是是Java代码,所主要主要负责产生动态资源数据

JSP与Servlet配合使用,用户请求Servlet负责从数据库获取数据,存储到域对象里面,之后跳转到JSP页面显示布局动态资源数据。

架构设计

三、JSP EL表达式 / JSTL核心标签库

JSP页面显示动态资源数据,页面会充斥着<% %>等元素,导致页面代码非常混乱,所以将页面上所有<% %>等全部使用非常简洁的技术代替,让JSP代码写起来简洁和统一:

  • 页面上的脚本表达式<%= java代码 %>,使用EL技术代替;

  • 页面上的脚本代码片段<% java代码; %>的循环、条件判断等,使用JSTL技术代替。

JSP – EL表达式及JSTL标签库


四、代码中使用JSP

1.

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
  • path=WebName (当前站点名称)
  • basePath= http://localhost:8080/WebName/

这样写的好处在于可以为当前的链接使用绝对路径,如:<a href="<%=basePath%>index.jsp">跳回首页</a>;在jsp页面还可以使用以下代码:<base href="<%=basePath%>" />,它指定了当前页面的默认地址为basePath,所以<a href="index.jsp">跳回首页</a>,即真实的跳转路径为:http://localhost:8080/WebName/index.jsp。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值