Servlet:Java服务器端小应用

一、JavaEE开发快速入门

1.什么是JavaEE

JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发(不需要使用控制台)平台。规范了卡法企业级web应用的技术标准。、

在JavaEE平台共包含了13个技术规范(随着JavaEE版本的变化所包含的技术点的数量会有增多)。它们分别是:JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JPA、JTA、JavaMail和JAF。

2. 案例演示
1.导入SQL脚本
2.将项目案例demo1放到Tomcat服务器的webapps目录中

3.启动Tomcat服务器

 

 4.打开浏览器,在地址栏输入:http://ip地址:8080/demo1访问即可。ip地址写的是Tomcat服务器所在的电脑的ip地址。
5.效果

3.JavaEE案例与JavaSE的案例对比
  1. JavaEE案例要使用到浏览器、服务器(Tomcat)、数据库。

  2. JavaEE案例程序不是通过main方法来运行,而是要放在服务器(Tomcat)来运行。

  3. JavaEE案例要使用到Servlet和jsp两个技术,而且多了一个web.xml文件做配置。

  4. JavaEE案例是将结果给打印到了浏览器上,而不是控制台上!

  5. JavaEE案例可以让更多的人去访问它、使用它!

二、HTTP协议

 1.引入

        浏览器与服务器之间发送数据的时候,是要有格式的,是双方约定好的格式。这样双方才能认识对方发送的数据!这个格式我们称之为协议(在互联网中主机与主机之间进行访问沟通都需要使用特定的协议)

2.HTTP协议介绍
1.超文本介绍

        超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。

2.HTTP协议介绍

        HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写, HTTP是万维网(WWW:World Wide Web)的数据通信的基础。HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。

3.TCP与UDP区别
TCP协议UDP协议
面向连接非面向连接
点到点的通信可以广播发送
高可靠性:三次握手、四次挥手传输不可靠、可能丢失
占用系统资源多、效率低非常简单的协议、开销小
生活案例:打电话生活案例:发送短信
3.HTTP协议特点
  • 支持客户端/服务器模式

  • 简单快速

  • 灵活(传输的数据类型多样)

  • 短连接 短链接是指每次请求响应完成后,连接会自动断开。从http1.1开始,我们使用的是长连接,长连接是每次请求响应完成后,连接会保持一小段的存活时间,供之后的请求使用。长连接要比短连接的效率高!

  • 单向性 服务端永远是被动的等待客户端(浏览器)的请求。

  • 无状态 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大

 4.HTTP协议中的URL、URI

URL(Uniform Resource Location统一资源定位符),可以帮助我们唯一定位互联网上的某一个资源,相当于是互联网资源的身份证号。URL由五个元素组成:

  • 传送协议
  • 域名或者IP地址
  • 端口号(以数字方式表示,若为HTTP的默认值“:80”可省略)
  • 请求资源路径
  • 传递数据(在URL中传递数据是以key=value的结构进行数据绑定,通常以UTF8的URL编码)

 

URI:(Uniform Resource Identifier),统一资源标识符,是一个用于标识某一互联网资源名称的字符串。URI是一个特别抽象的概念,URL包含了URI。

5.HTTP协议的请求

http协议就是用来规范请求与响应的数据格式的。 Request 消息分为3部分:

  • 第一部分叫Request line 请求行

    • 请求方式

    • uri

    • 协议及版本号

  • 第二部分叫Request header 请求头

    • key:value

  • 第三部分是Request body 请求体

    • get请求没有请求体,将数据通过url直接传递

    • post有请求体,将数据通过请求体传递

 

请求行:请求的方式、URI、协议/版本。

请求头:用于说明是谁或什么在发送请求、请求源于何处,或者客户端的喜好及能力。服务器可以根据请求头部给出的客户端信息,试着为客户端提供更好的响应。

请求体:客户端传递给服务器的数据。

请求方式:get、post、head、put....

6.get和post区别

  • GET请求会被浏览器主动cache,而POST不会,除非手动设置。

  • GET请求只能进行url编码,而POST支持多种编码方式。

  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。

  • GET请求在URL中传送的参数是有长度限制的,而POST则没有。对参数的数据类型GET只接受ASCII字符,

  • POST既可是字符也可是字节。

  • GET相比POST来说不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。

  • GET参数通过URL传递,POST放在Request body中。

7.HTTP协议的相应

 

Response消息也由三部分组成:

  • 第一部分叫Response line

  • 第二部分叫Response header

  • 第三部分叫Response body。

 响应行:和请求消息相比,响应消息多了一个“响应状态码”,它以“清晰明确”的语言告诉客户端本次请求的处理结果。

常见状态码及含义

  • 200 - 请求成功,已经正常处理完毕

  • 301 - 请求永久重定向,转移到其它URL

  • 302 - 请求临时重定向

  • 304 - 请求被重定向到客户端本地缓存

  • 400 - 客户端请求存在语法错误(客户端传递的数据类型不是后端想要的类型)

  • 401 - 客户端请求没有经过授权

  • 403 - 客户端的请求被服务器拒绝,一般为客户端没有访问权限

  • 404 - 资源未找到,客户端请求的URL在服务端不存在

  • 405 – 请求方式不支持

  • 500 - 服务端出现异常

响应头: 用于告知浏览器当前响应中的详细信息,浏览器通过获取响应头中的信息可以知道应该如何处理响应结果。响应头中信息的格式为key:value。

响应体:响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码,如此之类。

三、服务器介绍

1.服务器简介
  1. 硬件服务器的构成与一般的PC比较相似,但是服务器在稳定性、安全性、性能等方面都要求更高,因为CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。

  2. 软件服务器(英文名称Server),也称伺服器。指一个管理资源并为用户提供服务的计算机软件,通常分为文件服务器、数据库服务器和应用程序服务器。

2.服务器分类

3.Web容器(服务器)

只实现了JavaEE平台下部分技术标准,如Servlet,Jsp,JNDI,JavaMail。Web容器是开源免费的。

  • Tomcat(Apache 开源免费)

  • Jetty(Jetty 开源免费)

四、Tomcat容器使用

1.Tomcat下载与安装

下载地址:Apache Tomcat® - Welcome!

Tomcat是一款绿色软件,我们下载压缩包,解压即可使用!

注意:一定要配置正确JDK(JAVA_HOME、path),否则Tomcat服务器是不能正常使用!!!

2.目录结构与介绍

 3.访问Tomcat
 4.Tomcat常见配置

Tomcat 的配置文件由4个xml组成,分别是 context.xml、web.xml、server.xml、tomcat-users.xml。每个文件都有自己的功能与配置方法。

context.xml context.xml 是 Tomcat 公用的环境配置。 Tomcat 服务器会定时去扫描这个文件。一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器 。

web.xml Web应用程序描述文件,都是关于是Web应用程序的配置文件。所有Web应用的 web.xml 文件的父文件。

server.xml 是 tomcat 服务器的核心配置文件,通过对xml中元素的配置,实现对 tomcat中的各个组件和端口的配置。

tomcat-users.xml 配置访问Tomcat的用户以及角色的配置文件。

5.解决控制台乱码 

控制台产生乱码的原因是在Tomcat在输出日志中使用的是UTF-8编码,而我们中文的Windows操作系统使用的是GBK编码。由于编码格式不统一,所以出现了乱码。

解决方式:修改conf目录中的logging.properties文件重新指定的编码方式。如果还是不行,那么 就删除该行即可;

java.util.logging.ConsoleHandler.encoding = GBK
 6.修改监听端口

 Tomcat默认监听端口为8080。可通过修改server.xml文件来改变Tomcat监听端口。

<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000" redirectPort="8443" />

 7.配置Tomcat并发数

  • 最大并发数: maxThreads="1000"

  • 初始化时创建的线程数: minSpareThreads="100"

  • 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程:maxSpareThreads="500"

  • 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理: acceptCount="700"

 

<Connector port="8080" protocol="HTTP/1.1" 
 minSpareThreads="100"  maxSpareThreads="500"
 maxThreads="1000" acceptCount="700" 
connectionTimeout="20000" redirectPort="8443" />

五、Servlet引入

 1.Servlet理解

         Tomcat服务器。它支持Servlet规范。而要想让它能找到我们写的处理请求的代码,那我们自己的代码就应该也遵守Servlet规范!

 2.Servlet的概念

  • Servlet是Server Applet的简称,称为服务端小程序,是JavaEE平台下的技术标准,基于Java语言编写的服务端程序

  • Servlet指的是一个接口规范,具体的体现为接口及其接口的实现类。该接口的名字就是Servlet

  • Servlet是JavaWeb开发的三大组件之一(另外两个是过滤器filter与监听器listener)

 

六、第一个Servlet程序

 1.编写Servlet的步骤
  1. 自定义类,通常为xxxServlet

  2. 继承HttpServlet类(HttpServlet为Servlet接口的实现类)

  3. 重写servlet()方法,删除调用父类中方法

  4. 配置servlet的访问路径,web/WEB-INF/web.xml中配置

 2.web目录结构简单介绍

 3.编写Servlet代码
import java.io.IOException;

/*
* Servlet开发
*   1自定义类,通常名字为XXXServlet
*   2继承HttpServlet类(HttpServlet为Servlet接口的实现类)
*   3重写servlet()方法,删除调用父类中方法
*   4配置servlet的访问路径,web/WEB-INF/web.xml中配置
*
* */
public class FirstServlet extends HttpServlet {
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("servlet 程序执行了");
    }
}
4.配置Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <!-- 配置Servlet的访问路径-->
    <!-- servlet类的配置-->
    <servlet>
        <servlet-name>first</servlet-name>
        <servlet-class>com.servlet.FirstServlet</servlet-class>
    </servlet>
    <!-- servlet映射路径的配置-->
    <servlet-mapping>
        <servlet-name>first</servlet-name>
        <url-pattern>/aa</url-pattern>
    </servlet-mapping>
</web-app>
5.启动服务器

 

 启动服务器后,默认就会打开浏览器,而且会出来如下内容:

 6.效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值