servlet与jsp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术: MySql、Eclipse #Java
作者:翁一凯
撰写时间:2021/5/28
servlet与jsp
在用servlet之前先了解一下Tomcat,因为在IDEA中servlet层是在Tomcat中打开的,servlet层是基于Tomcat的。
Tomcat:
Tomcat是一个web容器 IIS
Tomcat 是 Apache 软件基金会一个项目,由 Apache、Sun 和部分公司和个人一起开发完善的轻量级Web 应用服务器,是 Servlet 规范和 JSP 规范的开源实现。是免费开源的。
而我们在使用IDEA编写java web程序的时候肯定要认识web Project 项目结构:
servlet是什么?
Servlet是sun公司提供的一门用于开发动态web资源的技术。
Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:
1、编写一个Java类,实现servlet接口。
2、把开发好的Java类部署到web服务器中。
按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。
servlet的调用过程及生命周期:
Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
②装载并创建该Servlet的一个实例对象。
③调用Servlet实例对象的init()方法。
④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的
HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。
JSP
jsp是什么:
Jsp是一种建立在Servlet规范提供的功能之上的动态网页技术,允许在网页文件中嵌入java代码和jsp标记。
Java 服务器页面 (Java Server Page ,JSP) ;扩展名:.jsp
JSP 页面的元素:
jsp的执行过程:
(1)Jsp文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求,所以jsp可以看成是运行时的Servlet。
(2)Jsp容器(也就是Servlet容器)管理jsp页面声明周期分为两个阶段.即转换阶段和执行阶段。
(3)当有一个对jsp页面的请求到来时,jsp容器检查jsp页面的语法是否正确,将jsp页面转换为Servlet源文件,然后调用javac命令编译Servlet源文件生成字节码文件.这是转换阶段。
(4)Servlet容器加载转换后的Servlet类,这是执行阶段。
JSP 指令:
jsp的九大内置对象:
1. request HttpServletRequest 类的实例。
2. response HttpServletResponse 类的实例。
3. out PrintWriter 类的实例,用于把结果输出至网页上。
4. session HttpSession 类的实例。
5. application ServletContext 类的实例,与应用上下文有关。
6. config ServletConfig 类的实例。
7. pageContext PageContext 类的实例,提供对 JSP 页面所有对象以及命名空间的访问
8. page 类似于 Java 类中的 this 关键字。
9. Exception Exception 类的对象,代表发生错误的 JSP 页面中对应的异常对象JSP 作用域包括 page、request、session 和 application。
EL表达式:
EL 为表达式语言(Expression Language),可以简化对变量的对象的访问
语法 :所有的表达式以”${”开始,以”}”结束。
是否启用EL表达式 isELIgnored ="true|false"
JSP EL 表达式用于以下情形
·静态文本( JavaScript脚本在jsp中属于静态内容)
·标准标签和自定义标签
·EL不能在脚本元素中使用 脚本元素不是指JavaScript脚本,而是 <% Java 代码 %>
EL使用”[ ]”和”.”操作符来访问数据
·对于连字符(-)或者其它特殊字符的字符串只能用“[ ]”操作符,而不能用“.”操作符,这也是“[ ]”和
“.”操作符的区别 如 ${header["User-Agent"]}
EL表达式的操作内容可以是:常量、变量、jsp隐含对像。
EL表达式还提供了对操作内容的运算:属性取值、运算、逻辑运算。
EL表达式的操作结果会自动输出到输出流对像中。
EL 表达式只能通过内置对象取值,也就是只读操作。
EL 运算符:
(1)、EL 算术运算符 + - * /(div) %(mod)
(2)、EL 关系运算符 ==(eq) !=(ne) <(lt) <=(le) >(gt) >=(ge)
(3)、EL 逻辑运算符 &&(and) ||(or) !(not)
(4)、EL 其他运算符
1) empty 运算符 用来判断值是否为null 或空的
2) 条件运算符 ${ A ? B : C} 意思是说,当A 为true 时,执行B;而A 为false 时,则执行C
3) ( ) 括号运算符 用来改变执行优先权,例如: ${ A * (B+C) }
el表达式的作用域:
1、PageScope 2、RequestScope
3、sessionScope 4、applicationScope
JSP 标准标签库:
Java Server Pages 标准标签库 (JSTL) 包含的各种标签可用于 JSP 页面中
JSTL 的优点:
·提供一组标准标签
·可用于编写各种动态 JSP 页面
·用于访问数据库、有条件地执行代码和支持国际化