2020.8.7英谷实训日志

Servlet

Why ?
注册信息如何插入数据库表?
在这里插入图片描述
What ?
Servlet :服务器端小程序 Server + Applet
具体:javax.servlet.Servlet接口及其子接口,也可以指实现了Servlet接口的实现类
在这里插入图片描述

Servlet的使用三步曲

(1)创建一个类

实现接口:Servlet或继承HttpServlet

(2)在web.xml中“注册”这个实现类

<servlet>
	<servlet-name>LoginServlet</servlet-name>
	<servlet-class>com.alex.web.servlet.LoginServlet</servlet-class>
	<!-- load-on-startup 值大于等于0的整数值,表示服务器启动时创建Servlet,值越小优先级越高 -->
	<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>LoginServlet</servlet-name>
	<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>

(3)Tomcat

(Servlet容器)会创建实现类对象,并调用相应的生命周期方法

执行过程

第一次请求
创建对象
执行init()方法
执行service()方法
后面请求
执行service()方法 …. ……
对象销毁前
执行destroy()方法

执行过程分析

在这里插入图片描述

Servlet 常见问题

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包即可
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对象后再设置

*注:刘老师的文档太香了~

猜你喜欢

转载自blog.csdn.net/Aigtbb/article/details/107871188