Web之Servlet技术

本文详细介绍了Web开发中的Servlet技术,涵盖web服务器、web.xml配置、虚拟主机设置、HTTPS配置、HTTP协议以及Servlet的开发和应用。讨论了Servlet接口、HTTP请求与响应、Servlet生命周期、线程安全以及Cookie和Session的使用。通过对HTTP协议的剖析,展示了Servlet如何处理客户端请求,并解释了在Java中如何开发和配置Servlet以实现动态Web资源的功能。
摘要由CSDN通过智能技术生成

1、web开发技术

  • 静态web资源的开发技术
    • Html
  • 常用动态web资源开发技术
    • JSP/Servlet、ASP、PHP等
    • 在java中,动态web资源开发技术统称为javaweb

2、常见的web服务器

  • weblogic:支持J2EE规范
  • websphere:支持J2EE规范
  • apache(tomcat):支持全部JSP以及Servlet规范,开源的
  • 常见的服务器端口地址:
    • http端口:80
    • smtp端口:25
    • pop3端口:110
    • ftp端口:23
    • https端口:443

3、web.xml文件

  • web应用的重要配置文件,一切涉及到对web应用中的web资源进行配置,都是在web.xml文件中进行设置的,如:

    • 1、某个web资源配置为网站首页(设置index.xml为首页)

      • <?xml version="1.0" encoding="ISO-8859-1"?>
        <web-app xmlns="http://java.sun.com/xml/ns/javaee"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
                version="3.0"
                metadata-complete="true">
            <welcome-file-list>
                <welcome-file>index.html</welcome-file>
            </welcome-file-list>
        </web-app>

    • 2、将Servlet程序映射到某个url地址上
    • 3、为web应用配置监听器
    • 4、为web应用配置过滤器
    • .....

4、虚拟主机的配置

  • 配置虚拟主机就是在tomcat服务器中配置一个网站
  • 如需要在web服务器中配置一个网站,需使用Host元素进行配置,如:

<Host name="site1" appBase="d:\app">
    <Context path="浏览器访问目录" docBase="应用的真实目录" />
<Host>
  • 配置的主机(网站)要想被外部访问,必须在DNS服务器或Windows系统中注册
  • 在Windows中的注册方式为修改计算机的hosts文件,如:

c:\Windows\System32\drivers\etc\hosts
在文件中添加如:
192.168.25.21(电脑IP)  www.djh.com
  • 对于web应用可以使用命令进行打包,后缀名打包为war,如:

  • web应用:news
    打包:jar -cvf news.war news
    
    • 对于打包后的war包,当拷贝到服务器目录(如:tomcat的webapps)下时会自动解压
    对于打包后的war包,当拷贝到服务器目录(如:tomcat的webapps)下时会自动解压

5、tomcat配置https连接器

  • 工具:

    keytool -genkey -alias tomcat -keyalg RSA
    -alias:表示的是定义别名为tomcat
    RSA:表示采用的算法
    
  • 配置:在tomcat服务器的server.xml文件中添加如下代码

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
           maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" 
           keystoreFile="上面工具产生的密钥库文件"
           keypass="上面工具中填入的密码"
    />  

6、HTTP协议

  • HTTP协议用于定义客户端与WEB服务器通讯的格式
  • 使用telnet程序连接web服务器,可以使用HTTP协议获取某个页面,快速了解HTTP协议的作用,如:

    在tomcat的webapps目录下有一个news应用,其中有一个1.html,则通过命令行输入下列命令可以连接并查看
        telnet localhost 8080(服务器端口)
        (回车)
        GET /news/1.html HTTP/1.1
        (连续回车两次可查看结果)
    
  • HTTP协议与平台无关
  • HTTP请求

    • 一个完整的HTTP请求包括以下内容:

      一个请求行、若干消息头、以及实体内容,如:
      请求行:(用于描述客户端的请求方式、请求的资源名称以及使用的HTTP协议版本)
          GET /news/my.html HTTP/1.1
      多个消息:(用于描述客户端请求的主机地址以及客户端的一些环境信息等)
          Accept: */*
          Accept-Language: en-us
          Connection: Keep-Alive
          Host: localhost
          Reference: http://localhost/link.asp
      
    • 请求方式有:

      POST、GET、HEAD、OPTIONS、DELETE、TRACE、PUT
      常用的为:GET与POST
      
      • 用户如没有设置,默认情况下浏览器向服务器发送的都是get请求
      • GET与POST的区别:

        • GET请求,可以在请求的URL地址后以?的形式带上提交给服务器的数据,多个数据之间以&进行分割,如:

          GET /mail/1.html?name=abc&password=123 HTTP/1.1
          
          • GET方式的特点:在URL地址后附带的参数是有限制的,其数据容量通常不能超过1K
        • POST请求,可以在请求的实体内容中向服务器发送数据
          • POST方式的特点:传送的数据量无限制
    • HTTP请求的常用头:

       Accept:text/html,image/*   (告诉服务器,客户端支持的数据格式)
       Accept-Charset:ISO-8859-1  (告诉服务器,客户端采用的编码)
       Accept-Encoding:gzip,compress  (告诉服务器,客户端支持的数据压缩格式)
       Accept-Language:en-us,zh-cn  (客户端的语言环境)
       Host:www.djh.com.cn:80      (表示请求的主机)
       if-Modified-Since:Tue, 11 Jul 2016 18:23:59 GMT    (告诉服务器,资源的缓存时间)
       Referer:http://www.djh.com.cn/index.jsp   (告诉服务器,是从哪个资源来访问服务器)
       User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36)   (客户机的软件环境)
       Cookie  (向服务器带数据)
       Connection:close(Keep-Alive)       (表示连接状态)
       Date:Thu, 11 Aug 2016 10:32:14 GMT 
      
  • HTTP响应

    • 一个HTTP响应代表服务器向客户端回送的数据,它包括:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值