JSP/Servlet
来源:互联网 发布:网络视频协议 编辑:程序博客网 时间:2024/06/08 01:10
一、JSP基本原理
jsp的本质是servlet,当用户向指定servlet发送请求时,Servlet利用输出流动态生成HTML页面,包括每一个静态的HTML标签和所有在HTML页面中出现的内容。
JSP的3个编译指令7个动作指令,9个内置对象
3个编译指令
page:该指令是针对当前页面的指令。
include:用于指定包含另一个页面。
taglib:用于定义和访问自定义标签。
7个动作指令
Jsp:forward:执行页面转向
Jsp:param:用于传递参数,必须与其他支持参数的标签一起使用
Jsp:include:用于动态引入一个jsp页面
Jsp:plugin:用于下载javaBean或者Applet到客户端执行
Jsp:useBean:创建一个javaBean实例
Jsp:setProperty:设置javaBean实例的属性值
Jsp:getProperty:输出JavaBean实例的属性值
9个内置对象
application:javax.servlet.ServletContext实例。常用方法:getAttribute,setAttribute
config:jsp配置信息
execption:常用方法有 getMessage()和printStackTrace()
Out :javax.servlet.jsp.JspWriter实例,代表JSP页面的输出流,用于输出内容形成HTML页面
page:代表该页面本身,通常没有太大的用处。相当于servlet中的this
pageContext:javax.servlet.jsp.PageContext的实例。代表该jsp页面上下文,使用该对象可以访问页面中的共享数据。常用方法:getServletContext()和getServletConfig()等
request:javax.servlet.HttpServletRequest的实例,常用方法有setAttribute,getAttribute(String attrName)、getParameter(String paramName)、getparameterValues(String paramName)和setCharacterEncoding(String env)
session: javax.servlet.http.httpSession的实例,该对象代表依次会话。常用方法有getAttribute和setAttribute(string attrName,Object attrValue)等。
二、servlet和jsp的区别
servlet中没有内置对象,原来JSP中的内置对象都必须由程序显式创建
对于静态的HTML标签,servlet都必须是用页面输出流逐行输出
三、JSP/Servlet生命周期
jsp的本质就是servlet,开发者编写jsp页面由web容器编译成相应的servlet,所以servlet的创建和销毁都不是由程序员控制的,而是由web容器控制。
→创建servlet实例
→web容器调用servlet的init方法,对servlet进行初始化。
→servlet初始化后,将一直存在于容器中,用于响应客户端请求。用doGet处理Get请求,dopost 处理post 请求,或者使用统一的service方法处理响应用户请求。
→web容器决定销毁servlet时,先调用servlet的destory方法,通常在关闭web应用之时销毁servlet
四、使用servlet作为控制器
servlet作为表现层的三个劣势:
1、开发效率低,所有的HTML标签都需要使用页面输出流完成2、不利于团队协作开发,美工人员无法参与servlet的开发
3、程序可维护性差,即使修改一个按钮的标题,都必须要重新编辑java代码,并重新编译。
在MVC模式中,jsp只作为表现层。servlet作为控制器层,
1、负责收集用户请求参数2、将应用的处理结果、状态数据呈现给用户
servlet仅仅充当Controller角色,作用类似于调度员:所有用户请求都发给servlet,servlet调用Model来处理用户请求,并调用JSP来呈现结果。
Model通常由JavaBean来充当,所有的业务逻辑、数据访问都在Model中实现
JavaBean: JavaBean可分为两种:一种是有用户界面(UI,User Interface) 的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBean。
五、session对象
session对象是HttpSession的实例,HTTPSession有下面两个常用方法:
1、setAttribute(String attName,Object attValue):设置session范围内attName属性值attValue
2、getAttribute(string attName):返回session范围内attName属性值。
session里的属性值必须是可序列化的,否则将会引发不可序列化的异常。
- jsp&servlet
- Jsp&servlet
- jsp/servlet
- JSP Servlet
- servlet&JSP
- jsp/Servlet
- jsp-servlet
- servlet & jsp
- jsp---->servlet
- servlet/jsp
- jsp+servlet
- jsp/servlet
- Servlet+JSP
- jsp/servlet
- Jsp&Servlet
- jsp/Servlet
- Servlet+JSP
- JSP-servlet
- Day01 varnish
- CSS之解决高度塌陷问题方法终极版
- android 弹出消息框
- 《机器学习实战》学习笔记-[8]-回归-普通最小二乘OLS
- MYSQL学习笔记(九)分组数据
- JSP/Servlet
- tomcat安装-->使用homebrew安装tomcat并且运行tomcat服务器
- #bzoj2239#猜谜语(DP)
- UCML自定义查询(导致点击列头排序弹出异常)
- Python的深拷贝与浅拷贝
- ASP.net—总结
- PackageManagerService分析(二)
- 第八届福建省大学生程序设计竞赛 L.Tic-Tac-Toe【思维+暴力枚举】
- js事件的性能优化