24@Servlet_day05
1、什么是jsp?
java sever page(java服务器端页面技术)
sun公司制订的一种服务器端动态页面生成技术规范。因为直接使用servlet生成动态页面过于繁琐,而且很难维护(使用out.println方式),所以才会有jsp这样一种规范。
2、如何写一个jsp?
step1 写一个以.jsp为后缀的文件
step2 在该文件当中,添加如下的代码:
1) html(css,js):直接书写
2)java代码
a, java代码片断
<% java代码 %>
b, jsp表达式
<%= java表达式 %>
3)隐含对象
在jsp文件中,可以直接使用的对象。
因为服务器在生成的servlet类里面已经包含了创建该对象的代码,所以可以直接使用这些对象,包括:
out
request
response
4)指令
通知服务器,在将.jsp文件转换成.java文件时,做一些额外的处理,比如导包。
a,语法:
<%@指令名称 属性名称=属性值%>
b,page指令
import属性: 导包
比如:
<%@page import="java.util.*"%>
<%@page import="java.util.*,java.text.*"%>
pageEncoding属性:告诉容器,.jsp文件保存时的编码。因为容器需要读取.jsp文件,将其转换成.java文件,所以,需要明确告诉容器.jsp文件的编码,否则,在解码时,可能会出错。
contentType属性:设置response.setContentType的内容。
3、jsp是如何执行的?
step1 服务器要将.jsp文件转换成一个.java文件(其实就是一个servlet)。
a, html(css,js) -----> 放在service方法里,使用out.write输出。
b, <% %> ------> 放在service方法里,照搬。
c, <%= %> ------->放在service方法里,使用out.print输出。
step2 服务器调用这个servlet的service方法。
4、转发
1)什么是转发?
一个web组件(servlet/jsp)将未完成的处理通过容器转交给另外一个web组件继续完成。
最常见的情况:
一个servlet获得数据之后,转发给一个jsp来生成相应的界面。
2)编程
step1 绑订数据到request上。
request.setAttribute(String name,Object obj);
//依据绑订名name返回绑订的值。如果绑订名对应的值不存在,返回null。
Object obj= request.getAttribute(String name);
//解除绑订
request.removeAttribute(String name);
step2 获得转发器
RequestDispatcher rd = request.getRequestDispatcher(String url);
url:转发的目的地。
step3 转发
rd.forward(request,response);
需要注意:
转发之前,会清空response中缓存的数据。
转发之前,不能够调用out.close,out.flush,否则出错。
3)特点
a,转发的地址必须是同一个应用内部的某个组件的地址。
b,转发之后,浏览器的地址栏的地址不变。
练习:
完成“员工管理”,要求:
a, 日期动态生成
b, 添加员工页面添加表单验证,要求姓名、薪水、年龄不能为空。