Servlet学习笔记(1)

Servlet:Sun公司制订的一种用来扩展Web服务功能的组间规范。

第1部分 C/S和B/S介绍

1 C/S

         Client Server

         客户端 服务器程序;

         客户端需要单独开发,用户需要下载并安装;

2 B/S

         Browser  Server

         浏览器 服务器程序;

         客户端不用单独开发,用户不用单独安装;

第2部分 Servlet介绍

2.1 服务器如何保存病返回一个网页?

         区分动静态网页在于内容是否变化。

1)静态网页:无论谁看其内容都是一样的。

                   如:百度百科、新闻等。

                   服务器直接存HTML,直接返回HTML即可。

1)  动态网页:不同人用返回的结果不一样,不同人看到的不一样。

                   如:淘宝(根据你喜好变化)、微博等。

                   服务器保存一个组件,动态给每个用户拼一个网页。在Java中这个组件就是Servlet

                   组件就是满足规范的对象。

2.2 Servlet特点

         是服务器短的组件;

         满足Sun的规范;

         可以动态拼资源(HTML/IMG等);

         术语:处理HTTP协议;

        

2.3什么是Servlet

Sun推出的用于在服务器端  拼动态资源/处理HTTP协议 的组件。

第3部分 服务器介绍

3.1 名称

         Java服务器

         WEB服务器

         Java WEB服务器

         Servlet容器

         都是指服务器,只是内容来称呼了而已。

3.2 服务器的本质

         是一个软件;

         它和浏览器是对等/平级关系。

3.3 服务器产品

  既然是软件就有很多厂家来开发,由不同产品,如:

  Tomcat(Apache)

  JBoss

  WebLogic

  WebSphere等

第4部分 Tomcat两种使用方式

4.1 单独使用(项目上线时)

         基本上是由实施人员来做的

  1)  配置好JAVA_HOME

  2)  下载和安装,Apache官网

4.2 通过Eclipse调用(必须要会,开发时使用),做小案例时介绍使用

第5部分 Servlet开发步骤

5.1 创建WEB项目(在JavaEE模式下建立,最好使用Maven)

5.1.1必须具备标准WEB目录/webapp/WEB_INF/web.xml,所以创建完成需要在Deployment Descriptor:项目名 上右击选择Generate Deployment Descriptor ,然后生成标准Web项目目录,报错就消失了;

5.1.2创建Maven时packaging选war;

5.2 导入jar包

         5.2.1使用Maven导包

                   因为使用外网可能会失败,当然也可以配置阿里云

--使用Maven搜索javaee

--在结果中选择Javaee-api

5.2.2 使用tomcat自带的包

  --当前项目右键properties

  --选择Targeted Runtimes 选择Apache Tomcat ,Apply and Close

5.3 开发Servlet项目

         5.3.1编写Servlet

                   --package

                   --创建一个类,名为XxxxServlet

                   --继承HttpServlet,从而间接的实现了Servlet接口

       --重写父类的service()

        在新建的类(使用的是Eclipse)里面右键source -- Override/Implement Methods 选

        择service(注意有两个,选下图圈的那个)

5.3.2 配置Servlet

         --先声明类,并给它取别名;

         --再通过别名引用此类,给他取一个访问路径;

5.3.3部署(通俗来说就是拷贝)

  --在Servers视图下,选择tomcat7,右键Add and Remove

  --在弹出框将左侧待部署项目移动到右侧,点击OK;

  --启动tomcat部署即完成!

 

5.4访问

--http://ip:port/项目名/网名

 第6部分 小案例代码

功能:服务器返回当前时间,用HTML显示

Java代码:

/**
 * 功能:服务器返回当前时间
 * 
 * 错误404:找不到资源,一般是路径不对,没有匹配;
 * 错误500:1 类名有误;2 代码有误;
 * 错误405:方法声明有误
 * 
 *  在创建类的时候就实现HttpServlet的继承,以免自己写继承写错字母;
 */
package web;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TimeServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        //super.service(req, resp);    //这句调父类的,不需要,删除
        
        res.setContentType("text/html"); //声明向网页发什么类型文件;这里发送的是网页,如果格式写错浏览器会让你保存而不是显示内容
        PrintWriter out = res.getWriter();     
        
        Date date = new Date();   //创建一个时间
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        String now = sdf.format(date);
        /*此处偷懒了,省略了网页的基本结构,之后再改进*/
        out.println("<p>"+ now + "</p>");  
        out.close();    
    }    
}
View Code

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name>servletDay01</display-name>
  
          <!-- 欢迎界面,可删除,没什么用 -->
      <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
      </welcome-file-list>
  
      <!-- 1 声明Servlet的类型,并给他去一个别名,为了当前页面引用方便  -->
      <servlet>
          <servlet-name>time</servlet-name>
          <servlet-class>web.TimeServlet</servlet-class>
      </servlet>
      
    <!-- 2 通过别名引用Servlet,并给它取一个网名(访问路径)  --> 
    <servlet-mapping>
        <servlet-name>time</servlet-name>       <!-- 上面的起的别名 -->
        <url-pattern>/systemTime</url-pattern>   <!-- 网名需要以斜线开头,网名自定义 -->
    </servlet-mapping>
     
  
</web-app>
View Code

猜你喜欢

转载自www.cnblogs.com/kwinwei/p/10677742.html
今日推荐