Servlet

本文介绍了如何安装Web服务器Tomcat,部署web项目,创建Servlet并配置web.xml。重点讲解了Servlet的概念、创建过程和生命周期,以及HTTP协议的基础知识,包括请求方式和响应结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Web开发概述

1.学习web开发,需要先安装一台web服务器,将开发好的web项目部署在web服务器中供外界访问。
在这里插入图片描述
2.web程序:把开发好的项目,部署在远端的服务器中,通过地址远程访问服务器中的项目。
3.服务器本质是一款软件,提供服务,用户访问资源文件,可以做出响应。
4.web服务器:

  • web服务器是指驻留于因特网上某种类型计算机的程序。
  • 可以向浏览器等web客户端提供文档,也可以放置网站文件,让全世界浏览;它是一个容器,是一个连接用户与程序之间的中间件。
  • web服务器有很多,流行的web服务器有Tomcat、WebSphere、WebLogic、Jboss等。
  • 在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的web服务器:Apache的Tomcat,该服务器支持全部JSP以及Servlet规范。

5.web开发环境搭建:

  • Tomcat的目录层次结构在这里插入图片描述

  • 双击bin目录下的startup.bat文件,输入http://localhost:端口号或http://127.0.0.1:端口号或局域网ip:端口号。在这里插入图片描述

  • Tomcat配置:(1)server.xml是Tomcat的主配置文件:提供Tomcat组件的初始配置,tomcat启动的时候执行这些初始化设置。修改此文件后,需要重新启动tomcat。如果此文件修改错误,则tomcat不能正常启动。(2)修改服务器端口号: <connector port=“8080” protocol=“HTTP/1.1” connectionTimeout=“20000” redirectPort="8443/>
    6.创建发布web项目
    (1)具体步骤:

  • 在开发工具中创建一个dynamic web project javaweb;

  • 在webContent中创建index.html文件;

  • 发布web应用到服务器,两种方式:1:手动发布:将workspace中web项目下WebContent目录中的文件复制到服务器webapps目录下,并在此目录中创建新的javaweb根目录。2.自动发布:自动将web应用发布到web服务器下,需要在开发工具中集成tomcat进来。在这里插入图片描述
    在这里插入图片描述

  • 运行javaweb:打开浏览器访问http:localhost:8080/ javaweb/index.html

  • web项目结构在这里插入图片描述

2.Servlet

1.Servlet概述

  • Servlet是Server Applet的合成,意思为用java编写的服务器端的程序,它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法,Servlet和客户端采用“请求/响应”的模式。
  • Servlet作用:1.接收用户发送的请求,数据;2.调用其他的java程序来处理请求;3.根据处理结果,服务器将响应返回给客户端。

2.Servlet创建和使用

  • 创建一个类继承javax.servlet.http包下的HttpServlet;
  • 在web.xml文件中配置Servlet;
 <!--
        xml文件:可扩展标记语言,作用是用来存储数据
        web.xml:用来存储web项目中的一些配置信息,此文件在服务器启动时被服务器加载读取

    -->
    <!-- 配置servlet 在服务器中注册servlet 由服务器管理所有的Servlet对象-->
    <servlet>
        <servlet-name>demo1</servlet-name><!--为servlet对象定义一个名称-->
        <servlet-class>com.ff.javaweb.servlet.Demo1Servlet</servlet-class><!--类的地址,服务器通过反射机制创建对象-->
        <!--为servlet配置一些参数-->
        <init-param>
            <param-name>count</param-name>
            <param-value>1</param-value>
        </init-param>
    </servlet>
    <!--给servlet配置一个访问地址-->
    <servlet-mapping>
        <servlet-name>demo1</servlet-name>
        <!--为servlet配置供前端访问的映射地址  可以配置多个地址-->
        <url-pattern>/demo1Servlet</url-pattern>
    </servlet-mapping>
  • 运行Servlet程序:通过浏览器访问http:localhost:8080/javaWeb/配置的url-pattern;
  • 由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用< servlet >元素和< servlet-mapping >元素完成。

3.创建发布web项目

  • web.xml文件为web应用的配置文件,它必须放在web应用目录WEB-INF目录下。
  • web.xml文件用于对web应用下的web资源进行配置,服务器在启动时会读取web.xml文件中的内容。

4.Servlet生命周期
在这里插入图片描述

3.Http

1.http协议

  • http协议属于应用层;
  • 超文本传输协议(HyperText Transfer Protoclo)服务器传输超文本到本地浏览器的传送协议,是互联网上应用最为流行的一种网络协议,用于定义客户端浏览器和服务器之间交换数据的过程;
  • HTTP是一个基于TCP/IP通信协议来传送数据;
  • HTTP是一个属于应用层的协议,由于其简捷、快捷的方式,适用于分布式超媒体信息系统。

2.http请求

  • 客户端连上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个http请求;
  • 请求包括:请求头、请求体(可能有,可能没有)、请求行包括http请求方式,请求资源名称,http版本。
  • 请求头包含主机地址,以及客户端的一些环境信息,以键值对的形式传递。
  • 提交表单的数据都在请求体中,请求体:代表着浏览器在post请求方式中专递给服务器的参数,请求体中参数以键值形式传递,多个用&连接,服务器接收到后再解析。

3.两种http请求方式
(1)GET方式:
超链接访问,默认是GET方式,form提交,不指定method,默认GET方式。
(2)POST方式:
form提交,指定method=“POST”。
(3)get方式与post方式的区别:
get:主要是从服务器端获取数据,也可以发送少量数据, get方式请求的数据在地址中拼接,会在浏览器地址栏显示,相对来说不安全,大小也会受到浏览器的限制。
post:主要是向服务器端发送数据,例如提交表单, post方式请求数据在请求体中,不在地址栏显示,相对安全,大小不受限制(通过post方式上传文件)。

4.HttpServletRequest

  • HttpServletRequest是ServletRequest的子接口,HttpServletRequest比ServletRequest多了一些针对Http协议的方法;
  • 请求和响应是web交互最基本的模式,在Servlet中,用HttpServletRequest来表示请求;
  • HttpServletRequest:封装了请求的信息,可以从中获取任何请求信息。

5.http响应
一个http响应代表服务器向客户端回送数据,它包括:响应行,响应头,响应体。响应行里包括http协议版本,以及用于描述服务器对请求的处理结果;响应头用于描述服务器的基本信息,以及数据描述;响应体代表服务器向客户端浏览器回送的正文。

6.HttpServletResponse

  • HttpServletResponse是ServletResponse的子接口。
  • web服务器收到客户端的http请求,会针对每一次请求,分别创建一个代表响应的HttpServletResponse对象;
  • HttpServletResponse对象代表响应。

4.向浏览器动态生成网页内容

1.用getWrite()获得一个PrintWrite字符输出流输出数据response会默认以ISO8859-1将需要输出到浏览器的字符进行解码,如果输出的字符在ISO8859-1中不存在,就会导致乱码。

 	PrintWriter out = resp.getWriter();
 	out.write("<h1 align=\"center\">账号不能为空!</h1>");

2.response.setContentType(“text/html;charset=utf-8”);方法,可以同时设定response所使用的字符集编码和浏览器打开所用的字符集编码。

//设置响应内容的编码
resp.setContentType("text/html;charset=utf-8");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值