Servlet+JSP+AJAX(day02)

版权声明:cxyo.cn https://blog.csdn.net/weixin_44075537/article/details/85036667
目录
通过web.xml的方式 配置映射地址: *****
Servlet生命周期 ***
GET请求 与 POST请求的区别: *****
请求参数乱码问题 *****
响应时 乱码问题 *****

通过web.xml的方式 配置映射地址: *****

步骤1. 将Servlet类 配置到web.xml中, 并起别名

<servlet>
    <servlet-name>任意标识符别名</servlet-name>
    <servlet-class>包名.类名</servlet-class>
</servlet>

步骤2. 给指定别名的servlet , 添加映射的地址 (注意: 这里指的是添加 而不是设置 ! 可添加多个 !)

<servlet-mapping>
    <servlet-name>已指定的别名</servlet-name>
    <url-pattern>/映射地址</url-pattern>
</servlet-mapping>

案例:

<!-- 步骤1.   将Servlet类  配置到web.xml中,  并起别名
<servlet>
    <servlet-name>haha</servlet-name>
    <servlet-class>cn.xdl.demo.Servlet1</servlet-class>
</servlet>
<!-- 步骤2.   给指定别名的servlet , 添加映射的地址 (注意: 这里指的是添加 而不是设置 !  可添加多个 !)
-->
<servlet-mapping>
    <servlet-name>haha</servlet-name>
    <url-pattern>/s1.php</url-pattern>
</servlet-mapping>

Servlet生命周期 ***

serlvet在tomcat中 是单例存在的, 只会创建一个对象 , 这个对象的生命周期, 存在三个Java方法的体现:

  1. init : 当Servlet初始化完毕时, 自动执行 ! 默认情况下, 当用户第一次访问此Servlet时, 对象被创建, 后续访问重复利用此对象 !一般我们在这里进行一些资源的初始化操作 !
  2. service : 当用户请求时, 此方法自动执行! 此方法每次执行 都在一个新的线程中 .
  3. destroy : 当Servlet即将销毁时 , 自动执行 !当服务器被关闭时 或 应用被卸载时, 会销毁此对象 !一般用于释放一些资源

GET请求 与 POST请求的区别: *****

GET请求:
- 请求的数据 以键值对的形式 在网址中拼接!
- 储能传输字符串数据
- 可传输的数据量有限, 网址大小不能超过2048b
- 数据不安全
- 效率较高

POST请求:
- 请求的数据 以键值对的形式 在请求体中存储!
- 可以传输任意类型的数据 (文件上传只能使用POST完成)
- 理论上, 可传输的数据是无限制的 !
- 数据较为安全
- 效率较低

doGet方法 & doPost方法

我们一般重写doGet方法 处理get请求
重写doPost方法, 处理post请求 .

常见的触发GET请求的方式:
1. 点击超链接跳转
2. 浏览器输入网址后回车
3. 表单提交时 ,提交方式为GET
4. 通过js操作window.location.href进行修改地址
5. 通过后续学习的 Ajax技术的GET请求

常见的触发POST请求的方式:
1. 表单提交时, 提交方式为POST
2. 后续学习的Ajax技术的POST请求

如何接受用户请求的参数 ***

  1. 接受单个请求参数 (String)
    String value = request.getParameter(String key);
  2. 接受一组请求参数 (String[])
    String[] values = request.getParameterValues(String key);

请求参数乱码问题 *****

tomcat8版本 解决了GET请求时 乱码的问题, POST请求依然是乱码的 !

方式1. 解决所有乱码问题: (tomcat早期版本乱码问题/POST请求乱码问题)

    原理: 将乱码的文字, 按照乱码的编码打碎成字节数组, 再按照正确的编码组装为字符串即可 !

    步骤: 1.  将接受到文字字符串, 按照ISO-8859-1编码 打碎
            byte[] bytes = 乱码文字.getBytes("ISO-8859-1");

            2.  将字节数组, 按照正确的编码重新组装为文字
            String 正常文本 = new String(bytes,"UTF-8");        

方式2. 仅用于解决POST乱码问题 , 用于在数据获取之前, 调整请求体的编码格式 ! (建议写在doPost方法的第一行)

    request.setCharacterEncoding("UTF-8");

响应时 乱码问题 *****

处理响应乱码时, GET请求与POST请求方式一致 !

方式1. 设置网页内容类型, 并设置编码格式
response.setContentType(“text/html;charset=utf-8”);

方式2. 仅仅用于设置编码格式, 使用方式2 可能导致浏览器打开依然乱码!
response.setCharacterEncoding(“UTF-8”);

猜你喜欢

转载自blog.csdn.net/weixin_44075537/article/details/85036667