java web开发——第六章Java Servlet基础


主要内容

  1. servlet 的部署、创建与运行
  2. Servlet 的工作原理
  3. 通过 JSP 页面访问 servlet
  4. 共享变量
  5. doPost 和 doGet 方法
  6. 重定向与转发
  7. 使用 session

6.1 servlet 的部署、创建与运行

6.1.1. 源文件和字节码文件

  1. Servlet类

写一个创建 servlet 的类就是编写一个特殊类的子类,这个特殊的类就是javax.servlet.http包中的HttpServlet
类。HttpServlet 实现了 Servlet 接口 ,实现了响应用户的方法(这些方法将在后续内容中讲述)。HttpServlet
的子类被习 惯地称作一个 Servlet 类,这样的类创建的对象习惯地被称作一个 servlet。

  1. 字节码文件的保存

为了能让 Tomcat 服务器创建一个 servlet ,需要将 Java 源文件产生的class
字节码文件按照类的包名对应的目录路径保存到 Web 服务目录中特定子目录中。包名 moon. sun 对应的目录路径是 web服务目录\WEB-INF\classes\moon\sun 中
注意:保存Java源文件时,编码格式为"ANSI"

6.1.2 编写部署文件web.xml

Servlet 类的字节码文件保存到指定的目录后,必须为 Tomcat 服务器编写一 个部署文件,只有这样 ,Tomcat 服务需才会用
Servlet 类创建 servlet 对象。 该部署文件是一个XML 文件,名字必须是 web. xml。 可以在 Tomcat 服务天的
webapps 目录中的 root 目录找到 一个 web. xml 文件 ,编写的 web. xml 文件必须保存到 Web 服务目录的
WEB-INF 子目录中,例如 ch6\WEB- INF 中(不要保存在 ch6 目录中)。 (需要用纯文本编辑器编辑 web. xml)

6.1.3 servlet的创建与运行

servlet 由 Tomecat 服务器负责创建, Web 设计者只需为 Tomcat 服务器预备好 Servlet 类
,编写好相应的配置文件 web. xml,用户就可以根据 web. xml 部署文件来请Tomcat 服务需创建并运行一个
servlet。如果 Tomcat 服务器没有名字为 hello 的 servlet, 就会根据 web. xml 文件中 servlet
标记的子标记 servletrclass 指定的Servlet 类创建一个名字为 hello 的 servlet。因此,如果名字是
hello 的 servlet 被创建之后,修改 Java 源文件.编译得到新的 Servlet 类,并布望 Tomcat 服务需用新的
Servlet 类创建servlet ,那么就要重新局动 Tomcat 服务需。 当用户请求 Tomceat 服务器运行一个 servlet
时,必须根据 web. xml 文件中标记 url-pattern 指定的格式输入请求。

4.1.4 向servlet传递参数的值

在请求一个 servlet 时,可以在请求的 url-pattern 中额外加入参数及其值,格式是:

url - pattern?和参数1=值&参数2=值…人参数n=值

那么被请求的 servlet 就可以使用 request 对象获取参数的值,例如 :

request. getParameter(参数 n)

6.2 servlet的工作原理

  • 一个 servlet 的生命周期主要由下列三个过程组成:

(1) 初始化 servlet。servlet 第一次被请求加载时,服务器初始化这个 servlet,即创建一个
servlet ,这 servlet 调用== init== 方法完成必要的初始化工作。

(2) 新诞生的 servlet 再调用 service 方法啊应用户的请求。

(3) 当服务需关闭时,调用 destroy 方法销毁 servlet 。

init 方法只被调用一次,即在 servlet 第一次被请求加载时调用该方法。当后续的用户请求 servlet 服务时,Tomeat 服务器将启动一个新的线程 ,在该线程中,servlet 调service 方法响应用户的请求。也就是说,每个用户的每次请求都导致 service 方法被调用执行,其执行过程分别运行在不同的线程中。

6.3 通过JSP 页面访问 servlet

  1. 通过表单向 servlet 提交数据
  2. 通过超链接访问 servlet

6.5 doGet 和 doPost 方法

HttpServlet 类除了 init、service、destroy 方法外,该类还有两个很重要的方法: doGetdoPost ,用来处理用户的请求并作出响应。

6.6 重定向与转发

重定向的功能是将用户从当前页面或 servlet 定向到另一个 JSP 页面或servlet。转发的功能是将用户对当前JSP 页面或 servlet 的请求转发给另一个JSP 页面或 servlet.使用 HttpServletResponse 类的 sendRedirect 重定向方法,以及RequestDispatcher 类的 forward 转发方法

  1. sendRedirect 方法

void sendRedirect(String location)是HttpServletResponse 类中的方法。当用户请求一个 servlet 时 ,该 servlet 在处理数据后,可以将用户重新定向到另一个JSP 页面或 servlet。
重定向的目标页面或 servlet 无法使用 request 获取用户提交的数据

  1. forward 方法

RequestDispatcher 对象可以把用户对当前JSP 页面或 servlet 的请求转发给另一个 JSP页面或 servlet ,而且将用户对当前 JSP 页面或 servlet 的请求传递给转发到的 JSP 页面或servlet。也就是说
转发到的 JSP 页面或 servlet 可以使用 request 获取用户提交的数据

6.7 使用 session

HTTP 通信协议是用户与服务需之间一种请求与啊应(request/response) 的通信协议 ,属于无状态协议。所谓无状态是指,当用户(浏览器)发送请求给服务器,Tomcat 服务器作出响应后,如果同一个用户再发送请求给 Tomcat 服务器时,Tomeat并不知道就是刚才的那个用户。简单地说,Tomcat 不会记录用户的信息。
用户在访问一个 Web 服务目录期间,Tomcat 服务需为该用户分配一个 session 对象(称为用户的会话) ,Tomcat 服务器可以在各个页面以及 servlet 中使用这个 session 记录用户的有关信息,而且 Tomcat 服务需保证不同用户的 session 对象互不相同。
HttpServletRequest 对象 request 调用 getSession 方法获取用户的 session 对象 :

HttpSession sesslion = request. getSesslion(true) ;

访问某个 Web 服务目录的用户 ,在不同的 servlet 中获取的 session 对象是完全相同的,不同的用户的 session 对象互不相同。

总结

革命尚未成功,我还需努力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值