初识Servlet

初识Servlet

1.what is servlet?

sun公司指定的一种用来扩展web服务器功能的组件规范
(1)扩展web服务器功能
	apache(www.apache.org)的web server、 iis微软等等。
	web服务器通常只能处理静态资源的请求(即事先将html文件准备好)
servlet扩展服务器(web服务器可以通过调用servlet来处理动态资源的请求,比如访问数据库)
(2)组件规范
	1)什么是组件
	符合一定规范,实现部分功能,并且需要部署到相应的容器里面才能运行的软件模块。
	servlet是一个组件,需要部署到相应的servlet容器里面才能运行。
	2)什么是容器
	符合一定规范,提供组件的运行环境的程序。
	tomcat就是容器,提供了servlet的运行环境。(比如socket网络连接)

webserver—(动态资源)—>servlet(tomcat是其运行环境)->DB

2.安装容器Tomcat

Download:官网网址

linux环境下(windows下环境相同)
step01:解压
  /home/devSoft/tomcat6
  或/opt/tomcat6
step02:配置环境变量
  JAVA_HOME:jdk安装路径/opt/jdk8
  CATALINA_HOME:tomcat安装路径/opt/tomcat6
  PATH:bin文件夹所在目录/opt/tomcat6/bin
step03:启动tomcat
  cd $CATALINA_HOME/bin
  ./startup.sh OR catalina.sh run
  check:http://localhost:8080
step04:关闭tomcat
  sh sgutdown.sh

3.How to make a servlet without IDE?

step01:new一个java类
	实现Servlet接口或者继承HttpServlet抽象类(通常选择继承的方式)
//示例程序
package first;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public calss HelloServlet extends HttpServlet{

	//公开,无返回值,service名称结构不能变
	public void service(
			HttpServletRequest request,
			HttpServletResponse response
		) throws ServletException,IOException{
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<h1>HelloServlet....</h1>");
		out.close();
	} 
}
step02:编译
step03:打包
	创建一个具有如下结构的文件夹:
		appname(应用名)
			|-WEB-INF(固定)
				|-classes(放class文件)
				|-lib(可选,放jar包:jdbc驱动)
				|-web.xml(部署描述文件)
step04:部署
	将step3创建好的整个文件夹拷贝到servlet容器相应的位置
	注:可以使用jar命令将step03文件夹压缩成后缀“.war”为后缀文件,在拷贝。
step05:启动容器,访问servlet
	http://ip:port/appname/url-pattern(注:url-pattern:web.xml中定义)

4.servlet是如何运行的?

输入地址:http://ip:port/web01/hello
step01,浏览器根据ip和port建立连接。
step02,浏览器打包(数据包),发送请求数据包
step03,容器解析请求数据包,并将解析到的数据封装到request对象,同时创建一个response对象。
step04,容器创建servlet对象,然后调用该对象的service()方法。
    注:容器会将request和response作为参数传递进来,通过request获取请求参数,通过response保存处理结果。
step05,容器读取response中的处理结果,然后处理结果打包发送给浏览器。
step06,浏览器解析响应数据包,生成相应的界面。

过程示意图

5.问题处理

(1)404:一个状态码(三位数字,w3c定义,表示服务器处理请求的一种状态)。
  1)找不到请求的资源
  2)①未部署、②<servlet-name>不一致(xml写错)、③请求地址写错
(2)500:
  1)系统出错
  2)①没有继承、②<servlet-class>写错、③代码不严谨
(3)405:
  1)找不到处理方法
  2)service方法格式不正确
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值