java的jsp_Java Web之JSP

什么是JSP?

JSP就是一个可以写Java代码的HTML页面

JSP是什么?

JSP是Servlet,JSP的本质就是Servlet

Tomcat的web.xml文件下有这样几段代码:

8430914a32a6ae1f93f3e67aa5fcb83a.png

看到下面的通配符了没? *.jsp 不论是什么,只要结尾是.jsp的都会去访问 JspServlet 所以JSP的本质就是Servlet

写一个JSP之后,会生成.java和.class文件,看看里面其实jsp继承了HttpServlet,再看看它的service方法,里面居然是out.write.......................

f10a8a0089d7de00603993a6acacfa5f.png

bbac06dcb13db83f10b04ccd6f09ef45.png

所以,JSP的本质很清楚的。Servlet里面写输出HTML很恶心,很麻烦。所以Java搞了一个JSP,让我们在HTML里面写Java,感觉是很爽,其实底层还是Java在out.Write很恶心的代码,只不过我们开发人员不写了而已

JSP的基础语法

来介绍一下JSP的基础语法:

//这里面可以写Java代码,但是存在于jspServlet的service方法内

String name="许嵩";%>

//这里可以写Java代码,但是存在于jspServlet类中作为成员变量,可以写方法和修饰符

private String name="只有我能写private";public voidVae(){};%>

两个注释,两个写Java代码的,没了

现在学到这里,我希望使用JSP来做一个事情,我希望定义一个变量,然后判断这个变量的大小来在网页上输出一句话,我们来体验一下

JSP的恶心之处

User: VaeDate:2019/1/7

Time:18:02

Tochange this template use File | Settings | File Templates.--%>

Title

//这里面可以写Java代码,但是存在于jspServlet的service方法内Stringname="许嵩";%>

Integernum=10;if(num> 5) {%>这个数字大于5这个数字小于5

%>这个数字等于5

%>

4e4c0fea2e1a22ce619b343351215e21.png

结果当然是ok的,真是恶心的写法。。。。。。。。。。。

JSP的三大指令

1.page

2.include

3.taglib

一、page指令

40c593325b9279b3a49f5761cbd36643.png

除了上面的page指令还有错误页面

可以写一个这个,然后新建一个jsp来作为error页面

Stringmsg=exception.getMessage();%>出现异常信息:

那我很多的JSP,我不想每个都写这个errorpage,我可以新建一个全局化的错误页面,在WEB-INF文件夹下的web.xml里面配置一下

404

/jspDemo/404.jsp

500

/jspDemo/404.jsp

然后把JSP里面的errorPage的指令删了就可以了,否则就近原则会选择那个的,现在就可以使用我们全局的错误页面了

d1004d6a5f5ab4a748fd6fc7a194af20.png

二、include指令

这个include指令主要是来解决JSP的静态包含和动态包含的。假如我们的网页有头部,中间部分和底部。那么我们顶部和底部呢其实是不变的,变化的只有我们中间的那一部分而已。所以这里我们要对网页进行模块划分一下。这个其实和我们讲的frameset差不多

b47aed5d6c74f25bdbfa1519f5065e84.png

先来看看静态包含的代码:

User: VaeDate:2019/1/7

Time:20:37

Tochange this template use File | Settings | File Templates.--%>

Title


我是中间

头部:

我才是头

底部:

我才是脚

可能你们觉得,我的头部和底部的JSP为啥删的只剩下文字和page指令了。其实是这样的,静态包含的include,相当于把其他的JSP复制粘贴过来,如果我不删除多余的

标签啥的,全都会复制过来的,一团糟。所以我删了

试试

8529f71b3ce1e017acc5b11cc5024f91.png

动态包含其实差不多

User: VaeDate:2019/1/7

Time:20:37

Tochange this template use File | Settings | File Templates.--%>

Title


我是中间

就是多个参数传递

三、taglib

要先导入jar包,我是使用maven直接导入的 ,使用很简单,先引入标签库

9ff93044db60718a76636ee46aa5dfce.png

maven直接导入就可以,如果还不行的话,可以把jstl包放到你的WEB-INF下面的lib文件夹里,然后就可以了,jstl的jar包在你的maven仓库里面,搜索一下就有了

JSP的九大内置对象和四大作用域

所谓的内置对象就是可以在里面直接写的,有9个。有的没有提示需要自己手打,例如out.write

97b38d94db1b5d67412cc3b28caba620.png

四大作用域,和Servlet的三大作用域差不多

f3d8530a4c349605675c353954652337.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值