(7)在Servlet中使用JavaBean
Servlet和JavaBean都是类,在Servlet中使用JavaBean有两种方式:
1.在一个Servlet中单独使用JavaBean
一般完成的操作是:在Servlet中实例化JavaBean;
通过实例化的对象调用JavaBean方法,完成有关业务处理,并获得结果;
将获得的结果交给Servlet继续处理。
2.在Servlet与JSP之间或Servlet之间实现数据共享的JavaBean
。。。。
(8)JSP与Servlet的数据共享
通过数据内置对象来实现数据共享(request session application)这些对象分别于HttpServletRequest、HttpServletSession、ServletContext 相对应。
1.基于请求的数据共享
共享请求参数的共享过程:参数的传递、参数的保存、保存在请求对象内。
基于请求的数据共享就是共享用户的请求数据,请求数据在“请求对象中”。请求共享的范围是用户请求访问的当前的Web组件以及和当前的Web组件共享同一请求的其他web组件。基于请求的数据共享的效率是比较高的。
请求共享的数据有两类:请求参数数据、请求属性数据。
~1.1共享请求数据:实际过程是参数传递、参数保存(保存在请求对象内)、参数的获取。
1.2请求参数的4种传递方式:
1.2.1 通过表单action属性指定进入的页面或Servlet,他们所接受的表单数据,就是请求参数数据。
1.2.2 带参数的超链接所传递的参数也是请求参数。
1.2.3 在地址栏中输入的参数也是请求参数
1.2.4 在jsp中,利用forward或include动作时,利用子参数动作标签所传递的数据也是请求参数
1.3请求参数的获取:
利用getParameter()方法获取。其格式为:
String request.getParameter("参数变量名称");
~2.1 请求属性数据:需要先保存形成属性值,然后在另一个组件,再取出该属性的值
2.2 请求属性数据的形式与保存,其格式为:request.setAttribute("属性名",对象类型的属性值);
请求属性数据的获取,其基本格式为: 对象类型(强制转换类型) request.getAttribute("属性名");
例如:Double id=Double(request.getAttribute("weight"));
2.3 若不想再共享某个属性,可从request中删除属性,其基本格式是:
request.removeAttribute("属性名");
2.基于会话的数据共享
会话共享的是属性数据共享,过程为:需要形成属性并保存在会话对象内值,然后在另一组件,在取出该值。
1.1 会话属性数据的形成和保存
session.setAttribute("属性名",对象类型的属性)
1.2 对于Servlet组件,需要先获取HttpSession的实例对象,然后在使用setAttribute()方法,获取Httpsession的对象实例格式:HttpSession reequest.getSession(boolean create)
2.1 会话属性数据的获取
获取会话属性的基本格式: 对象类型(强制转换类型) session.getAttribute("属性名");
3.1 删除会话共享属性
删除会话属性基本格式:session/application.removeAttribute("属性名");
3.基于应用的数据共享
参考session'的例子
(9)JSP与Servlet的关联关系
JSP和Servlet都是在服务器端执行的部件,两者之间可以互相调用。两者的格式不一样
1.在JSP页面调用Servlet
在JSP页面中通过提交表单和超链接两种格式访问Servlet,具体如下:
1. 通过表单提交调用Servlet
调用格式:<form action="servlet访问地址">.....</form>
//这里的访问地址实在web.xml中配置的地址
2.超链接调用Servlet
可以采用超链接调用servelt还可以给Servlet传递参数。
基本格式为:<a href="servlet 访问地址">提示信息</a>
//<a href="servlet 访问地址"?要传递的参数>提示信息</a>
2.Servlet跳转到JSP页面
Servlet调用JSP有两种方式:重定向和转向