什么是JSP?
JSP就是一个可以写Java代码的HTML页面
JSP是什么?
JSP是Servlet,JSP的本质就是Servlet
Tomcat的web.xml文件下有这样几段代码:
看到下面的通配符了没? *.jsp 不论是什么,只要结尾是.jsp的都会去访问 JspServlet 所以JSP的本质就是Servlet
写一个JSP之后,会生成.java和.class文件,看看里面其实jsp继承了HttpServlet,再看看它的service方法,里面居然是out.write.......................
所以,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
%>
结果当然是ok的,真是恶心的写法。。。。。。。。。。。
JSP的三大指令
1.page
2.include
3.taglib
一、page指令
除了上面的page指令还有错误页面
可以写一个这个,然后新建一个jsp来作为error页面
Stringmsg=exception.getMessage();%>出现异常信息:
那我很多的JSP,我不想每个都写这个errorpage,我可以新建一个全局化的错误页面,在WEB-INF文件夹下的web.xml里面配置一下
404
/jspDemo/404.jsp
500
/jspDemo/404.jsp
然后把JSP里面的errorPage的指令删了就可以了,否则就近原则会选择那个的,现在就可以使用我们全局的错误页面了
二、include指令
这个include指令主要是来解决JSP的静态包含和动态包含的。假如我们的网页有头部,中间部分和底部。那么我们顶部和底部呢其实是不变的,变化的只有我们中间的那一部分而已。所以这里我们要对网页进行模块划分一下。这个其实和我们讲的frameset差不多
先来看看静态包含的代码:
User: VaeDate:2019/1/7
Time:20:37
Tochange this template use File | Settings | File Templates.--%>
Title
我是中间
头部:
我才是头
底部:
我才是脚
可能你们觉得,我的头部和底部的JSP为啥删的只剩下文字和page指令了。其实是这样的,静态包含的include,相当于把其他的JSP复制粘贴过来,如果我不删除多余的
标签啥的,全都会复制过来的,一团糟。所以我删了试试
动态包含其实差不多
User: VaeDate:2019/1/7
Time:20:37
Tochange this template use File | Settings | File Templates.--%>
Title
我是中间
就是多个参数传递
三、taglib
要先导入jar包,我是使用maven直接导入的 ,使用很简单,先引入标签库
maven直接导入就可以,如果还不行的话,可以把jstl包放到你的WEB-INF下面的lib文件夹里,然后就可以了,jstl的jar包在你的maven仓库里面,搜索一下就有了
JSP的九大内置对象和四大作用域
所谓的内置对象就是可以在里面直接写的,有9个。有的没有提示需要自己手打,例如out.write
四大作用域,和Servlet的三大作用域差不多