带你吃透Servlet核心编程下篇(完整图文教程)(中)

简介: 文章目录1 Http协议1.1 什么是 HTTP 协议1.2 GET请求与POST请求1.3 响应的HTTP协议格式1.4 MIME数据类型2 HttpServletRequest类2.1 HttpServletRequest说明及常用方法2.2 HttpServletRequest类演示2.3 获取请求表单中的参数值(POST请求)2.4 解决post请求中的中文乱码问题3 请求转发4 HttpServletResponse类4.1 两个输出流4.2 如何回传客户端数据5 请求重定向5.1 什么是请求重定向5.2 请求重定向演示

获取请求参数的方法都写在了ServletRequest类中

ServletRequest.java:

package com.example.servlet_test;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * 读取表单数据
 */
public class ServletRequest extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobby = req.getParameterValues("hobby");
        //打印
        System.out.println("用户名:" + username);
        System.out.println("密码:" + password);
        System.out.println("爱好:" + Arrays.asList(hobby));
    }
}



2.4 解决post请求中的中文乱码问题


提交后,控制台获取的参数信息如下;


用户名中文出现了乱码!如何解决?

只需要在获取参数前设置编码格式为utf-8即可


req.setCharacterEncoding(“UTF-8”):设置请求体的字符集为UTF-8,从而解决post请求的中文乱码问题。


3 请求转发

何为请求转发?

请求转发是指当服务器接收到请求后,从一个资源跳转到另一个资源的操作。


请求转发的特点如下:


  • 浏览器地址不会变化
  • 仅仅是一次请求
  • 可以共享Request域的数据
  • 可以转发到 WEB-INF 目录(一般情况无法访问,可以通过请求转发访问)
  • 不可以访问到工程以外的资源

示例代码如下:(xml配置文件略,可以自己参考类名去配置)

public class Servlet1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求的参数
        String username = req.getParameter("username");
        System.out.println("servlet1中 username = " + username);
        //给材料盖章,传递到servlet2查看
        req.setAttribute("key1", "柜台1的章");
        //问路:servlet2怎么走
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2");
        //走向Servlet2
        requestDispatcher.forward(req, resp);
    }
}
public class Servlet2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求参数
        String username = req.getParameter("username");
        System.out.println("servlet2中 username = " + username);
        //查看柜台1是否有章
        Object key1 = req.getAttribute("key1");
        System.out.println("柜台1是否有章 " + key1);
        //处理自己的业务
        System.out.println("柜台二处理中");
    }
}


4 HttpServletResponse类

HttpServletResponse类与HttpServletRequest类一样。每次请求进来,Tomcat服务器都会创建一个Response对象传递给Servlet程序使用。HttpServletRequest表示所有请求过来的信息,而HttpServletResponse表示所有相应的信息。


如果我们希望设置返回给客户端的信息,则可以通过HttpServletResponse对象来进行设置。

相关文章
|
1月前
|
存储 Java 应用服务中间件
第 2 章 Servlet 编程
第 2 章 Servlet 编程
49 0
|
6月前
|
SQL 前端开发 Java
JSP网上订餐管理系统myeclipse开发sql数据库BS模式java编程servlet技术mvc框架
JSP 网上订餐管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助servlet技术mvc框架,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发,系统主要采用B/S模式开发。
39 0
|
10月前
|
存储 Java
【Java Web编程 十一】深入理解Servlet监听器
【Java Web编程 十一】深入理解Servlet监听器
63 0
【Java Web编程 十一】深入理解Servlet监听器
|
10月前
|
Java 数据安全/隐私保护
【Java Web编程 十】深入理解Servlet过滤器
【Java Web编程 十】深入理解Servlet过滤器
90 0
|
10月前
|
安全 Java 编译器
【Java Web编程 八】深入理解Servlet常用对象
【Java Web编程 八】深入理解Servlet常用对象
96 1
|
10月前
|
前端开发 Java 应用服务中间件
【Java Web编程 七】Servlet基本概念和生命周期
【Java Web编程 七】Servlet基本概念和生命周期
121 0
带你吃透Servlet核心编程下篇(完整图文教程)(下)
文章目录 1 Http协议 1.1 什么是 HTTP 协议 1.2 GET请求与POST请求 1.3 响应的HTTP协议格式 1.4 MIME数据类型 2 HttpServletRequest类 2.1 HttpServletRequest说明及常用方法 2.2 HttpServletRequest类演示 2.3 获取请求表单中的参数值(POST请求) 2.4 解决post请求中的中文乱码问题 3 请求转发 4 HttpServletResponse类 4.1 两个输出流 4.2 如何回传客户端数据 5 请求重定向 5.1 什么是请求重定向 5.2 请求重定向演示
带你吃透Servlet核心编程下篇(完整图文教程)(下)
|
XML 前端开发 JavaScript
带你吃透Servlet核心编程下篇(完整图文教程)(上)
文章目录 1 Http协议 1.1 什么是 HTTP 协议 1.2 GET请求与POST请求 1.3 响应的HTTP协议格式 1.4 MIME数据类型 2 HttpServletRequest类 2.1 HttpServletRequest说明及常用方法 2.2 HttpServletRequest类演示 2.3 获取请求表单中的参数值(POST请求) 2.4 解决post请求中的中文乱码问题 3 请求转发 4 HttpServletResponse类 4.1 两个输出流 4.2 如何回传客户端数据 5 请求重定向 5.1 什么是请求重定向 5.2 请求重定向演示
带你吃透Servlet核心编程下篇(完整图文教程)(上)
带你吃透Servlet核心编程上篇(完整图文教程)(下)
文章目录 1 走进Servlet 1.1 Servlet简介 1.2 第一个Servlet程序 1.3 Servlet程序如何定位到url地址 1.4 Servlet的生命周期方法 1.5 Servlet请求的分发处理 1.6 通过继承HttpServlet类实现Servlet程序 2 Servlet体系 2.1 Servlet继承体系 2.2 ServletConfig类的使用
带你吃透Servlet核心编程上篇(完整图文教程)(下)
|
XML 应用服务中间件 数据格式
带你吃透Servlet核心编程上篇(完整图文教程)(中)
文章目录 1 走进Servlet 1.1 Servlet简介 1.2 第一个Servlet程序 1.3 Servlet程序如何定位到url地址 1.4 Servlet的生命周期方法 1.5 Servlet请求的分发处理 1.6 通过继承HttpServlet类实现Servlet程序 2 Servlet体系 2.1 Servlet继承体系 2.2 ServletConfig类的使用
带你吃透Servlet核心编程上篇(完整图文教程)(中)