HTTP状态码:
2XX:请求成功
3XX:重定向
4XX:客户机中出现错误。 403-禁止——即使有授权也不需要访问。404 服务器找不到指定资源,文档不存在。
4XX:服务器出现错误。500 服务器内部错误——因为意外情况,服务器不能完成请求。
JSP部分:
JSP内置对象:
1 page Context ——javax.servlet.jsp.PageContext
2.request——javax.servlet.http.HttpServletRequest
接口定义:public interface HttpServletRequest extends SerlvetRequest
重要方法:public HttpSesson getSesssion
3.reponse——javax.servlet.http.HttpServletReponse
接口定义:public interface HttpServletResponse extends ServletResponse
重要方法:public void addCookie(Cookie cookie)
public void setHeader(String name , String value)设置回应的头信息 例:两秒跳转:reponse.setHeader(“refresh","2;hello.htm");客户端跳转
要点:1.操作Cookie:
定义:javax.servlet.http.Cookie
方法: Cookie(String name, String value),getName ,getValue(),setMaxAge(int expiry)以秒为单位
2.关于两种跳转:
服务器端跳转(浏览器地址不改变):<jsp:forward>,即客户端没有发生请求
客户端跳转(浏览器地址改变):reponse.sendRedirect()
public void seedirect(String location)throws IOException
4.session——javax.servlet.http.HttpSession
用户连接到服务器后,服务器自动为赐sesison分配一个不重复的SessionId,服务器依靠不同的SessionId区分不同的用户。
服务器重新启动后Session失效,解决方法:通过序列化的方式保存session继续使用,可在Tomcat Servier.xml中配置,把Sessio保存到文件。
5.application——javax.servlet.ServletContext
6.config——javax.servlet.ServletConfig
7.out——javax.servlet.jsp.JspWriter
8.page——java.lang.Object
9.exception——java.lang.Throwable
4种属性范围:
page:页面有效,跳转无效
request:一次请求有效,服务器跳转依然有效,客户端就无效了。
session:一次会话范围有效,无论任何跳转都可使用,即客户端跳转有效,但新开浏览器无法使用。
application:在整个服务器上保存,所有用户都可使用。
Servlet部分:
JSP可以完成动态的Web开发,但是从开发出来的代码发现,一个页面上存在大量的代码,造成编写维护和可扩展困难。
Servlet(服务器端小程序)是使用Java语言编写的服务器端程序。是Java对CGI程序的实现,但是与传统CGI的多进程处理操作不同的是Servlet采用了多线程的处理方式,这样就使得Servlet程序的运行效率比传统的CGI更高;而且Servlet还保存Java的可移植困难。
Servlet程序处理步骤:
1、客户端发送HTTP请求
2、Web服务器接收该请求并将其发送给Servlet。如果这个Servlet尚未被加载,Web服务器将把它加载到Java虚拟机并执行它。
3、Servlet程序接受该HTTP请求并执行处理。
4、Servlet将处理后的结构向Web服务器返回应答。
5、Web服务器将从Servlet收到的应答发送给客户端。
Servlet程序实现:<<intferace>>Servlet<--GenericServlet<---HttpServlet<---自定义Servlet
Web.xml配置Servlet:
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>servlet类</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/helloServlet</url-pattern><!--页面的映射路径-->
</servlet-mapping>
Servlet生命周期:
生命周期包括:
加载程序、初始化、服务、销毁、卸载。对应HttpServlet的方法为:init()\init(ServletConfig config)、service、destory。
Servlet跳转:
客户端跳转:使用HttpServletReponse的sendRedirct(),但是此跳转只能传递session及application范围的属性。
服务器跳转:依靠RequestDispatcher接口,提供的方法:forward(ServletRequest req,ServletResponse response),include(....);
过滤器:
JSP可以完成的功能Servlet都可以完成,但是Servlet具备的功能是JSP所不具备的,从使用上看Servlet可以分为:
简单Servlet、过滤器Servlet、监听Servlet。3种。
具体接口和方法略;
应用:编码的过滤、用户登录验证。
监听器:
负责监听Web的各种操作。
1、对application的监听、实际是对ServletContext(Servlet上下文)监听,主要使用ServletContextListener和ServletContextAttributeListener两个接口。
第一个表示上下文状态监听、第二个表示上下文属性监听。
2、对Session监听,主要使用HttpSessionListener、HttpSessionAttributeListener、HttpSessionBindingListener接口(不用配置直接使用)。
3、对request监听,使用ServletRequestListener和ServletRequestAttributeListener两个接口。
应用:例如在线人员统计。。。