Day 15:
1.Servlet
-
Servlet的使用三步曲:
(1)创建一个类
(2)在web.xml中“注册”这个实现类
(3)Tomcat -
生命周期方法
构造器
init()方法
service()方法
destroy()方法 -
执行过程
第一次请求
创建对象
执行init()方法
执行service()方法
后面请求
执行service()方法 …. ……
对象销毁前
执行destroy()方法 -
Servlet对象创建特殊情况
<load-on-startup>1</load-on-startup>
Servlet 转发与重定向:
1)请求的转发
2)请求的重定向
Servlet 常见问题:
1)HttpServlet cannot be resolved to a type
在工程中,Servlet显示:HttpServlet cannot be resolved to a type。
原因:Eclipse中使用的HttpServlet类之所以识别不到的原因是没有导入Servlet-api.jar包
解决方案一:
1-右键项目名称,进入properties进行配置
2-点击左边菜单里面的targeted Runtimes就可以看到tomcat没有进行勾选,这就是出现这个情况的根本原因。
3-勾选上tomcat,然后点击apply应用,然后点击OK
解决方案二
在需要导入的工程上右键进入properties,选择Java build path ,library选项卡中add external jars,选择你所安装tomcat目录下lib文件中的Servlet-api.jar包即可。
2)Web应用中的字符乱码问题:
①请求
[1]GET请求
(1)由于GET请求的请求参数是附着在URL地址后面的,所以需要通过在服务器端指定URL地址的解码字符集解决。方法:在Tomcat解压目录/conf目录/server.xml中,找到第一个connector标签,加入URIEncoding=“UTF-8”
[2]POST请求
由于POST请求的请求参数是在请求体中,所以需要在request对象获取请求参数之前,设置解码字符集:request.setCharacterEncoding(“UTF-8”);
②响应
指定响应数据的编码字符集,然后告诉浏览器使用什么字符集进行解码。
实现方式:response.setContentType(“text/html;charset=UTF-8”);
注意:不要在获取PrintWriter对象后再设置。