第5天:Servlet相关知识(一)

Servlet相关知识1
    1.什么是Servlet?能做什么?
        Sun公司制定的用于扩展web服务器功能的组件规范(早期CGI:Common Gateway Interface)
        扩展:
            web服务器本身没有计算能力,也就是说,不能处理动态资源的请求。servlet可以处理动态资源的请求。
        组件规范:
            组件是符合规范,完成一定功能,并可以单独部署的软件模块。一般不能独立运行,需要依赖容器才能运行。
            JSR:Java Specification request
            JCP:Java Communication process
        容器:
            是一种程序,提供组件的运行环境,并且管理组件的运行周期。
        Servlet容器:
            提供Servlet运行的环境,并且管理Servlet的运行周期。一般常见的web服务器,比如Tomcat,除了是
            一个servlet容器以外,同时也是一个web服务器。
        能做什么?
            servlet只能采用java语言开发,servlet可以作java类能做的所有的事件。
    2.如何开发一个Servlet?
        step1:  写一个java类,实现Servlet接口或者继承HttpServlet类。
        step2:  编译(依赖servlet api)
        step3:  打包(定义一个特定的目录结构,将相应的字节码,配置文件,相关的jar文件放到对应的目录结构里)
                appname(名称任意,一般称为应用名)
                    WEB-INF(必须以该名称命名)
                        classes(放.class文件)
                        lib(可选,放.jar文件)
                        web.xml(部署描述文件)
        step4:  部署(将step3中的结果放到特定的目录,对于tomcat是webapps)
        step5:  启动服务器
                windows ->  startup.bat ->  shutdown.bat
                linux   ->  startup.sh  ->  shutdown.sh
                启动成功:http://localhost:8080/
        step6:  访问servlet
                http://localhsot:8080/appname/url-pattern
    3.Servlet是如何运行的?
        假如我们在浏览器栏输入了如下地址:http://ip:port/appname/servletname
        step1:  浏览器依据ip,port连接服务器。
        step2:  浏览器将请求数据按http协议打成一个http请求数据包(包含了appname/servletname)
        step3:  服务器当中的一个负责通讯的模块(一般称为servlet引擎)会创建HttpServletRequest的一个实例
                (HttpServletRequest实际上是一个接口,由服务器提供者来实现),该实例包含了请求数据包中的
                数据。另外,还创建了一个HttpServletResponse的一个实例。
        step4:  服务器依据appname/url-pattern找到web.xml依据信息找到对应的servlet类名。会查看该servlet
                有没有对应的实例,如果没有,则创建实例,有的话,则不创建,使用现成的实例。接下来,调用service()
                方法,service方法里面的代码可以通过HttpServletRequest提供的方法来获得请求中的数据,并且,也
                可以将处理之后的结果通过HttpServletRequest提供的方法设置返回的结果。
        step5:  Servlet引擎会从HttpServletResponse获取数据,生成http响应数据包,发送给浏览器。
    4.使用MyEclipse开发servlet
        (1) 安装MyEclipse
        (2) 开发步骤
            step1:  建立一个web project
            step2:  在src下面编写java类
            step3:  在web.xml中配置servlet
            step4:  部署
                    a.让MyEclipse管理Tomcat
                        window -> preferences -> MyEclipse -> Servers -> Tomcat -> Tomcat 6.X
                    b.部署
            step5:  访问
                    http://ip:port/appname/url-pattern
    5.web.xml文件内容
        <?xml version="1.0" encoding="UTF-8"?>
        <!-- 文件的第一行一定是上面的信息,说明xml文件的版本和字符编码 -->
        <!-- 下面用来配置web工程 -->
        <web-app version="2.4"
                xmlns="http://java.sun.com/xml/ns/j2ee"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
                http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <servlet>
            <description>HelloServlet</description>
            <display-name>HelloServlet</display-name>
            <!-- 一般是定义Servlet时的名字 -->
            <servlet-name>HelloServlet</servlet-name>
            <!-- 该Servlet的全名 -->
            <servlet-class>ttwork.servlet.HelloServlet</servlet-class>
        </servlet>
        <servlet>
            ...
        </servlet>

        <servlet-mapping>
            <!-- 和上面Servlet使用的名字一样 -->
            <servlet-name>HelloServlet</servlet-name>
            <!-- 访问Servlet时的相对路径 -->
            <url-pattern>/servlet/HelloServlet</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            ...
        </servlet-mapping>

        <error-page>
            <error-code>500</error-code>
            <location>/error.html</location>
        </error-page>

        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
        </web-app>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值