EasyDemo*Servlet运行原理(三)

一、Servlet工作原理

  1. Servlet工作原理

1.1 Servlet如何获取请求参数

1.1.1获取请求参数值的方法

*获取提交的Name-Value数值

-getParameter(name)

*获取提交的Name-Values数值

-getParameterValues(name)

1.1.2getParameter方法

*常用于传入的参数中,一个名字对应一个值的形式

*String request.getParameter(String paramName)

*如果参数名写错,会产生null

1.1.3getParameterValues方法

*String[] request.getParameterValues(String paramName)

*当需要获取参数名相同的多个参数值时使用该方法

*多用于获取提交的表单中复选框的值

*如果该参数名不存在,则返回null

1.2请求方式(详见其他文章)

1.3 Servlet如何处理中文参数

1.1.1为什么表单提交中文会出现乱码

*为什么会产生乱码

-当表单提交时,浏览器会对中文参数值进行编码(会使用打开表单所在的页面的字符集进行编码)

-Web服务器在默认情况下会使用iso-8859-1去解码

-编码与解码方式不一致时,就会出现乱码

1.1.2解决POST方式时的乱码问题

*step1:确保表单所在的页面按照指定的字符集打开

*step2:在服务器端按照这个编码格式解码即可

-request.setCharacterEncoding(“utf-8”)

-添加在读取参数的前面

-此方法只针对post请求有效

1.1.3解决GET方式时的乱码问题

*step1:使用meta确保表单所在页面按照指定字符集打开

*step2:在服务器端使用如下方式获取参数值

1.4 Servlet如何输出中文

1.1.1为什么返回的页面会有乱码

*编码:将Unicode字符集对应的字节数组转换成某种本地字符集(如UTF-8)对应的字节数组

*解码:将某种本地字符集对应的字节数组转换为Unicode字符集对应的字节数组

*编码和解码使用的字符集不一致就产生了乱码问题

1.1.2如何解决输出内容的乱码

*在获取WriteOut对象及调用out方法之前调用setContentType方法

*response.setContentType(“text/html;charset=utf-8”)

*作用

-通知容器,在调用out.println方法输出时,使用指定的字符集

-生成消息头中content-type的值,通知浏览器,服务器返回的数据类型和字符集

1.5 Servlet如何访问数据库

*将JDBC驱动(.jar)文件放到WEB-INF\lib下,原因是:ClassLoader找到字节码文件,然后加载到JVM的方法区中,变成一个对象.Tomcat都有自己的类加载器,会去WEB-INF下面lib中找字节码文件.因为jar包中都是字节码文件

*在Servlet中编写JDBC代码,实现对数据库的访问

1.6 Servlet如何运行-Servlet运行的详细步骤

*step1:浏览器根据IP建立与容器的连接

*step2:浏览器请求数据打包

*step3:容器解析请求数据包,封装对象

*step4:容器依据路径找到Servlet创建对象

*step5:容器调用Servlet对象的service方法

*step6:容器将响应打包发给浏览器

*step7:浏览器取出结果,生成页面

 

猜你喜欢

转载自blog.csdn.net/qq_36287601/article/details/81428463