天天看点

Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用

文章目录

  • 一、服务器
    • 1.1概述
      • 1.1.1 什么是Web
      • 1.1.2 什么是web服务器
    • 1.2 Web服务器
      • 1.2.1 常见服务器
      • 1.2.2 Tomcat服务器
      • 1.2.3 Tomcat安装
      • 1.2.3 Tomcat目录结构
      • 1.2.4 Tomcat的启动与关闭
      • 1.2.5 Tomcat修改端口号
    • 1.3 Tomcat部署项目的方式
    • 1.4 web.xml中配置项目默认访问的页面
  • 二、浅谈servlet
    • 2.1 概念
      • 2.1.1 Servlet作用
      • 2.1.2 Servlet生命周期
      • 2.1.3 Servlet接口中的五个方法
      • 2.1.4 ==Servlet执行原理==
    • 2.2 Servlet开发步骤
      • 2.2.1搭建开发环境
      • 2.2.2 编写Servlet
      • 2.2.3 部署Servlet
      • 2.2.4配置Servlet
    • 2.3运行测试
  • 三、使用IDEA创建Web项目
      • 3.1.1 使用IDEA集成Tomcat
      • 3.1.2 如何导出war文件
  • 四、HTTP协议
    • 4.1 什么是HTTP
    • 4.2 HTTP协议的特点
    • 4.3 HTTP协议通讯流程
  • 五、Servlet详解
    • 5.1 Servlet的核心接口和类
      • 5.1.1 Servlet接口
      • 5.1.2 GenericServlet 抽象类
      • 5.1.3 HttpServlet类
    • 5.2 Servlet的两种创建方式
      • 5.2.1 实现接口Servlet(不推荐,需要实现接口中所有的方法)
      • 5.2.2继承HTTPServlet(推荐)
      • 5.2.3 常见错误
    • 5.3 Servlet的两种配置
      • 5.3.1 web.xml配置
      • 5.2.3 配置属性
      • 5.3.3 使用注解(Servlet3.0后支持)
      • 5.3.4 @WebServlet注解常用属性
  • 六、Servlet应用
    • 6.1 request对象
      • 6.1.1 get和post的区别
      • 6.1.2 request的主要方法
      • 6.1.3 request的应用
      • 6.1.4 get请求收参问题
      • 6.1.5 get中文乱码
      • 6.1.6 post中文乱码
    • 6.2 response对象
      • 6.2.1 response对象的主要方法
      • 6.2.2 response应用
      • 6.2.3 解决中文乱码问题

一、服务器

1.1概述

1.1.1 什么是Web

  • Web (World Wide Web) 被称作万维网,可以简单理解为网站,它用来表示Internet主机上拱外界访问的资源,可以分为静态资源(HTML/CSS)与动态资源(JSP/Servlet)两大类,在Java中,动态web资源开发技术可统称为Java Web

1.1.2 什么是web服务器

  • Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有的用户通过浏览器访问

1.2 Web服务器

1.2.1 常见服务器

1. 开源服务器:

  • Tomcat(主流web服务器之一,适合初学者)
  • jetty(阿里系,运行效率高于Tomcat)
  • resin(新浪,所有开源服务器中,运行效率最高的)

    三者代码角度几乎相同,只是在开启与关闭服务器软件时对应的命令稍有区别

2. 收费服务器:

  • WebLogic (Oracle)
  • WebSphere(IBM)

    提供相应的服务与支持,耗资极大

1.2.2 Tomcat服务器

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目
由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持
最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现
Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范
因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可
           
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器
在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选
对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器
可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求
实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的
所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的
           

1.2.3 Tomcat安装

  • 官网(https://tomcat.apache.org/)下载解压缩
  • 尽量放置在英文目录中

1.2.3 Tomcat目录结构

文件夹 说明 备注
bin 该目录存放二进制可执行文件 startup.bat:启动Tomcat、shutdown.bat:停止Tomcat
config

配置文件目录,server.xml与web.xml

文件尤其重要

server.xml:配置整个服务器信息,例如修改端号,编码格式

web.xml:项目部署描述符文件

lib Tomcat类库,存放Tomcat运行所需的的jar文件
logs 存放日志文件
temp Tomcat临时文件,这个目录下的东西在停止Tomcat后删除
webapps 存放web项目的目录,其中每个文件夹都是一个项目
work 运行时生成的文件,最终运行的文件都在这里   当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,再编译Java文件生成class文件,生成的Java文件和class文件都会放到这个目录下

1.2.4 Tomcat的启动与关闭

  • 打开bin目录,双击startup.bat即可启动,打开浏览器,输入 http://localhost:8080 可验证是否成功
  • 打开bin目录,双击shutdown.bat即可关闭

1.2.5 Tomcat修改端口号

  • Tomcat默认端口号为8080,可以在conf/server.xml文件里修改(需要重启Tomcat才能有效)
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
           

1.3 Tomcat部署项目的方式

1.直接部署在webapps目录下

  • 直接将项目放到webapps目录下即可
  • 简化部署:将项目打成一个war包,再将war包放置到webapps目录下,war包会自动解压缩

2. 配置conf/server.xml文件,在

<Host>

标签体中配置

<Context docBase="D:\hello" path="/hehe" />

docBase:项目存放的路径

path:虚拟目录

3. 在conf\Catalina\localhost创建任意名称的xml文件。在文件中编写

<Context docBase="D:\hello" />

虚拟目录:xml文件的名称

1.4 web.xml中配置项目默认访问的页面

<?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">
  
  <!--配置项目默认的访问页面-->
  <welcome-file-list>
	<welcome-file>test.html</welcome-file>
  </welcome-file-list>
  
</web-app>
           

二、浅谈servlet

2.1 概念

  • Servlet: Servlet Applet的简称,是运行在Web服务器或者应用服务器上的程序,可交互式的处理客户端发送到服务端的请求,并完成操作相应
  • 它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层
  • Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat)的规则
  • 我们可以自定义一个类,实现Servlet接口,复写方法

2.1.1 Servlet作用

  • 接受客户端请求,完成操作
  • 动态生成网页
  • 将包含操作结果的动态网页响应给客户端

2.1.2 Servlet生命周期

  • Servlet 初始化后调用 init () 方法
  • Servlet 调用 service() 方法来处理客户端的请求
  • Servlet 销毁前调用 destroy() 方法
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的

2.1.3 Servlet接口中的五个方法

1.init() 方法

  • init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。

    因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。

  • 当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,

    适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,

    这些数据将被用于 Servlet 的整个生命周期

2. service() 方法

  • service() 方法是执行实际任务的主要方法。
  • Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,

    并把格式化的响应写回给客户端。

  • 每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。
  • service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),

    并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

3. doGet() 方法

  • GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。

4.doPost() 方法

  • POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

5. destroy() 方法

  • destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。
  • destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

2.1.4 Servlet执行原理

1.服务器接收到客户端浏览器的请求,会解析请求URL路径,获取访问的Servlet的资源路径

2.查找web.xml文件,是否有对应的

<url-pattern>

标签体的内容

3.如果有则找到对应的

<servlet-class>

全类名,通过反射创建对象

5.tomcat会把字节码文件加载进内存

6.再利用对象调用方法

2.2 Servlet开发步骤

2.2.1搭建开发环境

  • 将Servlet相关jar包(lib\servlet-apii.jar)配置到classpath中

2.2.2 编写Servlet

  • 实现javax.servlet.Servlet
  • 重写五个重要方法
  • 在核心的service()方法中编写输出语句,打印访问结果
import javax.*; 
import java.io.IOException;

	public class MyServlet implements Servlet{
		public void init(ServletConfig config) throws ServletException{
		
		}
		public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException{ 
			System.out.printIn("My Servlet!");
		}

		public void destroy(){}
		
		public ServletConfig getServletConfig(){ 
		return null;
		}

		public String getServletInfo(){ 
			return null;
		}
	}
           

2.2.3 部署Servlet

  • 编译MyServlet后,将生成的.class文件放在WEB/INF/classes文件中

2.2.4配置Servlet

  • 编写WEB-INF下项目配置文件web.xml
<?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-name>demo01</servlet-name>
        <servlet-class>com.jjh.MyServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>demo01</servlet-name>
        <url-pattern>/myServlet</url-pattern>
    </servlet-mapping>
</web-app>
           

注意:url-pattern配置的内容就是浏览器地址栏输入的URL中项目名称后的资源

2.3运行测试

  • 启动Tomcat,在浏览器地址栏中输入http://localhost:8080/myweb/myservlet访问

三、使用IDEA创建Web项目

3.1.1 使用IDEA集成Tomcat

Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用
  • 选择Tomcat安装目录
    Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用
    Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用
  • 配置Tomcat

3.1.2 如何导出war文件

war文件相当于一个可运行的web程序,一个项目完成并调试后,打包成war作为发布版
可以将war包放置在Tomcat\webapps\目录下,启动Tomcat服务器,war文件可自动解压
           
  • 打开项目结构
    Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用
  • 构建项目
    Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用
Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用
  • 将war包部署在Tomcat\webapps目录下
    Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用

四、HTTP协议

4.1 什么是HTTP

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,
是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)
           

4.2 HTTP协议的特点

•支持客户端(浏览器)/服务器模式。
•简单快速:客户端只向服务器发送请求方法和路径,服务器即可响应数据,因而通信速度很快。请求方法常用的有GET、POST 等。
•灵活:HTTP允许传输任意类型的数据,传输的数据类型由Content-Type标识。
•无连接:无连接指的是每次TCP连接只处理一个或多个请求,服务器处理完客户的请求后,即断开连接。采用这种方式可以节省 传输时间。
	。HTTP1.0版本是一个请求响应之后,直接就断开了。称为短连接。
	。HTTP1.1版本不是响应后直接就断开了,而是等几秒钟,这几秒钟之内有新的请求,那么还是通过之前的连接通道来收发消 息,如果过了这几秒钟用户没有发送新的请求,就会断开连接。称为长连接。
•无状态:HTTP协议是无状态协议。
	。无状态是指协议对于事务处理没有记忆能力。
           

4.3 HTTP协议通讯流程

•客户与服务器建立连接(三次握手)。
•客户向服务器发送请求。
•服务器接受请求,并根据请求返回相应的文件作为应答。
•客户与服务器关闭连接(四次挥手)。
           

五、Servlet详解

5.1 Servlet的核心接口和类

  • 在Servlet体系结构中,除了实现Servlet接口,还可以通过继承GenericServlet或HttpServlet类,完成编译

5.1.1 Servlet接口

在ServletAPI中最重要的是Servlet接口,所有Servlet都会直接或间接的与该接口发生联系,或是直接实现该接口,或间接继承自实现了该接口的类。
该接口包括以下五个方法:
•init(ServletConfig config)
•ServletConfig getServletConfigO
•service(ServletReq uest req,ServletResponse res)
•String getServletlnfo()
•destroy()
           

5.1.2 GenericServlet 抽象类

GenericServlet使编写Servlet变得更容易。它提供生命周期方法init和destroy的简单实现,要编写一般的Servlet,只需重写抽象 service方法即可。
           

5.1.3 HttpServlet类

HttpServlet是继承GenericServlet的基础上进一步的扩展。提供将要被子类化以创建适用于Web站点的HTTP servlet的抽象类。
HttpServlet的子类至少必须重写一个方法,该方法通常是以下这些方法之一:
	•doGet:如果servlet支持HTTP GET,
	•doPost:用于HTTP POST,
	•doPut:用于HTTP PUT,
	•doDelete:用于HTTP DELETE请求
           

5.2 Servlet的两种创建方式

5.2.1 实现接口Servlet(不推荐,需要实现接口中所有的方法)

package com.jjh;
import javax.servlet.*;
import java.io.IOException;

public class MyServlet implements Servlet {
    @Override
    public void init(ServletConfig config) throws ServletException {
    }
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    @Override
    public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
        System.out.println("my first servlet!");

    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {

    }
}
           

5.2.2继承HTTPServlet(推荐)

package com.jjh;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class HTTPServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("这是GET请求");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("这是POST请求");
    }
}
           

5.2.3 常见错误

•HTTP Status 404资源找不到。
	。第一种情况:地址书写错误。
	。第二种情况:地址没有问题,把IDEA项目中out目录删除,然后重新运行。
•Serlvet地址配置重复。both mapped to the url-pattern [/helloservlet] which is not permittedo
•Serlvet地址配置错误。比如没有写/ Invalid [helloservlet2] in servlet mappingo
           

5.3 Servlet的两种配置

5.3.1 web.xml配置

<?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-name>demo01</servlet-name>
        <servlet-class>com.jjh.MyServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo01</servlet-name>
        <url-pattern>/myServlet</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>gs</servlet-name>
        <servlet-class>com.jjh.GenServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>gs</servlet-name>
        <url-pattern>/gs</url-pattern>
    </servlet-mapping>

</web-app>
           

5.2.3 配置属性

url-pattern定义匹配规则,取值说明:

  • 精准匹配      /具体的名称     只有url路径是具体名称的时候才会触发Servlet
  • *后缀匹配       .xxx         只要以xxx结尾就能触发Servlet
  • 通配符匹配       /         匹配所有请求,包含服务器所有资源*
  • 通配符匹配       /         匹配所有请求,包含服务器资源,但不包括 .jsp
load-on-startup
1.元素标记容器是否应该在web应用程序启动的时候就加载这个servlet
2.它的值必须是一个整数,表示servlet被加载的先后顺序
3.如果该元素的值为负数或者没有设置,则容器会当Servlet被请求时再加载
4.如果值为正整数或者0时,表示容器在应用启动时就加载并初始化这个servlet,值越小,servlet的优先级越高,就越先被加载。值相同时,容器就会自己选择顺序来加載
           

5.3.3 使用注解(Servlet3.0后支持)

package com.jjh.servlet2;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(value = {"/bs","/bss"})
public class BasicServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("这是doGet...");
    }
}
           

5.3.4 @WebServlet注解常用属性

•name: Serlvet名字(可选)
•value:配置url路径,可以配置多个
•urlPatterns:配置url路径,和value作用一样,不能同时使用
•loadOnStartup:配置Servlet的创建的时机,如果是0或者正数启动程序时创建,如果是负数,则访问时创建。数子越小优先级越高
           

六、Servlet应用

6.1 request对象

  • 在Servlet中用来处理客户端请求需要用doGet或doPost方法的request对象
    Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用

6.1.1 get和post的区别

get请求:
	•get提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连
	•get方式明文传递,数据量小,不安全
	•效率高,浏览器默认请求方式为GET请求
	•对应的Servlet的方法是doGet
post请求:
	•post方法是把提交的数据放在HTTP包的Body中
	•密文传递数据,数据量大,安全
	•效率相对没有GET高
	•对应的Servlet的方法是doPost
           

6.1.2 request的主要方法

方法名 说明
String getParameter(String name) 根据表单名称获取提交数据
void setCharacterEncoding(String charset) 指定每个请求的编码

6.1.3 request的应用

  • HTML页面
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="/Servlet01_war_exploded/rs" method="get">
    用户名:<input type="text" name="userName"><br/>
    密码:<input type="password" name="passWord"><br/>
    <input type="submit" value="注册">
</form>

</body>
</html>
           
  • Servlet代码
package com.jjh.servlet2;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(value = {"/rs"})
public class MethodGet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取用户请求发送的信息
        String userName = req.getParameter("userName");
        String passWord = req.getParameter("passWord");
        System.out.println("提交数据:" + userName + "\t" + passWord);
    }
}
           

6.1.4 get请求收参问题

  • 产生乱码是因为服务器和客户端沟通的编码不一致造成的,因此解决的办法是:在客户端和服务器之间设置一个统一的编码,之后就按照此编码进行数据的传输和接收

6.1.5 get中文乱码

  • 在Tomcat7及以下版本,客户端以UTF-8的编码传输数据到服务器端,而服务器端的request对象使用的是ISO8859-1这个字符编码来接收数据,服务器和客户端沟通的编码不一致因此才会产生中文乱码的。

6.1.6 post中文乱码

  • 由于客户端是以UTF-8字符编码将表单数据传输到服务器端的,因此服务器也需要设置以UTF-8字符编码进行接收。
    • 解决方案:使用从ServletRequest接口继承而来的setCharacterEncoding(charset)方法进行统一的编码设置。
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(value = {"/rs"})
public class MethodGet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //对request请求对象设置统一的编码
        req.setCharacterEncoding("utf-8");

        //获取用户请求发送的信息
        String userName = req.getParameter("userName");
        String passWord = req.getParameter("passWord");
        System.out.println("提交数据:" + userName + "\t" + passWord);
    }
           

6.2 response对象

  • response对象用于响应客户端请求并向客户端输出信息
    Servlet与Tomcat学习笔记一、服务器二、浅谈servlet三、使用IDEA创建Web项目四、HTTP协议五、Servlet详解六、Servlet应用

6.2.1 response对象的主要方法

方法名称 作用
setHeader(name,value) 设置响应信息头
setContentType(String) 设置响应文件类型、响应式的编码格式
setCharacterEncoding(String) 设置服务端响应内容编码格式
getWriter() 获取字符输出流

6.2.2 response应用

//响应数据给客户端
        resp.setContentType("text/html;charset = utf-8");
        PrintWriter writer = resp.getWriter();
        writer.println("注册成功");
           
  • 如果输出内容包含中文,则出现乱码,因为服务器默认采用ISO8859-1编码响应内容

6.2.3 解决中文乱码问题

  • 同时设置服务端的编码格式和客户端响应的文件类型及响应时的编码格式