文章目录
1、Servlet
1、创建web项目,导入Servlet依赖坐标
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
2、创建:定义一个类并使用@WebServlet注解配置Servlet的访问路径
@WebServlet("/login")
public class loginServlet extends HttpServlet {}
Servlet执行流程
Servlet生命周期
1、从Servlet加载类创建对象—>对象销毁过程
2、调用无参构造方法创建对象,调用init()方法初始化信息,并且两个方法只会执行一次
3、service()方法用来做接受请求的操作,一次请求就会执行一次,发送几次请求就会执行几次
4、项目关闭,对象销毁,调用destroy()方法销毁对象
1、加载和实例化对象
默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象
2、初始化
在Servlet实例化后,容器将调用Servlet的init()
方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化工作。该方法只调用一次
3、请求处理
每次请求Servlet时,Servlet容器都会调用Servlet的servlet()
方法对请求进行处理。
4、服务终止
当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()
方法完成资源的释放。在destroy()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java的垃圾收集器所回收
2、参数中文乱码解决
设置编码格式:解决中文乱码问题:request.setCharacterEncoding(“UTF-8”);(仅限于解决post请求的参数问题;对于get请求参数乱码问题:new String(乱码的参数值.getfBytes(“iso-8859-1”),”UTF-8”);
3、请求方式post请求和get请求的区别
1、get请求的参数直接追加到请求地址url的后面;而post请求没有,post请求的参数在请求体中;不是直接暴露在URL中。
2、get请求一般安全性较低;post请求安全性略高
3、get请求的参数个数较少,post请求参数个数一般情况较多
4、get请求一般用于获取数据,post请求一般用于提交数据
5、get请求进行URL编码;post请求支持多种编码格式(参数:图片上传:File)
6、get请求会被浏览器缓存,存贮在浏览器的浏览记录中;post请求不会
7、get请求回退时不会重新提交数据;post请求可能会重新提交
4、转发和重定向的区别:
1、转发只发送一次请求;重定向发送两次请求
2、转发时地址栏的地址不发生改变;重定向时地址栏的地址发生改变
3、重定向是客户端行为,转发是服务端行为
4、重定向可以跳转到任意的URL(可以是本项目下的,也可以是外部的);转发只能跳转到本项目下
5、重定向不共享数据(request存取值),转发一次请求共享数据
列举2个转发方式,四个重定向方式
- 转发
<jsp:forward page=""></jsp:forward>
request.getRequestDispatcher("").forward("");
- 重定向
response.sendRedirect("");
<a href=""></a>
<c:redirect url=""></c:redirect>
location.href=""
5、print()与write()
write只能向浏览器输出字符、字符数组、字符串等关于字符的数据信息
print()可以将各种类型(包括Object)的数据通过默认编码转换成bytes字节形式。
6、web.xml的配置
1、配置网站的首页
1、首页可以配置多个;首页的顺序从上往下,若第一个没有,则去找第二个,若都有则采用第一个;
2、若配置了首页,那么默认的index.html为首页则是失效
<welcome-file-list>
<welcome-file>demo.html</welcome-file>
</welcome-file-list>
常见的响应码
404:
<error-page>
<error-code>404</error-code>
<location>404.html</location>
</error-page>