博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于servlet的学习日志
阅读量:6079 次
发布时间:2019-06-20

本文共 1546 字,大约阅读时间需要 5 分钟。

hot3.png

           servlet是使用Java servlet应用程序设计接口(API)及相关类和方法的Java程序,除了Java servlet  API,它还可以用于扩展和添加API的Java类软件的包。servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。通常所说的servlet就是指httpservlet,能够处理的请求有doGet()、doPost()和service()等方法。

实现过程

         最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:

1) 客户端发送请求至服务器端;

2) 服务器将请求信息发送至 Servlet;

3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

4) 服务器将响应返回给客户端。

servlet的生命周期

  1. 加载

  2. 实例化

  3. 调用init()方法初始化该 Servlet

  4. 提供服务。service()根据请求方法不同调用doGet() 或者 doPost()

  5. 销毁。

    destroy():当web服务器和容器关闭时会自动调用HttpServlet.destroy()方法关闭所有打开的资源,并执行一些关闭前的处理。

servlet的配置

在web.xml文件中进行配置:

使用<servlet-name>、<servlet-class>、<servlet-mapping>等标签来进行配置

doGet()和doPost()

  public void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {  System.out.println("This is doGet");  resp.setContentType("text/html;charset=UTF-8");  String loginId = req.getParameter("loginId");  req.setAttribute("loginId", loginId);  req.setAttribute("loginName", "nttdata");  req.getRequestDispatcher("/response.jsp").forward(req, resp); }public void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {  doGet(req, resp); }

       web容器会自动按照请求类型调用servlet提供的方法,若是GET类型的请求就将分给doGet()方法处理,同理若是POST类型就发给doPost()处理,但是一般多是用doGet()方法,如上,即使是使用了doPost()但是最终还是调用上面的doGet()。

页面转发

      servlet中实现页面转发只要是利用RequestDispatcher接口实现的。其包括forward()的方法:

       forward()方法用于将请求转发到服务器上的另一个资源

      如上代码,用forward()方法将页面请求转发到了response.jsp页面

 

转载于:https://my.oschina.net/u/2411768/blog/477676

你可能感兴趣的文章
Windows Phone 7 利用计时器DispatcherTimer创建时钟
查看>>
程序员最喜爱的12个Android应用开发框架二(转)
查看>>
vim学习与理解
查看>>
DIRECTSHOW在VS2005中PVOID64问题和配置问题
查看>>
MapReduce的模式,算法以及用例
查看>>
《Advanced Linux Programming》读书笔记(1)
查看>>
zabbix agent item
查看>>
一步一步学习SignalR进行实时通信_7_非代理
查看>>
AOL重组为两大业务部门 全球裁员500人
查看>>
字符设备与块设备的区别
查看>>
为什么我弃用GNOME转向KDE(2)
查看>>
Redis学习记录初篇
查看>>
爬虫案例若干-爬取CSDN博文,糗事百科段子以及淘宝的图片
查看>>
Web实时通信技术
查看>>
第三章 计算机及服务器硬件组成结合企业运维场景 总结
查看>>
IntelliJ IDEA解决Tomcal启动报错
查看>>
默认虚拟主机设置
查看>>
php中的短标签 太坑人了
查看>>
[译] 可维护的 ETL:使管道更容易支持和扩展的技巧
查看>>
### 继承 ###
查看>>