Servlet之简单介绍

什么是servlet
Servlet技术是在java ee出现之前就存在了,在开发动态网页中,得到广泛的应用,直到现在的Java ee 项目中也是非常重要
的,同时jsp也是在servlet的基础上发展起来的。因此,掌握好servlet太重要了。
Servlet(java服务器小程序)是用java编写的服务器程序,它的特点:
他是由服务器调用和执行的(运行在服务器端上)
他是用java语言编写的额,servlet就是一个java程序(java类)
他是按照Servlet规范开发的(该程序要遵循servlet开发规范)
功能强大,可以完成几乎所有的网站功能
是学习jsp的基础

Servlet的快速入门案例
概述:开发servlet有三种方法
实现Servlet接口
通过继承GenericServlet
通过继承HttpServlet
需求如下:请实现接口的方式,来开发一个Servlet要求显示Hello world,同时显示当前时间
建立web应用cyhweb1
在cyhweb1下建立WEB-INF/web.xl[web.xml可以从ROOT/WEB-INF/web.xml拷贝]
在cyhweb1建立class目录(我们的Servlet就要在该目录开发),建立lib文件夹
开发MyFirstservlet.java

<?xml version="1.0" encoding="ISO-8859-1"?>

<servlet>
<!--是将来访问该Servlet的资源名,该名字可以自己定义,默认就使用该Servlet -->
  <servlet-name>MyFirstServlet</servlet-name>
<!--Servlet-class要指明该Servlet放在哪个包下的形式是包/包/../类-->
  <servlet-class>com.cyh.MyFirstServlet</servlet-class>
</servlet>
<!--Servlet的映射-->
MyFirstServlet /ABC 6.在浏览器中输入 http://localhost:9080/cyhweb1/ABC 7.可能出现的错误 (1) MyFirstServlet名字不一样(启动tomcat错误) (2) com.cyh.MyFirstServlet.java写成MyFirstServlet.java会报告500 (3)资源名自己写错 http://localhost:9080/cyhweb1/错误的资源url-pattern 404错误

补充:如果使用javac去编译一个java文件,则需要带命令参数 java -d .java文件

Servlet生命周期
Servlet程序是有WEB服务器调用,WEB服务器收到客户端的Servlet访问请求后:
WEB服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第4步,否则,执行第2步
装载并创建该Servlet的一个实例对象
调用Servlet实例对象的init()方法
创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,
然后调用Servlet的service()方法并将请求和响应对象作为参数传递过去
5.WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destory()方法
以下情况会导致destory()方法调用
a:tomcat重新启动 b:reload该webapp c:重新启动电脑

GenericServlet接口,了解即可
public class MyGenericServlet extends GenericServlet
{
public void service(ServletRequest req,
ServletResponse res)
throws ServletException,
java.io.IOException
{ res.setContentType(“text/html;charset=utf-8”);
res.getWriter().println(“hello world,北京你好”);
}
}

使用继承HttpServlet的方法来开发Servlet
在软件公司,90%都是通过该方法开发
举例说明:
package com.cyh;
import javax.servlet.;
import javax.servlet.http.
;
import java.io.*;
public class MyHttpServlet extends HttpServlet
{
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException,
java.io.IOException
{
resp.getWriter().println(“i am httpServlet doGet()”);

				 }
				  
protected void doPost(HttpServletRequest req,
                  HttpServletResponse resp)
           throws ServletException,
                  java.io.IOException
				 {
				 resp.getWriter().println("i am httpServlet doPost()	           

                                     postname="+req.getParameter("username"));
					 
				 }

}
还有login.html

u:

表单提交数据get请求和post请求的区别
从安全性看get<post get提交的数据会在浏览器的地址栏显示
从提交内容带下看get<post get 提交的数据不能大于2k,而post提交的数据理论上不受限制,但是实际编程中建议不要大于64k
从请求响应速度看:get>post,get要求服务器立即处理请求,而post请求可能形成一个队列请求

Servlet实现类
Servlet接口SUN公司定义了两个两个默认实现类:分别为:
GenericServlet、HttpServlet(建议使用)
HttpServlet指能够处理Http请求的Servlet,它在原有Servlet接口上添加了一些与Http协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口
HttpServlet在实现Servlet接口时,覆写了Service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值