Java之jsp的一些基础运用

jsp的基础知识

jsp(Java Server Page)是一个模板引擎,除了jsp还有thymeleaf,freemark,velocity。作用就是简化开发,封装了servlet响应html标签的繁琐的代码。其实jsp就是一种特殊的servlet,是一个简化的Servlet设计,它实现了在Java中使用HTML标签,JSP和Servlet一样,是在服务器端执行的。
jsp为什么说是简化的servlet呢?简化到底体现在哪?
比如作为一个html标签,我们要在页面上显示一行简单的字符串:
那么此时仅仅输出简单的一行字,就要编写这么多的代码,显得太过于繁琐,那么此时就有了jsp的诞生,从而让我们避免繁琐的代码
那么此时仅仅输出简单的一行字,就要编写这么多的代码,显得太过于繁琐,那么此时就有了jsp的诞生,让jsp代替我们写这些繁琐的代码。那么用jsp输出同样一行文字需要认为写多少代码呢?看一下下面这段代码
在这里插入图片描述
同样是输出“哈哈哈,我又来了!”这一行简单的文字,对比起来,我们的jsp就便捷很多。
注意
jsp相比servlet要更加便于开发,但是耦合度高,代码非常不清晰,后续的维护也会更加复杂。

jsp的三大指令

1.page
作用:用于声明jsp,(jsp=html+page指令)
page指令的属性:

  1. contentType=“text/html;charset=UTF-8” 指定jsp文件的mime类型和字符集
  2. import=“java.util.*” 为jsp的脚本中的Java代码去导包
  3. errorPage=“500.jsp” 如果当前页面发生异常,就跳转到500.jsp中
  4. isErrorPage=“true” 承认自己是不是错误处理页面,如果为true就可以使用exception内置对象
    2.taglib
    作用:引入外部标签库,通常用于引入jstl标签
    3.include
    作用:静态包含 – 两个jsp之间使用静态包含,会被tomcat服务器编译成一个servlet,可以实现脚本互通(数据互通)。

那么脚本互通体现在哪呢?我们看下面两段代码:
a.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%@include file="b.jsp"%>
<%
    System.out.println(name);
%>
</body>
</html>

b.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String name="曹操";
%>

当我们访问a.jsp时,控制台可以输出“曹操”,即我们在b.jsp中输入数据name,利用include指令在a.jsp中调用并输出。

内置对象

九个内置对象:
四个域对象:pageContext、request、session、application

五个其它对象:response(响应)、out(输出)、page(当前页面)、exception(异常)、config(获取服务器的配置信息)

四大域对象的使用
1.pageContext
最小的域对象,使用范围仅限于当前页面。
存数据:pageContext.setAttribute()
页面输出:pageContext.getAttribute() out.write()

2.request
使用范围仅限于转发之间的页面。
存数据:request.setAttribute()
页面输出:request.getAttribute() out.write()

3.session
范围是一次会话,浏览器或服务器不关闭称为一次会话。
存数据:session.setAttribute()
页面输出:session.getAttribute() out.write()

4.application
范围最大的域对象,只要服务器不关即可,浏览器随意。
存数据:application.setAttribute()
页面输出:application.getAttribute() out.write()
简化版的页面输出
<%=域对象.getAttribute()%>

注释方法
<%-- jsp注释 --%> 该注释中的java脚本不会被执行
<-- html注释 --> 该注释中的java脚本会被执行,但是执行结果会被注释

jsp发展史和mvc

jsp发展史
第一阶段:只有servlet,如果响应动态资源,必须使用response.writer()去输出大量的 标签。
第二阶段:jsp出生和繁荣,因为jsp的简洁,此时完全依赖jsp,省略了servlet,当然上面提到的jsp缺点依然存在。
第三阶段:mvc模式,即jsp和servlet共存,jsp中只有少量的java代码,主要还是用于页面展示,核心功能放在servlet中(这个阶段jsp已经呈现出日渐没落的趋势)。

mvc
一种软件设计典范
m:model 模型层,泛指service层,dao层和javaBean实体类
v:view 视图层,使用jsp展示数据
c:controller 控制层,使用servlet处理请求和响应

关于jsp的分享就到这了,如有其他问题,还请各位大佬多多指正。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值