凝望长空 发表于 2012-01-04 21:17

JSP基础


JSP基础






jsp
1、什么是jsp?
java server page(java服务器端页面技术)。
sun公司制订的一种服务器端动态页面生成技术规范。
因为直接使用servlet生成动态页面过于烦琐,并且
难以维护,所以,才会有jsp技术出现。
2、怎样写一个jsp?
只需要写一个以.jsp为后缀的文件,文件包含的内容,
主要是html及少量的java代码。
jsp文件不需要去编译,当请求到达服务器,由服务器
将.jsp文件转换成.java类(该java类就是一个servlet)。
然后执行servlet的service()方法(当然,在执行之前,
会先编译,然后构造相应的实例)。
3、jsp的组成
1)html(包括html标记、文本、css样式、javascript):
直接写在.jsp文件里就可以了。
2)java代码
a,java代码片断:
语法
<% java代码%>
b,jsp表达式
语法
<%=java表达式 %>
3)指令
a,指令是什么?
jsp引擎(容器中的一个特定的模块)负责将.jsp文件
转换成.java文件。
指令的作用是告诉jsp引擎,在将.jsp文件转换成
.java文件时,做一些额外的处理。
b,page指令
格式:
<%@ page 属性名=属性值%> 。
import属性:作用是导包
比如:
<%@ page import="java.util.*"%>
<%@ page import="java.util.*,java.text.*"%>
pageEncoding属性: 告诉jsp引擎,.jsp源文件的
编码是什么。
contentType属性: 作用是,在.java源文件当中,
生成response.setContentType(...);

4)隐含对象
a,什么是隐含对象?
在.jsp文件中,不用声明,就可以直接使用的对象。
(能直接使用的原因是.jsp文件对应的.java文件中,
jsp引擎会事先写好声明及创建该对象的代码)。
b,有哪一些隐含对象
out,request,response
4、.jsp文件如何转换成.java文件
当请求到达服务器,服务器要将.jsp文件转换成
一个.java文件(该文件是一个servlet)。
1) html ----> 放到service()方法里,
使用out.write()输出。
2)java代码片断 ---->放到service()方法里,照搬。
3)jsp表达式--------->放到service()方法里,使用
out.print()输出。

5、转发
1)什么是转发?
一个请求到达服务器之后,服务器调用某个组件
(servlet/jsp)处理该请求,该组件接下来再调用
另外一个组件继续处理未完成的请求。
转发所涉及的各个组件,会共享同一个request对象
和response对象。
2)编程
step1 先将数据绑订到request上。
request.setAttribute(String name,Object obj);
//如果name对应的obj不存在,返回null。
Object request.getAttribute(String name);
//解除绑订
request.removeAttribute(String name);
step2 获得转发器
//url是转发的目的地
RequestDispatcher rd =
request.getRequestDispatcher(String url);
step3 转发
rd.forward(request,response);
3)转发要注意的问题
转发之前,会先将response中缓存的数据清空。
4)转发的特点
a,转发的目的地只能是同一个应用的内部的
各个组件之间。
b,浏览器的地址栏的地址不变。
5)转发与重定向的区别
a,浏览器地址栏的地址:
重定向会变
转发不会变
b,request,response对象能否共享:
重定向不能共享
转发可以共享
c, 目的地址
重定向的地址任意
转发只能是同一个应用内部

6、路径问题
链接、表单提交、重定向、转发
1)什么是相对路径
路径不以"/"开头
2)什么是绝对路径
路径以"/"开头
3)怎样写绝对路径
链接、表单提交、重定向,绝对路径是从
应用名开始;转发从应用名之后开始。
为了避免硬编码应用名,最好使用
String request.getContextPath()来获得应用名。

小忻黑夜 发表于 2012-01-04 21:18

谢谢分享
页: [1]
查看完整版本: JSP基础