0%

Tomcat基础

Tomcat基础

该容器可以根据用户的请求来启动并运行我们编写的数据逻辑代码 —- 服务器

1、所谓服务器就是(代码编写的)一个可以放根据用户请求实时调用执行对应的逻辑代码的一个容器。所以服务器并不是某台电脑,只是这台电脑的功能是做服务器的。

2、tomcat服务器下载:https://tomcat.apache.org/download-80.cgi

  • ​ bin:可执行文件

  • ​ conf:配置文件

  • ​ —- 改端口在conf/server.xml 中的标签中即可

  • ​ lib:相关的jar包

  • ​ webapps:放想要运行的代码

  • ​ work:gsp的编译目录

3、不管是get还是post方式的请求,都会先执行 方法(如果有这个方法)。

​ doGet / doPost两种方法分别执行Get和Post方法;如果在你的Servlet中存在service、doGet、doPost三种方法,会优先执行service方法。

​ ⭐⭐注意:如果在覆写的service方法中调用了父类的service方法(super.service(arg0,arg1)),则在service方法处理完后,会再次根据请求方式调用doGet和doPost方法。所以,一般情况下,我们不在覆写的service中调用父类的service方法,避免出现405错误。

4、Servlet常见错误:

  • ​ 404错误 —- 资源未找到(在请求地址中的servlet的别名书写错误、虚拟项目名称拼写错误)
  • ​ 500错误 —- java.lang.ClassNotFoundException:com.***.ServletMethod

​ 解决:在web.xml中校验servlet类的权限定路径是否拼写错误

​ —- 因为service方法体中的代码逻辑错误

​ 405错误 —- 请求方式不匹配

5、一个请求创建一个对象存储,用完即销毁。

6、request对象:

​ 作用:封存当前请求的所有数据

​ 使用:

​ 获取请求头

​ 获取请求行

​ 获取用户数据

​ 注意:

​ request对象由tomcat服务器创建,并作为实参传递给处理请求的servlet的service方法。

7、获取用户数据:

​ req.getParameter(“key”); //返回指定的用户数据

​ req.getParameterValues(“key”); //返回同键不同值的请求数据(多选),返回的数组

​ req.getParameterNames(“key”); //返回所有用户请求数据的枚举集合

​ 注意:如果获取的请求数据不存在,返回null

⭐8、错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

​ 解决方法:在工程的WEB-INF/bin文件夹中添加jdbc-jar包,然后点击Build path中的add to build path 即可解决。

9、请求转发:req.getRequestDispatcher(“要转发的地址—相对路径,直接写Servlet的别名”).foward(req,resp);

​ 作用:实现多个Servlet联动操作处理请求,避免代码冗余,明确Servlet职责。

​ 特点:一次请求,多个Servlet

​ 注意:请求转发后直接return直接结束。

10、request作用域 —- 解决一次请求内不同Servlet的数据问题。

​ request.setAttribute(Object name,Object value);

​ requset.getAttribute(Object obj);