第一章 Servlet使用入门
1. HTTP Servlet的基础知识:HttpServlet作为一个抽象类用来创建用户自己的HTTP Servle,扩展了GenericServlet类,HttpServlet类的子类必须至少重写两个方法的一个:doGet()和doPost()。
Ø Servlet格式:
public class ClassName extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
}
}
Ø Servlet生命周期:
1) 实例化:Servlet容器创建Servlet类的实例对象。
2)
初始化:Servlet容器调用Servlet的init()方法,通常回申请资源。
I nit()方法
3)
服务:有容器使用以响应客户对Servlet的请求。
4) 破坏:在释放Servlet实例之前调用,通常会释放资源。destory()
5) 不可用:释放内存中的实例。
2. HttpServletRequest接口:
Ø 取中文参数:request.setCharacterEncoding(“GBK”)
Ø 取请求参数:String str=request.getParameter(“”);
String[] arr=request.getParameterValues(“”)
Ø 返回会话对象:HttpSession session=request.getSession(true/false);
Ø 绑定键值对:request.setAttribute(“attrName”,attrValueObject);
Ø 取绑定对象:Object obj=request.getAttribute(“attrName”);
Ø 内部跳转:request.getRequestDispatcher(“/url”).forward(request,response);
Ø 取得所有的Cookie:Cookies[] arr=request.getCookies();
3. HttpServletResponse接口:
Ø 设置中文参数:response.setContentType(“text/html;charset=GBK”);
Ø 获得响应体输出值:PrintWriter out=response.getWriter();
Ø 外部重定向:response.sendRedirect(“url”);
Ø URL重写把sessionID编写到url中:response.encodeURL(“url”);
Ø 在响应头中加入cookie: response.addCookie(cookie)
Ø 设置响应标头:response.setHead(“refalsh”,2)
Ø 两秒后刷新到url:
4. HttpSession接口:
Ø 绑定键值对:session.setAttrbute(“attrName”,attrValue);
Ø 主动无效:session.invalidate();
5. ServletContext接口:
Ø 绑定键值对:context.setAttrbute(“attrName”,attrValue);
Ø 获得文件在磁盘上的绝对位置:
String filepath=context.getRealPath(“/WEB-INF/password.txt”)
第二章 JSP
1. JSP页面构成:
l 静态网页:HTML内容
l 指令:<%@ %> 有三种:page指令,clude指令,taglib指令
如:<%page import=”” %>,<%@include file=”文件名” %>
l 表达式:<%= %> 里面不能有符号,如”;”
l Sciptlet:JAVA代码 <% %>
l 声明:<%! %>
l 动作:<jsp:useBean /> 有六种
l 注释:有两种:1。<!-- -- > 和<%-- --%>
2. 隐式对象:JSP隐式对象是WEB容器加载的一组类的实例,它不象一般的Java对象那样用“new”去获取实例,而是可以直接在JSP页面使用的对象。JSP提供的隐式对象分为4个主要类别,如图:
3. JSP标准动作简介:
l <jsp:useBean id=”” class=”” scope=”” />其中:
id 专用于创建Bean的引用名。
class 指定的Bean的类。Scope指定Bean的范围,默认情况是page
l <jsp:setProperty name=”” property=”” value=”” param=””/>其中:
Name指定useBean中使用的Bean的ID。
Property指定要为之设置值的Bean的属性名称。
Value指定要为属性设置的显式值
Param指定用于输入并给属性赋值的HTML标签
l <jsp:getProperty name=”” property=””/>
Name指定useBean中使用的Bean的ID。
Property指定要为之设置值的Bean的属性名称。
l <jsp:forward page=”url”/>
l <jsp:include page=”” flush=”true”/>,其中:
Page指定要嵌入当前页面的网址。
Flush属性用于在嵌入其他响应前清空存储在缓冲区中的数据。
<jsp:param>元素可与include动作同时使用。如:
<jsp:include page=”url” flush=”true”>
<jsp:param name=”paramName” value=”paramValue”/>
</jsp:include>
4. JSP标准标签库,有四种。主要是核心标签库,如下是核心标签库的内容:
l
通用标签:三个
l 循环标签:两个
l 国际化和格式化标签库
5.
过滤器
l 生命周期
过滤器必须实现javax.servlet.Filter接口以导入Filer接口中的所有方法
过滤器的生命周期类似Servlet,其中包括的阶段分别如下:
1. 实例化:
2. 初始化:调用init()方法完成过滤器的初始化。
3.
过滤:每当用户提交请求或Web资源发送响应时,调用doFilter()方法
4. 销毁:调用过滤器的destroy()方法,完成必要的清除和释放资源。
l 过滤器定义和过滤器映射:使用过滤器之前,需要在web.xml文件中定义过滤
器及其映射。格式:
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>ClassName</filter-class>
<init-param>
<param-name>参数名</param-name>
<param-value>参数值</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>MyFilter</fiter-name>
<url-pattern>/*</url-pattern>
<filter-mapping>
其中:<filter-name>指定过滤器的名称
<filter-class>指定类的名称。
<param-name>指定参数的名称
<param-value>指定参数的值
<url-pattern>指定Servlet、JSP页面或HTML页面的URL。要将过滤器应用Web应用程 序中的每个资源,请在<url-pattern>元素中使用/*
l 过滤器的格式:
public class FilterName extends HttpServlet implements Filter{
public void init(FilterConfig filterConfig) throws ServletException
{}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain filterChain)
{}
public void destroy(){}
}