首页 > 代码库 > 【Web基础】JSP/Servlet 简单回顾

【Web基础】JSP/Servlet 简单回顾

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两个接口。

应用:例如在线人员统计。。。




【Web基础】JSP/Servlet 简单回顾